Let’s Encryptとは?
無料でSSL証明書を発行できるサービスで、2014年に設立した米国のISRGという非営利団体が運営しています。全てのWebサイトを暗号化することが目的で活動しています。
ルート証明書
新しい認証局なので、出荷されている全てのPCにルート証明書がインストールされていません。なので、今はIden Trustというルート認証局が運用する「DST Root CA X3」というルート証明書でクロス署名された中間証明書を利用する形になっています。
ただ、今後はLet's Encrypt自身が発行するルート証明書「ISRG Root X1」が主流になっていくものとして発表はされているようです。
仕組み
ACME(Automated Certificate Management Environment)
証明書を自動発行する仕組みです。他の認証局と異なり、認証してから数秒で証明書が発行されます。
証明書の認証方式(ドメイン認証、DNS認証)
DNSに登録されているAレコードを利用する。
HTTP経由で特定のファイル(.well-known)にアクセスすることでドメイン所有者の確認をします。(例えば、xxx.comのドメインの証明書が欲しいと要求してきた人が本当にxxx.comの所有者かどうか確認するために使われる。)
証明書を取得する際、ドキュメントルートに.well-knownが自動的に生成されるが、この.well-knownフォルダにアクセスができないと、証明書の取得に失敗することになる。
暗号強度
他の有料のSSL証明書と暗号強度はあまり変わりません。
有効期限
発行から90日。(certbotなどのソフトウェアを使えば自動更新は可能です。)、一般的な証明書の有効期限は2年なので非常に短いです。
利用方法
管理者権限のあるサーバーでは、一般的にはcertbotというソフトウェアが利用されています。
certbotとは?
無料かつ自動でSSL証明書を発行できるツールです。CSRとKEYファイルの作成からWebサーバーの設定まで自動で行ってくれます。
cronと組み合わせれば、証明書の更新まで自動化できます。
証明書の発行
「Let’s Encrypt」と呼ばれる認証局によって行われます。
コマンド
1 |
sudo certbot --nginx -d {証明書を発行したいドメイン名} |
standalone
certbotがWebサーバーとしての機能も持っているので、それを使って設定するかどうか。standaloneという言葉通り、Webサーバーがなくても証明書の取得設定ができるというもの。
standaloneの場合は、certbotが持っているWebサーバーを利用するために80(HTTP)と、443(HTTPS)を利用するので、Apacheやnginxが既に動いていると動かない。
もし、既にWebサービスとして動いている場合は、Webサーバーを停止させないといけません。それの対策としてwebrootモードがあります。
webroot
稼働中のサービスを落とさずにSSL証明書の発行及び更新ができる。
前提
事前にDNS設定とnginx(もしくはApache)の設定が終わっていること
この記事へのコメントはありません。