我正在编写一个 Python 脚本,我需要在其中确定预证书和叶证书是否匹配。
为此,在删除 SCT(1.3.6.1.4.1.11129.2.4.2) 和 Precert Poison(1.3.6.1.4.1.11129.2.4.3) 扩展后,我需要比较 precert 和叶子证书的 TBS 证书。
使用 python 加密模块,很容易获得 TBS 证书:
from cryptography import x509
from cryptography.hazmat.backends import default_backend
cert = x509.load_pem_x509_certificate(cert_data_pem, default_backend())
print(cert.tbs_certificate_bytes)
但是,我无法弄清楚如何删除这些扩展。看起来 asn1crypto 可以做到这一点,但似乎可用的文档很少。
删除这些扩展的最巧妙方法是什么?如果可行,我很高兴依赖 openssl,因为我已经在脚本中使用它。