可以使用Python的ssl模块来验证证书文件的合法性。下面是一个示例代码:

import ssl
import socket

def check_certificate(certificate_file):
    try:
        # 创建SSL上下文
        context = ssl.create_default_context()
        # 加载证书文件
        context.load_verify_locations(cafile=certificate_file)
        
        # 创建SSL套接字
        with context.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
            # 连接到目标服务器(可以是任何使用SSL的服务器)
            s.connect(('www.example.com', 443))
            # 获取服务器的证书链
            cert = s.getpeercert()
        
        # 验证证书链
        ssl.match_hostname(cert, 'www.example.com')
        # 证书合法
        return True
    except ssl.SSLError:
        # 证书不合法
        return False

# 调用函数进行验证
result = check_certificate('certificate.pem')
print(result)

在上面的示例代码中,我们首先创建一个SSL上下文,然后加载证书文件。接下来,我们创建一个SSL套接字,并使用该套接字连接到目标服务器。然后,我们获取服务器的证书链,并使用ssl.match_hostname函数验证证书链的合法性。如果证书合法,函数返回True;否则,返回False。

请注意,上述代码仅验证了证书链的合法性,并没有验证证书的有效期、域名等其他属性。如果需要更详细的验证,可以使用ssl.get_server_certificate函数获取证书的详细信息,并根据需要进行验证。

Python验证证书文件合法性:代码示例与详解

原文地址: https://www.cveoy.top/t/topic/fPYI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录