Let's Encrypt。次回更新に備え、現状(2019/5/22)を確認しておく

セキュリティLet's Encrypt

目次一覧

 状態:-  閲覧数:240  投稿日:2019-05-22  更新日:2019-05-22
「SSL証明書」を取得しているホストを確認 / 証明書更新のための設定ファイル / 更新の流れ

Let's Encrypt certificate expiration notice for domain メールを受信したら / Let's Encrypt certificate expiration notice for domain メール対応 / ログ

関係あるかどうか不明

「SSL証明書」を取得しているホストを確認 / 証明書更新のための設定ファイル / 更新の流れ

 閲覧数:121 投稿日:2019-05-22 更新日:2019-05-22 

「SSL証明書」を取得しているホストを確認


certbotが管理している証明書の情報を表示
$ sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
 Certificate Name: b.example.com
   Domains: b.example.com a.example.com
   Expiry Date: 2019-08-19 02:55:17+00:00 (VALID: 89 days)
   Certificate Path: /etc/letsencrypt/live/b.example.com/fullchain.pem
   Private Key Path: /etc/letsencrypt/live/b.example.com/privkey.pem
 Certificate Name: e.example.net
   Domains: e.example.net
   Expiry Date: 2019-07-08 16:16:24+00:00 (VALID: 47 days)
   Certificate Path: /etc/letsencrypt/live/e.example.net/fullchain.pem
   Private Key Path: /etc/letsencrypt/live/e.example.net/privkey.pem
 Certificate Name: g.example.org
   Domains: g.example.org
   Expiry Date: 2019-07-18 14:51:13+00:00 (VALID: 57 days)
   Certificate Path: /etc/letsencrypt/live/g.example.org/fullchain.pem
   Private Key Path: /etc/letsencrypt/live/g.example.org/privkey.pem
 Certificate Name: p.example.com
   Domains: p.example.com
   Expiry Date: 2019-07-01 19:40:02+00:00 (VALID: 40 days)
   Certificate Path: /etc/letsencrypt/live/p.example.com/fullchain.pem
   Private Key Path: /etc/letsencrypt/live/p.example.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


証明書更新のための設定ファイル


$ less /etc/letsencrypt/renewal/b.example.com.conf
# renew_before_expiry = 30 days
version = 0.31.0
archive_dir = /etc/letsencrypt/archive/b.example.com
cert = /etc/letsencrypt/live/b.example.com/cert.pem
privkey = /etc/letsencrypt/live/b.example.com/privkey.pem
chain = /etc/letsencrypt/live/b.example.com/chain.pem
fullchain = /etc/letsencrypt/live/b.example.com/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = nginx
installer = nginx
account = a611xxxx
server = https://acme-v02.api.letsencrypt.org/directory


・これだけ「webroot_path」設定している理由は不明
$ less /etc/letsencrypt/renewal/e.example.net.conf
# renew_before_expiry = 30 days
version = 0.29.1
archive_dir = /etc/letsencrypt/archive/e.example.net
cert = /etc/letsencrypt/live/e.example.net/cert.pem
privkey = /etc/letsencrypt/live/e.example.net/privkey.pem
chain = /etc/letsencrypt/live/e.example.net/chain.pem
fullchain = /etc/letsencrypt/live/e.example.net/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = nginx
installer = nginx
account = a611xxxx
server = https://acme-v02.api.letsencrypt.org/directory
webroot_path = /var/www/html/example.net/e.example.net


$ less /etc/letsencrypt/renewal/g.example.org.conf
# renew_before_expiry = 30 days
version = 0.31.0
archive_dir = /etc/letsencrypt/archive/g.example.org
cert = /etc/letsencrypt/live/g.example.org/cert.pem
privkey = /etc/letsencrypt/live/g.example.org/privkey.pem
chain = /etc/letsencrypt/live/g.example.org/chain.pem
fullchain = /etc/letsencrypt/live/g.example.org/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = nginx
installer = nginx
account = a611xxxx
server = https://acme-v02.api.letsencrypt.org/directory


