mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 00:01:36 +00:00
CertStore: cope with certs that have no common name
This commit is contained in:
parent
86730a9a4c
commit
52b14aa1d1
@ -169,21 +169,22 @@ class CertStore:
|
||||
f.close()
|
||||
return key, ca
|
||||
|
||||
def add_cert_file(self, commonname, path):
|
||||
def add_cert_file(self, spec, path):
|
||||
raw = file(path, "rb").read()
|
||||
cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, raw)
|
||||
try:
|
||||
privkey = OpenSSL.crypto.load_privatekey(OpenSSL.crypto.FILETYPE_PEM, raw)
|
||||
except Exception:
|
||||
privkey = None
|
||||
self.add_cert(SSLCert(cert), privkey, commonname)
|
||||
self.add_cert(SSLCert(cert), privkey, spec)
|
||||
|
||||
def add_cert(self, cert, privkey, *names):
|
||||
"""
|
||||
Adds a cert to the certstore. We register the CN in the cert plus
|
||||
any SANs, and also the list of names provided as an argument.
|
||||
"""
|
||||
self.certs.add(cert.cn, (cert, privkey))
|
||||
if cert.cn:
|
||||
self.certs.add(cert.cn, (cert, privkey))
|
||||
for i in cert.altnames:
|
||||
self.certs.add(i, (cert, privkey))
|
||||
for i in names:
|
||||
|
Loading…
Reference in New Issue
Block a user