Centos
與 CentOS、curl 和 ECDHE 的 SSL 握手
由於 Logjam 漏洞,我將我的密碼限制為 ECDHE,我無法再從 Centos 機器上進行 curl。(來自 Ubuntu 的作品)
$ curl -v https://mysite.mydomain.com * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * NSS error -12286 (SSL_ERROR_NO_CYPHER_OVERLAP) * Cannot communicate securely with peer: no common encryption algorithm(s).
使用 openssl 打開:
$ openssl s_client -connect mysite.mydomain.com:443 SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384
我嘗試使用顯式密碼–insecure 和–tlsv1.2,但沒有運氣
$ curl --ciphers TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 -v https://mysite.mydomain.com curl: (59) Unknown cipher in list: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
編輯:嘗試使用正確的 NSS 密碼名稱,並且小於 384 位:
curl --ciphers ecdhe_rsa_aes_128_sha_256 https://mysite.mydomain.com * Connected to xxx (xxx) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * Unknown cipher in list: ecdhe_rsa_aes_128_sha_256 * Closing connection 0 curl: (59) Unknown cipher in list: ecdhe_rsa_aes_128_sha_256
發現了這個錯誤https://bugzilla.redhat.com/show_bug.cgi?id=1185708但並沒有幫助我通過它。
SSLLabs 報告支持這些密碼:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) ECDH 256 bits (eq. 3072 bits RSA) FS 256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) ECDH 256 bits (eq. 3072 bits RSA) FS 128 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028) ECDH 256 bits (eq. 3072 bits RSA) FS 256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) ECDH 256 bits (eq. 3072 bits RSA) FS 128 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH 256 bits (eq. 3072 bits RSA) FS 256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) ECDH 256 bits (eq. 3072 bits RSA) FS 128
RHEL/CentOS 在 NSS 中預設不啟用 ECC。您必須明確指定您想要的密碼,例如
curl --ciphers ecdhe_rsa_aes_128_gcm_sha_256 ....
或者您的伺服器支持並且您的 curl/NSS 版本也支持的任何密碼。
有關更多詳細資訊,請參閱https://stackoverflow.com/a/31108631/3081018。
我嘗試使用顯式密碼–insecure 和–tlsv1.2,但沒有運氣
此問題與證書驗證無關,因此
--insecure
無濟於事。curl –ciphers TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
NSS 和 OpenSSL 的密碼名稱不同,由於您使用帶有 NSS 後端的 curl,因此您必須使用 NSS 語法。請參閱https://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives了解如何指定密碼。
此外,僅從 curl 7.36 起才提供對帶有 NSS 的 ECC 的支持。