この記事は、プライベートネットワークのセキュリティパッチを当てていないLinuxサーバでcertbot renewを実行したときに発生するエラー Let’s Encryptの証明書更新でFailed to renew certificate ドメイン名 with error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579)が表示されたときの対応方法を投稿します。
Let’s Encryptは90日ごとに証明書更新作業があります。証明書更新作業にはbashなどでコマンドを入力します。
# certbot renew
目次
certbot renewを入力するとLet’s Encrypt 証明書の更新が実行されますが、certificate verify failed (_ssl.c:579) が表示されました。
# certbot renew - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processing /etc/letsencrypt/renewal/ドメイン名.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cert is due for renewal, auto-renewing... Plugins selected: Authenticator apache, Installer None Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org Failed to renew certificate ドメイン名 with error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579) All renewals failed. The following certificates could not be renewed: /etc/letsencrypt/live/ドメイン名/fullchain.pem (failure) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 renew failure(s), 0 parse failure(s) #
Failed to renew certificate ドメイン名 with error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579) が表示されたエラーを調査をします。
certificate verify failed 証明書の検証に失敗しました。となっているため、 Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org にアクセスするときに証明書の検証に失敗しているようです。証明書の検証に使用するのはサーバに保存されているCA証明書となるため、CA証明書を確認します。
# rpm -qa | grep ca-certificates ca-certificates-2015.2.6-73.el7.noarch #
2015年に更新したあとアップデートしていなかったようです。
ca-certificates を確認したところ、2021/09/30 04:01:15で有効期限切れとなっていました。
Certificate: Data: Version: 3 (0x2) Serial Number: 44:af:b0:80:d6:a3:27:ba:89:30:39:86:2e:f8:40:6b Signature Algorithm: sha1WithRSAEncryption Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3 Validity Not Before: Sep 30 21:12:19 2000 GMT Not After : Sep 30 14:01:15 2021 GMT Subject: O=Digital Signature Trust Co., CN=DST Root CA X3 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:df:af:e9:97:50:08:83:57:b4:cc:62:65:f6:90: 82:ec:c7:d3:2c:6b:30:ca:5b:ec:d9:c3:7d:c7:40: c1:18:14:8b:e0:e8:33:76:49:2a:e3:3f:21:49:93: ac:4e:0e:af:3e:48:cb:65:ee:fc:d3:21:0f:65:d2: 2a:d9:32:8f:8c:e5:f7:77:b0:12:7b:b5:95:c0:89: a3:a9:ba:ed:73:2e:7a:0c:06:32:83:a2:7e:8a:14: 30:cd:11:a0:e1:2a:38:b9:79:0a:31:fd:50:bd:80: 65:df:b7:51:63:83:c8:e2:88:61:ea:4b:61:81:ec: 52:6b:b9:a2:e2:4b:1a:28:9f:48:a3:9e:0c:da:09: 8e:3e:17:2e:1e:dd:20:df:5b:c6:2a:8a:ab:2e:bd: 70:ad:c5:0b:1a:25:90:74:72:c5:7b:6a:ab:34:d6: 30:89:ff:e5:68:13:7b:54:0b:c8:d6:ae:ec:5a:9c: 92:1e:3d:64:b3:8c:c6:df:bf:c9:41:70:ec:16:72: d5:26:ec:38:55:39:43:d0:fc:fd:18:5c:40:f1:97: eb:d5:9a:9b:8d:1d:ba:da:25:b9:c6:d8:df:c1:15: 02:3a:ab:da:6e:f1:3e:2e:f5:5c:08:9c:3c:d6:83: 69:e4:10:9b:19:2a:b6:29:57:e3:e5:3d:9b:9f:f0: 02:5d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: critical Certificate Sign, CRL Sign X509v3 Subject Key Identifier: C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10 Signature Algorithm: sha1WithRSAEncryption a3:1a:2c:9b:17:00:5c:a9:1e:ee:28:66:37:3a:bf:83:c7:3f: 4b:c3:09:a0:95:20:5d:e3:d9:59:44:d2:3e:0d:3e:bd:8a:4b: a0:74:1f:ce:10:82:9c:74:1a:1d:7e:98:1a:dd:cb:13:4b:b3: 20:44:e4:91:e9:cc:fc:7d:a5:db:6a:e5:fe:e6:fd:e0:4e:dd: b7:00:3a:b5:70:49:af:f2:e5:eb:02:f1:d1:02:8b:19:cb:94: 3a:5e:48:c4:18:1e:58:19:5f:1e:02:5a:f0:0c:f1:b1:ad:a9: dc:59:86:8b:6e:e9:91:f5:86:ca:fa:b9:66:33:aa:59:5b:ce: e2:a7:16:73:47:cb:2b:cc:99:b0:37:48:cf:e3:56:4b:f5:cf: 0f:0c:72:32:87:c6:f0:44:bb:53:72:6d:43:f5:26:48:9a:52: 67:b7:58:ab:fe:67:76:71:78:db:0d:a2:56:14:13:39:24:31: 85:a2:a8:02:5a:30:47:e1:dd:50:07:bc:02:09:90:00:eb:64: 63:60:9b:16:bc:88:c9:12:e6:d2:7d:91:8b:f9:3d:32:8d:65: b4:e9:7c:b1:57:76:ea:c5:b6:28:39:bf:15:65:1c:c8:f6:77: 96:6a:0a:8d:77:0b:d8:91:0b:04:8e:07:db:29:b6:0a:ee:9d: 82:35:35:10 -----BEGIN CERTIFICATE----- MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw 7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ -----END CERTIFICATE-----
2015年からCA証明書が更新されていないことによるエラーでした。Let’s EncryptのCA証明書の期限切れのものがあるためCA証明書を更新する必要があります。
yum install ca-certificatesを実行してCA証明書を更新します。
# yum install ca-certificates 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * remi-safe: ftp.riken.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ ca-certificates.noarch 0:2015.2.6-73.el7 を 更新 ---> パッケージ ca-certificates.noarch 0:2021.2.50-72.el7_9 を アップデート --> 依存性の処理をしています: p11-kit-trust >= 0.23.5 のパッケージ: ca-certificates-2021.2.50-72.el7_9.noarch --> 依存性の処理をしています: p11-kit >= 0.23.5 のパッケージ: ca-certificates-2021.2.50-72.el7_9.noarch --> トランザクションの確認を実行しています。 ---> パッケージ p11-kit.x86_64 0:0.20.7-3.el7 を 更新 ---> パッケージ p11-kit.x86_64 0:0.23.5-3.el7 を アップデート ---> パッケージ p11-kit-trust.x86_64 0:0.20.7-3.el7 を 更新 ---> パッケージ p11-kit-trust.x86_64 0:0.23.5-3.el7 を アップデート --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ 更新します: ca-certificates noarch 2021.2.50-72.el7_9 updates 379 k 依存性関連での更新をします: p11-kit x86_64 0.23.5-3.el7 base 252 k p11-kit-trust x86_64 0.23.5-3.el7 base 129 k トランザクションの要約 ================================================================================ 更新 1 パッケージ (+2 個の依存関係のパッケージ) 総ダウンロード容量: 760 k Is this ok [y/d/N]: y Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. (1/3): p11-kit-0.23.5-3.el7.x86_64.rpm | 252 kB 00:00 (2/3): p11-kit-trust-0.23.5-3.el7.x86_64.rpm | 129 kB 00:00 (3/3): ca-certificates-2021.2.50-72.el7_9.noarch.rpm | 379 kB 00:00 -------------------------------------------------------------------------------- 合計 4.1 MB/s | 760 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 更新します : p11-kit-0.23.5-3.el7.x86_64 1/6 更新します : p11-kit-trust-0.23.5-3.el7.x86_64 2/6 更新します : ca-certificates-2021.2.50-72.el7_9.noarch 3/6 整理中 : ca-certificates-2015.2.6-73.el7.noarch 4/6 整理中 : p11-kit-trust-0.20.7-3.el7.x86_64 5/6 整理中 : p11-kit-0.20.7-3.el7.x86_64 6/6 検証中 : ca-certificates-2021.2.50-72.el7_9.noarch 1/6 検証中 : p11-kit-0.23.5-3.el7.x86_64 2/6 検証中 : p11-kit-trust-0.23.5-3.el7.x86_64 3/6 検証中 : p11-kit-0.20.7-3.el7.x86_64 4/6 検証中 : ca-certificates-2015.2.6-73.el7.noarch 5/6 検証中 : p11-kit-trust-0.20.7-3.el7.x86_64 6/6 更新: ca-certificates.noarch 0:2021.2.50-72.el7_9 依存性を更新しました: p11-kit.x86_64 0:0.23.5-3.el7 p11-kit-trust.x86_64 0:0.23.5-3.el7 完了しました! #
certbotを再実行して正しく証明書更新されるか確認します。
# certbot 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 apache, Installer None Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org Renewing an existing certificate for ドメイン名 Performing the following challenges: http-01 challenge for ドメイン名 Waiting for verification... Cleaning up challenges - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - new certificate deployed without reload, fullchain is /etc/letsencrypt/live/ドメイン名/fullchain.pem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations, all renewals succeeded: /etc/letsencrypt/live/ドメイン名/fullchain.pem (success) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
証明書更新を反映させるため、apacheのリロードを実施します。apacheリロード後正常に証明書が更新されていることを確認します。
# systemctl reload httpd.service
プライベートネットワークにあるサーバであっても、CA証明書の更新作業は必ず実施するようにしたほうが良いです。今後もサーバ管理に関する情報を提供していきますので、よろしくおねがいいたします。