pyopenssl可以很方便的解析证书文件里的各种证书信息
安装
pip3 install pyopenssl
使用
我这里的使用场景:平时业务域名用到的证书,都是acme制作的免费证书,有效期比较短,需要经常更换,所以为了统一去检查证书的有效期,把证书上传到运维平台,运维把证书上传到服务器时,就需要通过证书文件解析去获取证书的域名机构有效期等,前端以数据表格的形式按照过期时间的倒序排列,当然还可以通过对过期时间的比对来提前报警提醒等
#获取证书相关信息
path = **** 定义自己的证书文件路径
with open(path, 'r') as f:
cert = crypto.load_certificate(crypto.FILETYPE_PEM, f.read())
#获取域名
dname = cert.get_subject().CN
#获取颁发机构
org = cert.get_issuer().CN.split(" ")[0]
#获取开始结束时间并转为东八区
datetime_struct = parser.parse(cert.get_notBefore().decode("UTF-8"))
CreateTime = datetime.datetime.strptime(str(datetime_struct).replace('+00:00', ''),
'%Y-%m-%d %H:%M:%S') + datetime.timedelta(hours=8)
datetime_struct_end = parser.parse(cert.get_notAfter().decode("UTF-8"))
ExpiredTime <