SSLError:sslv3警报握手失败

eqoofvh9  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(135)

我打电话到branch.io

import requests
req = requests.get('https://bnc.lt/m/H3XKyKB3Tq', verify=False)

它在我的本地机器上工作正常,但在服务器上失败。

SSLError: [Errno 1] _ssl.c:504: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Openssl版本:

local:OpenSSL 0.9.8zg 2015年7月14日
服务器:OpenSSL 0.9. 8 e-fips-rhel 5 2008年7月1日

Python

本地:2.7.10服务器:2.7.6

分支io服务器连接

Chrome已验证DigiCert SHA 2 Secure Server CA颁发了此网站的证书。服务器未提供任何证书透明度信息。
我试过URLIB 2,但结果是一样的。有什么需要帮忙的吗?

unhi4e5o

unhi4e5o1#

Jyo de Lys已发现问题。问题在这里,解决方案在这里。我做了以下事情来让它工作:

  1. easy_install pyOpenSSL
  2. easy_install ndg-httpsclient
  3. easy_install pyasn1
    如果你在使用urllib 2的时候遇到这个错误,你也需要升级到python 2.7.9或更高版本。
2ic8powd

2ic8powd2#

对于那些正在使用python 3.9的人来说,你正面临着这个问题“SSL:SSLV3_ALERT_HANDSHAKE_FAILURE]“获取证书或获取特定URL的过期日期时
所以你必须按照这些步骤,以获得有效的响应从网址
1.在Windows中安装OpenSSL
1.现在复制正在安装在C盘的openssl的文件夹路径
使用下面的代码
servers是url的列表,ports是所有端口的列表

for i in range(0,len(servers)):
    try:
        s = servers[i]
        port = ports[i]
        print("querying {}".format(s))
        q = Popen(["C:\\Program Files\\OpenSSL-Win64\\bin\\openssl.exe", "s_client", "-connect","{}:{}".format(s,port),"-servername",s,"-showcerts" ], stdout=PIPE, stdin=PIPE, shell=False)
        y = check_output(["C:\\Program Files\\OpenSSL-Win64\\bin\\openssl.exe", "x509", "-noout", "-dates"], stdin=q.stdout)
        print(y.decode("utf-8"))
    except Exception as e:
        print(e)

相关问题