私はDebian 10バスターサーバーを持っています。これは、同一のハードウェア/ソフトウェア構成の1つです。私はそれらをデプロイするスクリプトを使用していますが、それらはすべて同じです。ただし、wgetを使用すると、そのうちの1つがエラーをスローします。
# wget https://mirrors.Edge.kernel.org/pub/linux/kernel/v5.x/linux-5.6.15.tar.xz
--2020-05-30 12:49:20-- https://mirrors.Edge.kernel.org/pub/linux/kernel/v5.x/linux-5.6.15.tar.xz
Resolving mirrors.Edge.kernel.org (mirrors.Edge.kernel.org)... 147.75.69.165, 2604:1380:1000:8100::1
Connecting to mirrors.Edge.kernel.org (mirrors.Edge.kernel.org)|147.75.69.165|:443... connected.
ERROR: The certificate of ‘mirrors.Edge.kernel.org’ is not trusted.
ERROR: The certificate of ‘mirrors.Edge.kernel.org’ has expired.
私がやったこと:
apt-get install --reinstall ca-certificates
update-ca-certificates --fresh
c_rehash
問題は私が言うことができることからのみ生じているようです。回避策は必要ありません。解決策が必要なので、このサーバーが正常に動作していると確信しています。
--no-dns-cache
を使用して自分の問題を解決することができました
# wget --no-dns-cache --debug https://mirrors.Edge.kernel.org/pub/linux/kernel/v5.x/linux-5.6.15.tar.xz
この後、壊れたファイルを更新したようです。 --no-dns-cacheなしでも動作するようになりました。奇妙ですが、安定しているようです。
F-droid.orgにも同じ症状があります。
% wget 'https://f-droid.org/F-Droid.apk'
--2020-06-03 14:10:18-- https://f-droid.org/F-Droid.apk
Resolving f-droid.org (f-droid.org)... 217.160.165.113, 148.251.140.42
Connecting to f-droid.org (f-droid.org)|217.160.165.113|:443... connected.
ERROR: The certificate of ‘f-droid.org’ is not trusted.
ERROR: The certificate of ‘f-droid.org’ has expired.
私の場合(Debian 9ストレッチ)、curlも機能しません。
% curl 'https://f-droid.org/F-Droid.apk'
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html
Wgetソースを見ると、エラーがgnutls_certificate_verify_peers2によって返されたステータスフラグから発生していることがわかります。 can gnutlsに証明書検証の詳細を表示するように要求します
% gnutls-cli f-droid.org -p 443
Processed 151 CA certificate(s).
Resolving 'f-droid.org:443'...
Connecting to '217.160.165.113:443'...
- Certificate type: X.509
- Got a certificate list of 3 certificates.
- Certificate[0] info:
- subject `CN=f-droid.org,OU=PositiveSSL,OU=Domain Control Validated', issuer `CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB', serial 0x02a8508e042b9f065fafadd87cd7d103, RSA key 2048 bits, signed using RSA-SHA256, activated `2019-09-17 00:00:00 UTC', expires `2020-09-16 23:59:59 UTC', key-ID `sha256:e97ccbf3c188b5cf69a83ed0fc39b001ce1688a62b573193cef3f74984c7d703'
Public Key ID:
sha1:638f93856e1f5edfcbd40c46d4160cff21b0713a
sha256:e97ccbf3c188b5cf69a83ed0fc39b001ce1688a62b573193cef3f74984c7d703
Public key's random art:
+--[ RSA 2048]----+
| o o+o.|
| *...o|
| E ..+ |
| . ... o|
| S . o .|
| o * . o.|
| * o . .o|
| . + o .o. |
| o .oo|
+-----------------+
- Certificate[1] info:
- subject `CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB', issuer `CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US', serial 0x7d5b5126b476ba11db74160bbc530da7, RSA key 2048 bits, signed using RSA-SHA384, activated `2018-11-02 00:00:00 UTC', expires `2030-12-31 23:59:59 UTC', key-ID `sha256:e1ae9c3de848ece1ba72e0d991ae4d0d9ec547c6bad1dddab9d6beb0a7e0e0d8'
- Certificate[2] info:
- subject `CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US', issuer `CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE', serial 0x13ea28705bf4eced0c36630980614336, RSA key 4096 bits, signed using RSA-SHA384, activated `2000-05-30 10:48:38 UTC', expires `2020-05-30 10:48:38 UTC', key-ID `sha256:c784333d20bcd742b9fdc3236f4e509b8937070e73067e254dd3bf9c45bf4dde'
- Status: The certificate is NOT trusted. The certificate chain uses expired certificate.
*** PKI verification of server certificate failed...
したがって、問題はサーバーから提供されたUSERTrust RSA Certification Authority証明書ですf-droid.org
。これは、4日前に有効期限が切れたAddTrust External CA Rootによって署名された中間証明書です。
Debian ca-certificates
パッケージには、USERTrust RSA証明機関の自己署名(ルート)証明書があります:
% openssl x509 -inform PEM -in /usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt -text | grep -A2 Validity
Validity
Not Before: Feb 1 00:00:00 2010 GMT
Not After : Jan 18 23:59:59 2038 GMT
...しかし、gnutlsはサーバーによって提供された期限切れの証明書によって混乱しているため、エラーが発生します。
あなたの場合(mirrors.Edge.kernel.org
)証明書チェーンは次のとおりです。
% gnutls-cli mirrors.Edge.kernel.org -p 443
Processed 151 CA certificate(s).
Resolving 'mirrors.Edge.kernel.org:443'...
Connecting to '147.75.101.1:443'...
- Certificate type: X.509
- Got a certificate list of 3 certificates.
- Certificate[0] info:
- subject `CN=*.Edge.kernel.org', issuer `CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB', serial 0x00a34d0ccfbf4ea450fe030fd3378f5d68, RSA key 2048 bits, signed using RSA-SHA256, activated `2020-03-16 00:00:00 UTC', expires `2021-03-16 23:59:59 UTC', key-ID `sha256:f3746cf281b6453def23289054e75e26e157bfd9eed5252b76ffdc828b802e41'
Public Key ID:
sha1:72d8fc84d0dea848189bc3ff8eb1d47629fd72c0
sha256:f3746cf281b6453def23289054e75e26e157bfd9eed5252b76ffdc828b802e41
Public key's random art:
+--[ RSA 2048]----+
| |
| . |
| . . . |
| . = * + |
| * . o.S o |
| + o =E+ |
| = = +.. |
| . * o... |
| o.o o. |
+-----------------+
- Certificate[1] info:
- subject `CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB', issuer `CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US', serial 0x7d5b5126b476ba11db74160bbc530da7, RSA key 2048 bits, signed using RSA-SHA384, activated `2018-11-02 00:00:00 UTC', expires `2030-12-31 23:59:59 UTC', key-ID `sha256:e1ae9c3de848ece1ba72e0d991ae4d0d9ec547c6bad1dddab9d6beb0a7e0e0d8'
- Certificate[2] info:
- subject `CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US', issuer `CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US', serial 0x01fd6d30fca3ca51a81bbc640e35032d, RSA key 4096 bits, signed using RSA-SHA384, activated `2010-02-01 00:00:00 UTC', expires `2038-01-18 23:59:59 UTC', key-ID `sha256:c784333d20bcd742b9fdc3236f4e509b8937070e73067e254dd3bf9c45bf4dde'
- Status: The certificate is trusted.
再びUSERTrust RSA Certification Authorityが表示されますが、これは有効期限が切れていない自己署名(ルート)証明書です。 kernel.orgも期限切れの中間証明書を提供していたと思いますが、あなたの手で修正されました。おもう --no-dns-cache
は無関係で、単なる偶然です。
ちなみに、Firefoxは https://f-droid.org を表示します。 Show page info
/Security
は、新しい自己署名(ルート)USERTrust証明書を明らかにします:Not after: 18 January 2038, 23:59:59 GMT
。つまり、Firefoxはサーバーから提供された有効期限が切れた中間USERTrust証明書を無視し、ローカルで利用可能な有効なルートUSERTrust証明書を使用しました。
解決?サーバーのWebマスターは、サーバー構成から古い中間証明書を削除する必要があります。それまでの間、wgetの代わりにFirefox(または機能する場合はcurl)を使用してください。
更新:f-droidの人々が指摘したように、 gnutlsバグ はすでに修正されています。修正はDebian-securityですぐに行われるはずです。