使用openssl的Python无法与普通用户帐户进行握手(Linux用户)

时间:2012-09-03 03:05:36

标签: python openssl

我抓住了互联网但无法得到答案。 我创建了一个示例cert.py文件:

import ssl
import traceback

def getCert():
    try:
        m_cert = ssl.get_server_certificate(('www.verisign.com', 443))
    except Exception, e:
        print e
        traceback.print_exc()
        m_cert = ''

    print m_cert
getCert()

我尝试使用“root”权限并且处理没有任何问题,但是当我切换到其他普通用户帐户时,我总是得到以下回溯:

Traceback (most recent call last):
  File "/tmp/cert.py", line 10, in getCert
    m_cert = ssl.get_server_certificate(('www.verisign.com', 443))
  File "/lib/python2.7/ssl.py", line 405, in get_server_certificate
  File "/lib/python2.7/ssl.py", line 299, in connect
  File "/lib/python2.7/ssl.py", line 283, in do_handshake

我也尝试使用“openssl”运行命令,我得到了相同的结果:root很好,但普通用户失败。

任何人都可以提供一些暗示吗?

由于

1 个答案:

答案 0 :(得分:0)

我知道它失败的原因。 原因是我的系统中/ dev / random设置为600,openssl试图在未经许可的情况下访问它。

在我将/ dev / random修改为666后,问题已修复。