m0_74416677 2025-03-23 23:56 采纳率: 0%
浏览 8

请问为什么edge和在线ssl工具证书查询结果不同

我想要查询mail.google.com的证书链和到期时间,请问为什么用edge浏览器的证书查询和在线ssl证书查询出来的颁发机构和序列号都不一样?一个是WR2,一个是WE2,但是edge和firefox结果是一样,请问以哪个为准,为什么会这样?

img

img

  • 写回答

4条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-23 23:56
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    根据提供的截图,可以看到在Edge浏览器查询的证书中的颁发机构为"WR2",而在线SSL证书查询的结果中颁发机构为"WE2"。因为不同的工具或网站可能使用不同的根证书颁发机构来验证SSL证书链,所以可能会导致结果不一致。 在这种情况下,一般来说以浏览器(比如Edge)的查询结果为准,因为浏览器是直接和网站建立连接并验证证书的真实性,更加直接和准确。如果有疑问,可以手动查看浏览器的证书信息,并和在线SSL证书查询结果进行比对。 以下是Python代码,可以使用pyopenssl库查询证书链和到期时间:
    import OpenSSL
    import ssl
    import datetime
    def get_cert_chain_and_expiry(domain):
        cert_chain = []
        expiries = []
        
        cert = ssl.get_server_certificate((domain, 443))
        x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
        
        cert_chain.append(x509.get_issuer().CN)
        expiries.append(datetime.datetime.strptime(x509.get_notAfter().decode(), "%Y%m%d%H%M%SZ"))
        
        i = 0
        while True:
            try:
                cert = ssl.get_server_certificate((domain, 443), ssl_version=ssl.PROTOCOL_TLS)
                x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
                
                cert_chain.append(x509.get_issuer().CN)
                expiries.append(datetime.datetime.strptime(x509.get_notAfter().decode(), "%Y%m%d%H%M%SZ"))
                
                i += 1
            except Exception as e:
                break
        
        return cert_chain, expiries
    domain = "mail.google.com"
    cert_chain, expiries = get_cert_chain_and_expiry(domain)
    for i in range(len(cert_chain)):
        print(f"Certificate {i+1}:")
        print(f"Issuer: {cert_chain[i]}")
        print(f"Expiry Date: {expiries[i]}")
    

    可以使用上述代码查询指定域名的证书链和到期时间。可以看到具体的证书颁发构和到期时间,以及根据不同的工具和方式查询的结果进行比对。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月23日