Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TwistedPython中的TLS-如何创建server.pem?_Python_Ssl_Cryptography_Twisted - Fatal编程技术网

TwistedPython中的TLS-如何创建server.pem?

TwistedPython中的TLS-如何创建server.pem?,python,ssl,cryptography,twisted,Python,Ssl,Cryptography,Twisted,我刚刚在Python中发现了Twisted,并查看了echoserv_ssl.py示例,如下所示:。在示例代码的正上方,页面引用了“以下示例依赖于文件server.pem(私钥和自签名证书一起)和public.pem(服务器本身的公共证书)。” 因此,作为SSL证书和密钥的新手,我做了一些研究,发现 我按照那里的说明,将echoserv_ssl.py指向创建的文件(步骤3)。然而,与我们系统上本地的任何证书文件一起,似乎产生了相同的错误: # python echoserv_ssl.py 201

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

因此,作为SSL证书和密钥的新手,我做了一些研究,发现

我按照那里的说明,将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: []
#python echoserv_ssl.py
2014-09-17 15:12:54+0000[-]日志打开。
2014-09-17 15:12:54+0000[-]回溯(最近一次通话最后一次):
2014-09-17 15:12:54+0000[-]文件“echoserv_ssl.py”,第23行,在
2014-09-17 15:12:54+0000[-]任务反应(echoserv_ssl.main)
2014-09-17 15:12:54+0000[-]文件“/usr/lib64/python2.6/site packages/twisted/internet/task.py”,第875行,在react中
2014-09-17 15:12:54+0000[-]完工=主(_反应堆,*argv)
2014-09-17 15:12:54+0000[-]文件“/root/Robot/Twisted/echoserv_ssl.py”,第16行,主目录
2014-09-17 15:12:54+0000[-]certificate=ssl.PrivateCertificate.loadPEM(certData)
2014-09-17 15:12:54+0000[-]文件“/usr/lib64/python2.6/site-packages/twisted/internet/_-sslverify.py”,第619行,在loadPEM中
2014-09-17 15:12:54+0000[-]返回类加载(数据,密钥对加载(数据,加密文件类型_PEM),
2014-09-17 15:12:54+0000[-]文件“/usr/lib64/python2.6/site packages/twisted/internet/_sslverify.py”,第725行,已加载
2014-09-17 15:12:54+0000[-]返回类(加密加载私钥(格式、数据))
2014-09-17 15:12:54+0000[-]文件“build/bdist.linux-x86_64/egg/OpenSSL/crypto.py”,第2010行,在load_privatekey中
2014-09-17 15:12:54+0000[-]文件“build/bdist.linux-x86_64/egg/OpenSSL/_util.py”,第22行,来自错误队列的异常
2014-09-17 15:12:54+0000[-]OpenSSL.crypto.Error:[]
这个相当空的错误代码对我来说似乎没有什么信息。有人能解释我哪里出错了吗


谢谢!

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

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

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


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

我想你可能在pyOpenSSL中遇到了一个错误。但那是因为你的pem也坏了,所以可能不是关于你的问题的最相关的评论。突然,我有了一个server.pem,它不会导致扭曲的代码爆炸!非常感谢你!对任何人谁对上面的链接感兴趣是关于旧的扭曲回购协议。我想(但我真的不知道)相应的文件现在位于。但是,自2014年9月以来,对该文件做了什么,现在还不清楚,因为当TRAC->git转换发生时(我假设),TRAC历史消失了。希望这对某人有用。