Let's Encryptの証明書を手動で更新してみよう

スポンサーリンク

 

Let's Encryptの証明書を手動で更新したので、流れを紹介します。環境は、CentOS7上でnginxを稼働させています。

 

参考にさせて頂いた記事

Let's Encrypt 総合ポータル (非公式解説サイト)

Let’s EncryptのSSL証明書で、安全なウェブサイトを公開

 

スポンサーリンク

環境

 

下記の環境を前提としています。

 

サーバー側

・さくらのVPS(物理サーバー)

・Docker CE(物理サーバー)

・CentOS7(Dockerコンテナ)

・nginx(Dockerコンテナ)

 

クライアント側

・iMac 27 inch 5K

 

前提条件

 

Let's Encryptの導入が完了し、正常に稼働していることを前提にしています。

 

証明書の有効期限を確認します

 

はじめに、証明書の有効期限を確認します。

opensslコマンドを使って、シェルから有効期限を確認できます。[your domain name]には、証明書を取得したドメイン名を挿入します。

 

Dockerコンテナ

# openssl x509 -in /etc/letsencrypt/live/[your domain name]/cert.pem -noout -dates

notBefore=Jan 9 13:31:09 2019 GMT
notAfter=Apr 9 13:31:09 2019 GMT

 

notBeforeが証明書の生成日時を、notAfterが証明書の有効期限日時をあらわします。

上記の例では、4月9日に証明書が失効することを意味しています。

Let's Encrypt証明書の有効期間が90日間(3ヶ月)であることが、上記から分かります。

 

証明書を更新します

 

では、証明書を更新してみます。更新には、certbot-autoコマンドを使います。

--force-renewオプションを付けることで、有効期間が残り1ヶ月を切っていなくとも証明書を強制的に更新できます。

更新が完了したら、自動的にnginxを再起動するオプションを入れて実行します。

 

Dockerコンテナ

# cd /usr/bin

certbot-auto renew --force-renew --post-hook "systemctl restart nginx"

 

Upgrading certbot-auto 0.30.2 to 0.32.0...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/[your domain name].conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Plugins selected: Authenticator nginx, Installer nginx
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for [your domain name]Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/[your domain name]/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all renewals succeeded.
The following certs have been renewed:
 /etc/letsencrypt/live/[your domain name]/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Running post-hook command: systemctl restart nginx

 

Congratulations…が表示されれば、更新は完了です!

証明書の有効期限を確認します

 

Dockerコンテナ

# openssl x509 -in /etc/letsencrypt/live/[your domain name]/cert.pem -noout -dates

notBefore=Mar 7 10:33:46 2019 GMT
notAfter=Jun 5 10:33:46 2019 GMT

 

更新されていることが確認できました。

また、ブラウザからも確認しておきます。

 

LetsEncrypt-Certification

 

更新されています。

 

証明書のパスを確認します

 

証明書のパスを確認しておきます。

 

Dockerコンテナ

# ls -l /etc/letsencrypt/live/[your domain name]

total 4

-rw-r--r-- 1 root root 692 Jan 9 14:31 README
lrwxrwxrwx 1 root root 39 Mar 7 11:33cert.pem -> ../../archive/[your domain name]/cert2.pem
lrwxrwxrwx 1 root root 40 Mar 7 11:33chain.pem -> ../../archive/
[your domain name]/chain2.pem
lrwxrwxrwx 1 root root 44 Mar 7 11:33fullchain.pem -> ../../archive/
[your domain name]/fullchain2.pem
lrwxrwxrwx 1 root root 42 Mar 7 11:33privkey.pem -> ../../archive/
[your domain name]/privkey2.pem

 

シンボリックリンクファイルの参照先が、cert2、chain2、fullchain2、privkey2と2が追加されていることが確認できます。

以上で、Let's Encryptの証明書を手動で更新する作業は完了です!

 

コメント

タイトルとURLをコピーしました