首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用python检索远程主机的TLS/SSL对等证书?

要使用Python检索远程主机的TLS/SSL对等证书,您可以使用ssl库和socket库。以下是一个示例代码:

代码语言:python
代码运行次数:0
复制
import socket
import ssl

def get_remote_certificate(hostname, port):
    context = ssl.create_default_context()
    with socket.create_connection((hostname, port)) as sock:
        with context.wrap_socket(sock, server_hostname=hostname) as ssock:
            certificate = ssock.getpeercert()
            return certificate

hostname = 'example.com'
port = 443
certificate = get_remote_certificate(hostname, port)
print(certificate)

在这个示例中,我们首先导入socketssl库。然后,我们定义一个名为get_remote_certificate的函数,该函数接受主机名和端口号作为参数。在函数内部,我们创建一个默认的SSL上下文,并使用create_connection函数创建一个TCP连接。接下来,我们使用wrap_socket函数将TCP连接升级为SSL连接,并传递主机名以进行服务器名称指示(SNI)。最后,我们使用getpeercert函数获取对等证书,并返回它。

在主程序中,我们定义一个主机名和端口号,然后调用get_remote_certificate函数以获取对等证书。最后,我们打印证书信息。

请注意,这个示例仅适用于支持SNI的服务器。如果您需要检索不支持SNI的服务器的证书,您需要使用其他方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 使用golang部署运行tls的https服务时,不用停机,高效证书下放,如何实现?

    这篇文章主要介绍如何在应用golang语言开发http/https服务时,如何让tls自动获取证书,而不必在证书更新或重置以后,还要重启服务器来让业务重新起效,本文分成三部分,第一部分会介绍tls加密的常用加密算法进行分析总结,虽然与主干关系不特别大,但是该段络会帮你厘清一个日常使用中,非常容易被混淆的问题;第二部分会重点介绍如何部署一个不需要重启也能tls自动更新的高抽象度的http服务;第三部分会对整个文章进行总结,相信基于该文章的学习,你一定会对tls领域和流量监测、安全防护领域常见的算法有相对深刻的理解,也对如何高度抽象一个自签名的golang服务有全新的认识。那么文章开始!

    01
    领券