6469baf460
* Added get_certificate module. * Fixed test against bogus_ca.pem file
25 lines
663 B
Python
25 lines
663 B
Python
from sys import argv
|
|
from subprocess import Popen, PIPE, STDOUT
|
|
|
|
p = Popen(["openssl", "s_client", "-host", argv[1], "-port", "443", "-prexit", "-showcerts"], stdin=PIPE, stdout=PIPE, stderr=STDOUT)
|
|
stdout = p.communicate(input=b'\n')[0]
|
|
data = stdout.decode()
|
|
|
|
certs = []
|
|
cert = ""
|
|
capturing = False
|
|
for line in data.split('\n'):
|
|
if line == '-----BEGIN CERTIFICATE-----':
|
|
capturing = True
|
|
|
|
if capturing:
|
|
cert = "{0}{1}\n".format(cert, line)
|
|
|
|
if line == '-----END CERTIFICATE-----':
|
|
capturing = False
|
|
certs.append(cert)
|
|
cert = ""
|
|
|
|
with open(argv[2], 'w') as f:
|
|
for cert in set(certs):
|
|
f.write(cert)
|