当社は、SSL接続を切断し、証明書を偽の証明書に置き換えるネットワークプロキシを実施します。 (正確には、会社の証明書は署名付き代理証明書を使用します。)
したがって、https URLからダウンロードするには、システムが偽の証明書を信頼できるようにする必要があります(または証明書の確認を無効にする必要があります)。
だから、プロキシ証明書と会社の証明書の両方とに/etc/ssl/certs/ca-bundle.crt
追加しました/etc/ssl/certs/ca-certificates.crt
。 (どちらも同じファイルに接続されています。)
ダウンロードを使用するとwget
正常に機能しますが、証明書を確認できないため、curl
ダウンロードを使用すると機能しません。curl
* Rebuilt URL to: https://company.net/
* Hostname was NOT found in DNS cache
* Trying 172.18.111.111...
* Connected to 172.18.111.111 (172.18.111.111) port 3128 (#0)
* Establish HTTP proxy tunnel to company.net:443
> CONNECT company.net:443 HTTP/1.1
> Host: company.net:443
> User-Agent: curl/7.39.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
* Proxy replied OK to CONNECT request
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-bundle.crt
CApath: none
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem: self signed certificate in certificate chain
* Closing connection 0
curl: (60) SSL certificate problem: self signed certificate in certificate chain
何が間違っている可能性がありますか?さらにデバッグする方法は?
ベストアンサー1
次のように証明書についてnixに通知する必要があります。
security.pki.certificates = [''cert strings go here in PEM format''];
つまり:
security.pki.certificates = [
''
-----BEGIN CERTIFICATE-----
<CUT>
-----END CERTIFICATE-----
''
];
必要に応じてこれらの項目をたくさん追加できます。これにより、含まれている証明書がシステム証明書ストアに追加され、追加のコマンドライン引数なしでカールで使用する必要があります。