cURL が証明書を認識しません。

cURL が証明書を認識しません。

当社は、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-----
    ''
 ];

必要に応じてこれらの項目をたくさん追加できます。これにより、含まれている証明書がシステム証明書ストアに追加され、追加のコマンドライン引数なしでカールで使用する必要があります。

おすすめ記事