2016-09-16 39 views
1

使用Python 3.4並請求2.11.1包得到'https://www.nfm.com'網站時,請求會引發SSLError [SSL:UNKNOWN_PROTOCOL]。我可以從其他https站點(如pythonanywhere.com和amazon.com)獲得有效響應。只有遇到錯誤纔會嘗試requests.get('https://www.nfm.com')requests.get('https://www.nfm.com', verify=False)Python在獲取https://www.nfm.com時請求SSL錯誤[SSL:UNKNOWN_PROTOCOL]

我在Chrome中檢查了NFM的證書,它是一個有效的解密SHA256 SSL CA.這是NFM的問題,還是我需要在我的最終配置中獲得來自此網站的響應對象?

+0

對我來說工作得很好,當'request'get('https://www.nfm.com')'我得到'200'' – noteness

+0

對我來說python 3.4.3,3.5.2, 2.7.12,2.7.6所以你的系統可能有特定的東西。請提供操作系統和openssl版本('ssl.OPENSSL_VERSION') –

回答

1

根據SSLLabs該服務器僅支持TLS 1.1和更高版本。我的猜測是你有一個較舊的OpenSSL版本,它不能說這個版本。 TLS 1.1和TLS 1.2支持在OpenSSL 1.0.1年前添加,但例如,Apple僅在Mac OS X上提供0.9.8的舊版本,該版本僅支持最多TLS 1.0(服務器不支持)。

+0

我使用的是OSx 10.10.5。驗證了OpenSSL 0.9.8版。我將如何去更新到1.0.1?你能推薦一種方法嗎? – y2knoproblem

+0

@ y2knoproblem:例如[在python 2.7中更新openssl](http://stackoverflow.com/questions/18752409/updating-openssl-in-python-2-7)或搜索[Python升級時的所有其他結果openssl mac os x](https://www.google.com/search?q=python+upgrade+openssl+mac+os+x) –