python - Twisted Python 中的 TLS - 如何创建 server.pem?

标签 python ssl cryptography twisted

我刚刚在 Python 中发现了 Twisted,并且一直在查看 echoserv_ssl.py 示例,如下所示:https://twistedmatrix.com/documents/14.0.0/core/howto/ssl.html .在示例代码上方,页面引用“以下示例依赖于文件 server.pem(私钥和自签名证书一起)和 public.pem(服务器本身的公共(public)证书)。”

因此,作为 SSL 证书和 key 方面的新手,我做了一些研究,并找到了 http://www.thegeekscope.com/how-to-generate-self-signed-ssl-certificate-in-linux/

我按照那里的说明进行操作,并将我的 echoserv_ssl.py 指向创建的文件(第 3 步)。但是,这与我们系统本地拥有的任何证书文件一起似乎会产生相同的错误:

# python echoserv_ssl.py
2014-09-17 15:12:54+0000 [-] Log opened.
2014-09-17 15:12:54+0000 [-] Traceback (most recent call last):
2014-09-17 15:12:54+0000 [-]   File "echoserv_ssl.py", line 23, in <module>
2014-09-17 15:12:54+0000 [-]     task.react(echoserv_ssl.main)
2014-09-17 15:12:54+0000 [-]   File "/usr/lib64/python2.6/site-packages/twisted/internet/task.py", line 875, in react
2014-09-17 15:12:54+0000 [-]     finished = main(_reactor, *argv)
2014-09-17 15:12:54+0000 [-]   File "/root/Robot/Twisted/echoserv_ssl.py", line 16, in main
2014-09-17 15:12:54+0000 [-]     certificate = ssl.PrivateCertificate.loadPEM(certData)
2014-09-17 15:12:54+0000 [-]   File "/usr/lib64/python2.6/site-packages/twisted/internet/_sslverify.py", line 619, in loadPEM
2014-09-17 15:12:54+0000 [-]     return Class.load(data, KeyPair.load(data, crypto.FILETYPE_PEM),
2014-09-17 15:12:54+0000 [-]   File "/usr/lib64/python2.6/site-packages/twisted/internet/_sslverify.py", line 725, in load
2014-09-17 15:12:54+0000 [-]     return Class(crypto.load_privatekey(format, data))
2014-09-17 15:12:54+0000 [-]   File "build/bdist.linux-x86_64/egg/OpenSSL/crypto.py", line 2010, in load_privatekey
2014-09-17 15:12:54+0000 [-]   File "build/bdist.linux-x86_64/egg/OpenSSL/_util.py", line 22, in exception_from_error_queue
2014-09-17 15:12:54+0000 [-] OpenSSL.crypto.Error: []

这个相当空的错误代码对我来说似乎没有那么有用。谁能解释我哪里出错了?

谢谢!

最佳答案

您可能已经注意到,有很多方法可以做到这一点。

巧合的是,就在几天前,我不得不生成一个 key 和自签名证书。我决定保存代码(并将其 checkin 到 Twisted 中)而不是将其丢失并在以后重新创建它。也许它会对你有所帮助:

https://github.com/twisted/twisted/blob/trunk/src/twisted/test/server.pem

编辑:感谢@glaucon 发布更新后的链接。

正如我所提到的,这不是唯一的方法,也可能不是最好的方法。但是,我确信它有效(生成的证书用于 Twisted 的 TLS 测试套件)。

请注意,该文件是一个可运行的 Python 程序(运行它会生成一个新的 key 和证书)一个包含私钥和证书的可加载 pem 文件。

关于python - Twisted Python 中的 TLS - 如何创建 server.pem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25894763/

相关文章:

algorithm - 生成一个可以稍后验证的随机代码

hash - 不抗第二原像和不抗碰撞有什么区别

python - 脚本只运行一次,即使我使用的是 "while(True)"

python - 使用 MinuteLocator 为 pandas.DataFrame.plot 每分钟设置一次滴答给出 "OverflowError: int too big to convert"

python - 使进度条以 5 Pyside 为增量对齐

PHP - 检查请求的 SSL 证书

ssl - 双向 SSL 在 WatchOS2.1 上失败,但相同的代码在 iOS9.1 上有效

vb.net - App.config 连接字符串保护错误

python - 有两个无休止地运行的函数是否可以接受?

http - 无法使用 HTTPS 与智能物联网设备通信