3

自己署名 SSL 証明書のフィンガープリントを比較することに興味があります。そのために、次のことを考えました。

import ssl, socket
from m2crypto import X509

cert_pem = ssl.get_server_certificate(addr)
x509 = X509.load_cert_string(cert_pem, X509.FORMAT_PEM)
fp = x509.get_fingerprint('sha1')
if fp==allowed_fp:
   s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
   s.connect(addr)

しかし、私が見るバイアスは、検証と接続の間で証明書が変わる可能性があるということです。同じ接続用途を実際に使用するとよいでしょうssl.get_server_certificate。指紋を比較するより良い方法はありますか?

4

1 に答える 1