如何使用Python读取服务器上的所有证书

2024-04-26 03:39:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python证书解析器,它只使用pyasn1读取PEM格式。但是,我该怎么办 1列出给定IP地址的服务器上的所有证书

这样我的解析器就可以逐个读取它们来提取字段?在


Tags: 服务器解析器格式pem证书pyasn1
1条回答
网友
1楼 · 发布于 2024-04-26 03:39:50

要列出给定IP地址的服务器上的所有证书,高级流将如下所示:

For each IP:
    For every port: 
        initiate a TLS/SSL connection
        collect SSL Certificate information
        then do your parsing, extraction etc

标准的Python库提供了核心部分所需的基本功能:

^{pr2}$

同样的方法也适用于IP:

>>> ssl.get_server_certificate(('109.88.203.241', 443,))

然后,您可以用这种方式或多或少地编写扫描循环:

import ssl
for ip in ips_to_scan:
    for port in range(65536):
        try:
            yield ssl.get_server_certificate((ip, port,))
        except:
            pass

注意:我忽略了网络礼貌的问题,撇开nmap不谈,因为这是一个Python问题。try/except传球也很残酷,但这是一个例子。当然,您可能需要改进错误管理。在

有许多图书馆可以广泛地处理这一问题,而不仅仅是为了更高级的资料。其中包括:

相关问题 更多 >