8

这就是我创建证书的方式

  from OpenSSL import crypto

  cert = crypto.X509()
  cert.get_subject().C            = countryName
  cert.get_subject().ST           = stateOrProvinceName
  ...


是一代的样子。
现在,如何使用 PyOpenSSL 从普通文件中提取这些值fomr 证书?

所以这就是我想出的

def certext(certstr):
  p1 = Popen(['printf', certstr], stdout=PIPE)
  p2 = Popen(['openssl', 'x509', '-text'], stdin=p1.stdout, stdout=PIPE)
  p1.stdout.close()
  output = p2.communicate()[0]
  return output
4

1 回答 1

18

您可以按如下方式加载 PEM 证书:

import OpenSSL.crypto

st_cert=open(certfile, 'rt').read()

c=OpenSSL.crypto
cert=c.load_certificate(c.FILETYPE_PEM, st_cert)

和一个私钥:

st_key=open(keyfile, 'rt').read()
key=c.load_privatekey(c.FILETYPE_PEM, st_key)

其中 certfile 和 keyfile 是文件名。

于 2013-06-18T21:00:14.653 回答