Let’sEncrypt 証明書を手動で更新

1年のうちある一定期間しかアクセスが集中しないサイト。普段は数年前に借りたさくらのVPSで動かしています。

SSLは無料のLet’sEncryptを利用していたのですが、有効期限が90日とのことで定期的に証明書の取得の更新が必要となります。もうすぐ有効期限がきれるよーと下記のようなメールが届きましたのでその更新作業を手動で行いました。


Your certificate (or certificates) for the names listed below will expire in 20 days (on 25 Mar 19 06:32 +0000). 
Please make sure to renew your certificate before then, or visitors to your website will encounter errors.

We recommend renewing certificates automatically when they have a third of their
total lifetime left. For Let's Encrypt's current 90-day certificates, that means
renewing 30 days before expiration. See
https://letsencrypt.org/docs/integration-guide/ for details.

証明書の更新作業でエラー発生

certbot-auto renewするだけだからカンタン!

/usr/local/certbot-auto renew

...ではなく、エラーが発生。


Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:

~ 省略 ~

1 renew failure(s), 0 parse failure(s)

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: ドメイン名
   Type:   connection
   Detail: Fetching
   			

http://ドメイン名/.well-known/acme-challenge/・・・・

Connection refused Domain: www.ドメイン名 Type: connection Detail: Fetching

http://www.ドメイン名/.well-known/acme-challenge/・・・・

Connection refused ~ 省略 ~

原因と対応

http://ドメイン/.well-known/acme-challenge/

にアクセスできないよ!と書いてあるようなので下記対応をしました。

海外からのアクセス許可

.htaccessに海外からのアクセス禁止していたのを一時的にはずす。
(SSL導入時にも忘れてたような。。。)

→エラー

フォルダの作成

フォルダを見てみると.well-knownフォルダはありましたが、acme-challengeフォルダが存在しなかったので作成。

再起動

これで再度certbot-auto renewを実行したところ、証明書の更新に成功しました!


[root@local]# ./certbot-auto renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/ドメイン名.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for ドメイン名
http-01 challenge for www.ドメイン名
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/ドメイン名/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/ドメイン名/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


証明書の有効期限を確認

certbot-auto certificates で有効期限を確認することができます。


[root@]# /usr/local/certbot-auto certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: ドメイン名
    Domains: ドメイン名
    Expiry Date: 2019-06-05 05:54:12+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/ドメイン名/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/ドメイン名/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

更新した日から90日延長されていました。

公式サイト

Let’ Encrypt


https://letsencrypt.org/

Certbot

https://certbot.eff.org/