Python ssl 登录卡在 Debian 上

标签 python ssl debian mechanize

我正在尝试使用 Python 2.7 mechanize 通过以下代码登录到 Mint.com:

import mechanize
br = mechanize.Browser()
br.open("https://wwws.mint.com/login.event")

这在 OSX 上工作得很好,但它在 debian 上挂起。这个问题似乎与 ssl 有关;追溯结束于

File "/usr/lib/python2.7/ssl.py", line 305, in do_handshake
    self._sslobj.do_handshake()

编辑: 该问题在使用 urllib2 的 Debian 上仍然存在。正如评论中所建议的那样,这个问题似乎实际上与 ssl 相关。为什么这会是 Debian 而不是 OSX 上的问题?

最佳答案

所以在 Fedora 上一切正常:

[bharrington@leviathan ~]$ python
Python 2.7.5 (default, Aug 22 2013, 09:31:58) 
[GCC 4.8.1 20130603 (Red Hat 4.8.1-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
>>> br = mechanize.Browser()
>>> br.open("https://wwws.mint.com/login.event")
<response_seek_wrapper at 0x29b6440 whose wrapped object = <closeable_response at 0x29b6320 whose fp = <socket._fileobject object at 0x298d150>>>
>>> br.title()
'Mint > Start Here'
>>> 

这让我想知道正在使用的 SSL/OpenSSL 库。只是为了测试它,您可以从命令行运行吗:

$ openssl s_client -connect wwws.mint.com:443

您应该看到显示的 mint SSL 证书,以及完整的证书链验证,以及最后一行:“Verify return code: 0 (ok)”

虽然我高度直接怀疑这是一个 SSL 问题,但我认为值得检查一下。此外,验证 mechanize 的版本。 Debian 以使用稳定版本的代码(不是新版本)而著称。我用 mechanize 验证的版本是 0.2.5

关于Python ssl 登录卡在 Debian 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17505054/

相关文章:

Python 语法错误 : Non-UTF-8

bash - 将 tcpdump 输出写入压缩/gziped 文件

c - 多线程数组的段错误

linux - session 屏幕 - 如何获取 session 列表

ssl - 如何确保我的 NGINX 服务器使用 TLS 而不是 SSL 进行身份验证?

git - 如何在 cygwin(和一些 linux 发行版)上将企业证书颁发机构 (CA) 添加到 git

javascript - 使用 HTML5 拖放

python - 如何将 "keras"从 1.2.0 升级到 2.0.0?

python - 在mysql python中替换列值的逻辑

Grails:无法在/** 上强制执行 SSL