這個問題很可能是由於客戶端過時的TLS支持所致,因爲禁用對等證書和主機名驗證不起作用。
服務器的快速scan顯示它們僅支持TLS 1.2連接,因此客戶端必須支持此功能(SSLv3,TLS 1.0或TLS 1.1將不起作用)。這意味着需要OpenSSL 1.0.1或更高版本。
不幸的是,在代碼中沒有任何東西可以解決這個問題。他們需要確保他們的cURL庫是用現代TLS支持構建的。
sslscan https://gdc-api.nci.nih.gov
Version: 1.10.5-rbsec
OpenSSL 1.0.2k 26 Jan 2017
Testing SSL server gdc-api.nci.nih.gov on port 443
TLS renegotiation:
Session renegotiation not supported
TLS Compression:
Compression disabled
Heartbleed:
TLS 1.0 not vulnerable to heartbleed
TLS 1.1 not vulnerable to heartbleed
TLS 1.2 not vulnerable to heartbleed
Supported Server Cipher(s):
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-GCM-SHA384
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-SHA384
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-GCM-SHA256
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA256
Preferred Server Cipher(s):
TLSv1.2 256 bits ECDHE-RSA-AES256-GCM-SHA384
在某些系統上,至少看起來libcurl可能還需要更新。 – seandavi
是的,對不起,如果不明確。 libcurl也需要更新,以便了解後面的TLS協議以及如何將它們與更新的SSL庫一起使用。 – drew010