CURLが自分のサーバーに接続できないという奇妙な問題が発生しました。たとえば、私がサーバーにいる場合example.com
wget https://example.com/ <--- WORKS FIND
curl https://example.com gets error: 35 SSL connect error
Curlは他の外部SSLアドレスへの接続にはうまく機能しますが、それ自体では機能しません。
カールはSSLなしで自分で接続できます。
これはカール-vの出力です:
curl -v https://example.com/
* About to connect() to example.com port 443 (#0)
* Trying 50.70.60.100... connected
* Connected to example.com (50.70.60.100) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -12286
* Error in TLS handshake, trying SSLv3...
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: example.com
> Accept: */*
>
* Connection died, retrying a fresh connect
* Closing connection #0
* Issue another request to this URL: 'https://example.com/'
* About to connect() to example.com port 443 (#0)
* Trying 50.70.60.100... connected
* Connected to example.com (50.70.60.100) port 443 (#0)
* TLS disabled due to previous handshake failure
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -12286
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error
答え1
NSS error -12286
~によるとNSS文書,-12286 は次のことを意味します。
SSL_ERROR_NO_CYPHER_OVERLAP
「同僚と安全に通信できません。汎用暗号化アルゴリズムはありません。」
ローカルおよびリモートシステムは共通の暗号スイートを共有しません。これは、両端の構成が間違っているためです。これは、RSA 鍵交換アルゴリズムで非 RSA 証明書を使用するようにサーバーが正しく構成されていないためです。
使用するパスワードとその--ciphers
オプションをカールに伝えることができます。
バラよりここサーバーでサポートされているパスワードのリストを列挙する方法(またはアクセス権がある場合はWebサーバー構成を確認してください)。