用python写一个证书验证的函数
时间: 2024-02-23 22:59:21 浏览: 94
当然,我可以为您演示一个简单的证书验证函数。这里我们使用Python内置的ssl模块来实现。
```python
import ssl
def verify_certificate(cert_path):
try:
# 读取证书文件
with open(cert_path, 'rb') as f:
cert_data = f.read()
# 创建SSL上下文
context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
# 加载证书数据
context.load_verify_locations(cadata=cert_data)
# 验证证书
with ssl.create_default_context(ssl.Purpose.SERVER_AUTH).wrap_socket(socket.socket(), server_hostname=hostname) as s:
s.connect((hostname, port))
s.send(b'Hello, world')
data = s.recv(1024)
print(data)
return True
except:
return False
```
在上面的代码中,我们首先读取证书文件并将其存储在变量cert_data中。然后,我们使用ssl.create_default_context()函数创建SSL上下文对象,并使用context.load_verify_locations()函数将证书加载到上下文中。最后,我们使用ssl.create_default_context().wrap_socket()函数创建一个包含SSL支持的套接字对象,并使用该套接字对象验证证书。
使用该函数时,只需要传入证书文件的路径即可。如果验证成功,函数将返回True,否则返回False。
阅读全文