$ less /etc/letsencrypt/renewal/p.example.com.conf
# renew_before_expiry = 30 days
version = 0.29.1
archive_dir = /etc/letsencrypt/archive/p.example.com
cert = /etc/letsencrypt/live/p.example.com/cert.pem
privkey = /etc/letsencrypt/live/p.example.com/privkey.pem
chain = /etc/letsencrypt/live/p.example.com/chain.pem
fullchain = /etc/letsencrypt/live/p.example.com/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = nginx
installer = nginx
account = a611xxxx
server = https://acme-v02.api.letsencrypt.org/directory


更新の流れ


90日間の証明書
・有効期限が切れる30日前より更新できる

renew を実行すると
・これまでに取得した全ての証明書の期限がチェックされ、30日以内に期限が切れるものを自動的に更新する

cronで「certbot renew」設定しているため、有効期限が切れる30日前になった時点で、「SSL証明書」を自動更新する
$ less /etc/cron.d/letsencrypt
1 4 * * * root /usr/bin/certbot renew && systemctl restart nginx


Let's Encrypt certificate expiration notice for domain メールを受信したら / Let's Encrypt certificate expiration notice for domain メール対応 / ログ

 閲覧数:113 投稿日:2019-05-22 更新日:2019-05-22 

Let's Encrypt certificate expiration notice for domain メールを受信したら


対応が必要
・cron実行しても、「SSL証明書」が更新されなかったことを意味する

何も対応を行わず放置したままにしていると?
・やがて「SSL証明書」は失効する
・具体的には、httpsではアクセス出来なくなる(httpになる)

Let's Encrypt certificate expiration notice for domain メール対応


下記コマンドを打ち、更新テストを行う
・エラーが表示されるため、Congratulationsが表示されるよう、対応
※Congratulationsが表示されるまで、エラーを一つずつ潰していく
$ sudo certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/b.example.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org
Renewing an existing certificate
Resetting dropped connection: acme-staging-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/b.example.com/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/e.example.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org
Renewing an existing certificate
Resetting dropped connection: acme-staging-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/e.example.net/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/g.example.org.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org
Renewing an existing certificate
Resetting dropped connection: acme-staging-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/g.example.org/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/p.example.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org
Renewing an existing certificate
Resetting dropped connection: acme-staging-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/p.example.com/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
 /etc/letsencrypt/live/b.example.com/fullchain.pem (success)
 /etc/letsencrypt/live/e.example.net/fullchain.pem (success)
 /etc/letsencrypt/live/g.example.org/fullchain.pem (success)
 /etc/letsencrypt/live/p.example.com/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


ログ


エラー発生した場合は、ログ確認
$ sudo less /var/log/letsencrypt/letsencrypt.log


関係あるかどうか不明

 閲覧数:112 投稿日:2019-05-22 更新日:2019-05-22 

関係あるかどうか不明


$ less /etc/nginx/conf.d/default.conf
    location ^~ /.well-known/acme-challenge/ {
       default_type "text/plain";
       root /var/www/acme-challenge;
   }


$ ls -l /var/www/
合計 4
drwxrwxrwx 2 ★★ ★★ 6 6月 22 2018 acme-challenge
drwxr-xr-x 2 root root 6 11月 5 2018 cgi-bin
drwxr-xr-x 29 root root 4096 5月 20 10:01 html



Let's Encrypt の Nginx プラグインで、HTTPS化する対象サブドメインを追加するには

Let's Encrypt。現時点(2019/5/22)の疑問点



週間人気ページランキング / 9-16 → 9-22
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 19
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 14
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 13
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 12
5 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 8
6 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 7
6 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 7
6 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 PHPファイルでchmodエラー | PHP(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Python 3.6 インストール / make altinstall | Python(プログラミング言語) 6
7 さくらVPS0 6
8 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 5
9 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 4
9 echo と cat の違い 4
9 phpMyAdmin 4.4.3(phpMyAdmin) カテゴリー 4
9 tar: これは tar アーカイブではないようです 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/23 1:01 更新