【发布时间】:2018-09-13 07:34:58
【问题描述】:
我想从环境变量中提取我的 ssl 证书和密钥,而不是将它们存储在文件系统中。但是我遇到了一个扭曲的 ssl 的路障
from io import StringIO
from twisted.internet import reactor, task, threads, ssl
key = StringIO()
key.write(os.environ['SSLKEY'])
cert = StringIO()
cert.write(os.environ['SSLCERT'])
contextFactory = ssl.DefaultOpenSSLContextFactory(key, cert)
给我以下异常
2018-04-03 16:01:28-0500 [-] TypeError: Path must be represented as bytes or unicode string
或
contextFactory = ssl.DefaultOpenSSLContextFactory(key.getvalue(), cert.getvalue())
给了我以下异常。
2018-04-03 16:02:44-0500 [-] OpenSSL.SSL.Error: [('system library', 'fopen', 'File name too long'), ('BIO routines', 'file_ctrl', 'system lib'), ('SSL routines', 'SSL_CTX_use_certificate_file', 'system lib')]
twisted.internet.ssl 正在寻找文件名的字符串或字节对象,而 io.StringIO 给了我一个 io.StringIO 对象。
有没有办法做到这一点?
【问题讨论】:
标签: python python-3.x twisted stringio twisted.internet