如何使用PyOpenSSL获取公钥?

2024-05-16 06:46:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建python脚本,它将采用PKCS#12包并打印x509证书中包含的一些信息,并用于purpuses PyOpenSSL模块。到目前为止,我想从证书公钥中获取。但是PKey对象没有合适的方法。我能从这里搬出去吗?有办法弄到公钥吗?

pfx=open('./1.p12','rb').read()
PKCS=crypto.load_pkcs12(pfx)
cert=PKCS.get_certificate()
PKey=cert.get_pubkey()

print PKey
<OpenSSL.crypto.PKey object at 0x012432D8>

谢谢。


Tags: 模块对象脚本信息getcertcrypto证书
3条回答

这行吗?

print PKey
<OpenSSL.crypto.PKey object at 0x012432D8>

from OpenSSL import crypto

crypto.dump_privatekey(PKey)

我假设你想从文件中读取公钥。

首先安装pyopenssl

pip安装pyopenssl

from OpenSSL import crypto
import os

   file_path = os.path.join(os.getcwd(),'/certificates/test.crt')
   f = open(file_path, "r")
   cert = f.read()
   pub_key_obj = crypto.load_certificate(crypto.FILETYPE_PEM, cert).get_pubkey()
   pub_key = crypto.dump_publickey(crypto.FILETYPE_PEM,pub_key_obj)
   print(pub_key)

输出为:

----开始公钥---

。。。。

----结束公钥---

首先,您可以像这样加载证书

from OpenSSL import crypto

#cert is the encrypted certificate int this format -----BEGIN -----END    
crtObj = crypto.load_certificate(crypto.FILETYPE_PEM, cert)
pubKeyObject = crtObj.get_pubkey()
pubKeyString = crypto.dump_publickey(crypto.FILETYPE_PEM,pubKeyObject)
print pubKeyString

你会看到

-----BEGIN PUBLIC KEY----- 
....
....
-----END PUBLIC KEY-----

相关问题 更多 >