Gre*_*eev 1 python ssl openssl python-2.7
我知道证书和私钥中的块模数必须相同。但是如何使用Python进行检查?我正在寻找OpenSSL库的解决方案,但没有找到。请告诉我解决方案,如何理解与使用Python相关的证书和私钥。如果私钥未以PEM格式加密,则为PEM格式的证书。最好使用标准库。没有通过子过程使用OpenSSL的
感谢。
小智 5
def check_associate_cert_with_private_key(cert, private_key):
"""
:type cert: str
:type private_key: str
:rtype: bool
"""
try:
private_key_obj = OpenSSL.crypto.load_privatekey(OpenSSL.crypto.FILETYPE_PEM, private_key)
except OpenSSL.crypto.Error:
raise Exception('private key is not correct: %s' % private_key)
try:
cert_obj = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
except OpenSSL.crypto.Error:
raise Exception('certificate is not correct: %s' % cert)
context = OpenSSL.SSL.Context(OpenSSL.SSL.TLSv1_METHOD)
context.use_privatekey(private_key_obj)
context.use_certificate(cert_obj)
try:
context.check_privatekey()
return True
except OpenSSL.SSL.Error:
return False
Run Code Online (Sandbox Code Playgroud)
来源:http : //docs.ganeti.org/ganeti/2.14/html/design-x509-ca.html#verify-whether-x509-certificate-matches-private-key