我在服务器的本地磁盘上的文件中有一堆SSL证书,并希望为给定的域名找到合适的证书。 Python的最新版本提供了ssl.match_hostname()
功能,原则上它只需要所有功能。但是,它希望证书采用已解码的Python字典格式,由ssl.SSLSocket.getpeercert()
返回,我无法找到将证书从本地文件解析为该格式的方法。执行解析的底层C函数似乎没有直接暴露。
那么如何找到给定主机名的匹配SSL证书?这似乎不是一件完全奇特的事情。
我想避免的是解析x509证书的subject字段和subjectAltName扩展名,并自己实现主机名匹配代码,因为涉及一定的复杂性。 (relevant code in the Python standard library for the domain name matching part alone持续了超过一百行。)