python - 强制 Mechanize 使用 SSLv3

标签 python ssl mechanize mechanize-python

你会如何强制mechanize将 SSLv3 用于需要它的 HTTPS URL?如果我尝试对所有仅限 SSLv3 的 URL 使用 mechanize,我会收到错误消息:

URLError: <urlopen error [Errno 1] _ssl.c:504: error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000)>

最佳答案

一个肮脏的答案......不需要修补。

import ssl
from ssl import PROTOCOL_SSLv23, PROTOCOL_SSLv3, CERT_NONE, SSLSocket

def monkey_wrap_socket(sock, keyfile=None, certfile=None,
                server_side=False, cert_reqs=CERT_NONE,
                ssl_version=PROTOCOL_SSLv23, ca_certs=None,
                do_handshake_on_connect=True,
                suppress_ragged_eofs=True, ciphers=None):
    ssl_version=PROTOCOL_SSLv3
    return SSLSocket(sock, keyfile=keyfile, certfile=certfile,
                     server_side=server_side, cert_reqs=cert_reqs,
                     ssl_version=ssl_version, ca_certs=ca_certs,
                     do_handshake_on_connect=do_handshake_on_connect,
                     suppress_ragged_eofs=suppress_ragged_eofs,
                     ciphers=ciphers)

ssl.wrap_socket = monkey_wrap_socket

...在您的代码之前。

关于python - 强制 Mechanize 使用 SSLv3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927339/

相关文章:

python - 根据日期间隔将数据填充到时间序列中

python - Python:重新连接客户端套接字

python - subprocess.Popen 创建标志

安全 URL (https) 的 Facebook iFrame 选项卡问题

ruby - 如何在页面正文中搜索并强制进行编码转换

python - 使用 Mechanize 和 Python 登录 Stack Overflow

python - Django:从表单中保存外键

ios - 无法在 IIS 7 中的 iOS 7 上部署应用程序

放入 Multiprocessing.Queue 后,Python 无法重建 SSL 套接字

python - 为什么我的 python mechanize 脚本无法用于该特定站点