開発環境などでよく設定する、無料のSSL証明書のLet’sEncryptのインストール方法、証明書の更新方法を覚書として残します。(未来の自分へ)
Let’sEncryptは、よく利用はするのですが、手順などはしっかりとは覚えていないので、自分が見る用、またサクッと手順を見たい人用として。。
Let’s Encryptインストール方法
Let’sEncryptをつかうのに必要となるのが、クライアントの certbot
certbot が無いと証明の発行や、更新ができない。certbot は、git で clone して配置するだけで利用できるので、とっても簡単。
$ cd /usr/bin/ $ git clone https://github.com/certbot/certbot $ cd certbot $ chmod 700 /usr/bin/certbot-auto $ ./certbot-auto --help
Let’s Encrypt SSL証明書発行方法
インストールができたら、証明書の発行を行う。
もし、既存のサイトでBasic認証など制限かけている場合は、一時的にBasic認証を解除しておく。
$ ./certbot-auto certonly --standalone -t
上記を実行すると、色々certbotクライアントから質問が来るので回答する。
Success なども文字が出れば成功です。
証明書が発行されると以下のパスに保存される。
/etc/letsencrypt/live/ドメイン名
あとは、Apacheのssl.confなどに証明書を設定してあげればOK。
設定は以下のような感じ。
SSLCertificateFile /etc/letsencrypt/live/ドメイン名/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/ドメイン名/chain.pem
Let’s Encrypt 証明書期限確認
Let’s EncryptでSSL証明書の確認をする方法は、ブラウザからも確認できるが、以下のコマンドで確認できる。
$ certbot-auto certificates
Found the following certs: Certificate Name: ドメイン名 Serial Number: xxxxxxxxxxxxxxxxxxxxxxxxxxx Domains: ドメイン名 Expiry Date: 2021-06-14 05:10:54+00:00 (VALID: 89 days) Certificate Path: /etc/letsencrypt/live/ドメイン名/fullchain.pem Private Key Path: /etc/letsencrypt/live/ドメイン名/privkey.pem
Let’s EncryptでのSSL証明書更新方法
Let’s EncryptのSSL証明書は、 有効期間が90日 で発行されるが、60日間隔で更新の連絡が証明書発行時に登録したEmailに送られてくる。そのため、約2ヶ月ごとに更新処理が必要となる。
自動更新もできるが、開発環境などBasic認証を行っている場合はそれなりに自動更新を行うにも工夫が必要。(自分はそのためやってない)
# 証明書の期間を確認 $ certbot-auto certificates # 証明書更新(テスト) $ certbot-auto renew --dry-run # 証明書更新 $ certbot-auto renew
※証明書更新する前にBasic認証など行っている場合は、解除が必要
SSL証明書の更新も、 Success なども文字が出れば成功です。
更新後WEBサーバのリスタートも忘れずに。。
更新する前に、証明書の期間などを確認しておくと良い。
また、”–dry-run” は、実際に証明書を更新せず、更新処理の確認ができる。Let’s Encryptのステージング環境にて試すことができる。これで、証明書更新がうまく行かないのであれば、本番でもうまくいかない。
ちなみに、本番だと1時間で5回までしか更新処理しか受け付けてくれないので5回失敗すると、1時間位またないとSSL証明書の更新ができなくなる。