Canonical是否在其openssl的包版本中重命名符号,如果是,为了什么目的?当我从头开始编译openssl-1.0.0e.tar.gz(从openssl.org直接下载)时,我看到了必要的符号,但Python(和我)似乎无法在打包版本中找到它 .
继续阅读有关我如何诊断此问题的更多信息...
我试图在Ubuntu 11.10上编译Python 2.6.1,并获得上面的错误消息 . 我使用这个旧版Python的原因是我试图使我的Ubuntu安装与 生产环境 系统100%兼容以用于开发目的 .
表演时
strace -feopen make -j4 |& grep "libssl"
我看到我正在使用一个有前途的文件:
[pid 22614] open(“/ usr / lib / x86_64-linux-gnu // libssl.so”,O_RDONLY)= 7
运行nm,此文件没有符号 . 但是.a文件确实有类似的文件:
0000000000000030 T SSLv23_method
包libssl1.0.0-dbg是通过synaptic安装的,但是当我列出这个包的已安装文件时,我看到的是“已安装文件的列表仅适用于已安装的软件包”,这显然是一个Ubuntu错误 . 所以我不确定我应该如何检查.so中存在哪些符号 .
但是,我怀疑他们在任何情况下都已将SSLv2_method重命名为SSLv23_method .
如何着手弄清楚Ubuntu的openssl-1.0.0的状态?
3 回答
Ubuntu人员在没有SSLv2支持的情况下构建OpenSSL,因为协议有known security issues . 所以's why you can' t在他们的库中找到
SSLv2_method
,即使你自己编译库时也可以找到它 .Ubuntu构建日志是公开的available . 您可以在oneiric-i386.openssl_1.0.0e日志中看到库配置了
-no-ssl2
选项,该选项禁用对SSLv2的支持 .请注意,
SSLv23_method
的可用性并不意味着客户端将能够连接到具有SSLv2的服务器 . OpenSSL文档简要discusses this situation:在this blog post的补丁的帮助下,我能够在Ubuntu 12.04上构建支持SSL的Python 2.6 .
我的修复是在没有ssl2支持的情况下安装openssl
然后在/ usr / ssl中安装链接到库的任何内容 . 有用..