web-dev-qa-db-ja.com

発行者の権限をローカルで検証できません

Wgetまたはcurlを使用してhttps URLを開くことができません。

$ wget https://www.python.org
--2015-04-27 17:17:33--  https://www.python.org/
Resolving www.python.org (www.python.org)... 103.245.222.223
Connecting to www.python.org (www.python.org)|103.245.222.223|:443... connected.
ERROR: cannot verify www.python.org's certificate, issued by "/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA":
  Unable to locally verify the issuer's authority.
To connect to www.python.org insecurely, use '--no-check-certificate'.

$ curl https://www.python.org
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

これは、CentOS 5.5でwget 1.12とcurl 7.30.0を使用しています。ローカルの証明書ストアに問題があるようですが、ここから先に進む方法がわかりません。何か案は?

pdate: opensslパッケージを0.9.8e-12.el5_4.6から0.9.8e-33.el5_11にアップグレードすると、別のエラーが発生します。

$ wget https://pypi.python.org
--2015-04-28 10:27:35--  https://pypi.python.org/
Resolving pypi.python.org (pypi.python.org)... 103.245.222.223
Connecting to pypi.python.org (pypi.python.org)|103.245.222.223|:443... connected.
ERROR: certificate common name "www.python.org" doesn't match requested Host name "pypi.python.org".
To connect to pypi.python.org insecurely, use '--no-check-certificate'.
19
aco

問題は、サーバー名表示のサポートの欠如です。 Wikipediaによると、少なくともwget 1.14またはcurl 7.18.1が必要で、少なくともOpenSSL 0.98fが必要です。

https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation

4
Chuck E

Dockerイメージで https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz で同様のエラーが発生しました(circleci/jdk8:0.1.1)、

私の場合、CA証明書をアップグレードすると問題が解決しました。

Sudo apt-get install ca-certificates

1.14より前のwgetは、サブジェクトの別名(SAN)*をサポートしていません。 PyPIは、証明書のCNの代わりにSANを使用しており、wgetは不一致に窒息しています。wgetをアップグレードすると解決します。

*またはおそらくサーバー名表示(SNI)-ここでどちらが当てはまるかわかりません。

参照:

2
Heath Raftery

ソリューション1:

openssl s_client -connect whateversite.com:443 -debug 

証明書キーを取得し、/etc/ssl/certsにコピーします。

$ wget https://www.python.org --ca-certificate=/etc/ssl/certsfile

安全でない方法に行きたい場合は、解決策を試してください2

ソリューション2:

$ wget https://www.python.org --no-check-certificate

またはCurlを使用する

$ curl https://www.python.org --insecure
1
Ruban Savvy

echo "check_certificate = off" >>〜/ .wgetrc

0
Robert A

サーバーの時刻を更新します。 1秒でこの問題が発生する可能性があります。

確認してください:date

Redhat/CentOS 6/7 yum -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org

Ubuntu/Debian apt-get -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org

0
user1926449