0

我已经抓住了互联网,但无法得到答案。我创建了一个示例 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 很好,但是普通用户失败了。

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

谢谢

4

1 回答 1

0

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

在我将 /dev/random 修改为 666 后,问题就解决了。

于 2012-09-05T02:22:49.627 回答