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


19

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を使用しています。ローカル証明書ストアに何か問題があるように聞こえますが、ここから先に進む方法がわかりません。何か案は?

更新: 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'.

ルート証明書はca-certificatesパッケージに含まれていると思います。このパッケージはインストールされていますか?再インストールしてみてください。それが問題でない場合はstrace -o /tmp/wget.strace wget https://www.python.org、結果のトレースを実行して投稿すると、問題の場所がわかります。
ジル 'SO-悪であるのをやめる'

@Gilles-opensslパッケージを0.9.8e-12.el5_4.6から0.9.8e-33.el5_11にアップグレードしましたが、エラーはなくなりました(これによりルート証明書が再インストールされた可能性があります)が、現在は別のエラーがあります。
aco

これは、この特定のサイトで一時的なエラーのように見えます。他のサイトは機能しますか?
ジル「SO-悪であるのをやめる」

@Gilles-他のWebサイトも機能しません。たとえば、Googleは次のエラーを返します。証明書の共通名「google.com」は、要求されたホスト名「www.google.com.au」と一致しません。
-aco

Secryptを無効にする同じ問題を修正できました:crypt.gen.nz/selinux/disable_selinux.html乾杯!

回答:



4

私は同様のエラーを有するたhttps://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gzを 0.1:ドッカー画像(circleci / jdk8に。 1)、

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

sudo apt-get install ca-certificates

ありがとうございました!Ubuntu 16.04で完全に動作しました。ca証明書を再インストールする必要がありました
Ubuntuser

2

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

*またはServer Name Indication(SNI)-どれがここに当てはまるかわかりません。

参照:


1

解決策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

9
「先生、私は左足で歩くことができません。—解決策1:立っている必要がないように、必要なものを椅子の近くに移動します。いいえ。解決策は問題を解決することです。ここで、これはルートCA証明書を修復または再インストールすることを意味します。
ジル 'SO-悪であるのをやめる'

4
これは、自己署名の自己発行証明書にのみ有効です
パベルニエドバ

1
うん、これは悪い考えです。ソリューション1も安全ではありませ。この時点から証明書を自動的に信頼することにより、wgetのチェックをバイパスするだけです。wgetがアクセスできるルート証明書を実際に修正することにより、根本的な問題を修正する必要があります。
アンドリューフェリエ

これは、システム管理者が壊れたルート証明書リストまたは厳格なセキュリティ設定を使用するように強制する場合の回避策にすぎませんが、嫌いに値するものではありません。
nurettin

0

サーバーの時刻を更新します。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

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


1
これはかなり危険です。
プロット

これはwgetコマンドのみに関するものであり、解決策ではなく回避策です。
mrc02_kr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.