我正在使用Google App Engine(GAE)python 2.7运行时。
我需要签名(并且可能还会生成)X509证书(.csr)
据我了解,PyOpenSSL是OpenSSL的包装,在App Engine中不可用 Pycrypto可用,但没有针对X509的明确的预建签名方法。
如何仅使用python签署X509 .csr?
答案 0 :(得分:3)
我可以完全用Python签署X509证书吗?
几乎可以肯定,但我认为现有的纯Python实现并不存在。我能找到的最接近的是oscrypto
,但能够签署X509证书取决于是否有ctypes
模块。
作者还编写了一个名为certbuilder
的模块,该模块声称是“用于生成和签署X.509证书的Python库”,但它取决于oscrypto
模块。
然而,真正的问题听起来更像......
我可以在Google App Engine Python标准环境中签署X509证书吗?
在这种情况下,oscrypto
模块可能无济于事,因为根据文档,环境不允许使用ctypes
模块。
您可以访问PyCrypto
模块,虽然有a Python example使用它读取X509证书,并且C++ example验证X509证书,但Python绑定不会似乎完全支持编码和解码ASN.1。您可以将PyCrypto
与asn1crypto
合并为与oscrypto
相同的作者,以获得完整的ASN.1支持。
如果这些解决方案都没有任何用处,那么GAE Python Flexible Environment或GAE Custom Runtime应该允许您安装PyOpenSSL
包,但是您必须联系他们的技术支持团队找出答案。
答案 1 :(得分:2)
答案 2 :(得分:1)
这不是直接的答案,因为我从不使用C和Cython,但也许可以使用一些C库来完成这项任务。
来自Cython site:
所有这些使得Cython成为包装外部C的理想语言 库,将CPython嵌入到现有应用程序中,并且快速 C模块,可以加速Python代码的执行。
似乎不是最简单但不是最好的解决方案,但谁知道:)