【发布时间】:2010-08-08 03:05:43
【问题描述】:
我不知道如何准确地表达这一点,但我有一个脚本可以从 Web 服务器下载 SSL 证书以检查它的到期日期。
为此,我需要下载 CA 证书。目前我将它们写入 /tmp 目录中的一个临时文件,稍后再读回来,但我确信必须有一种方法可以在不写入磁盘的情况下执行此操作。
这是下载证书的部分
CA_FILE = '/tmp/ca_certs.txt'
root_cert = urllib.urlopen('https://www.cacert.org/certs/root.txt')
class3_cert = urllib.urlopen('https://www.cacert.org/certs/class3.txt')
temp_file = open(CA_FILE, 'w')
temp_file.write(root_cert.read())
temp_file.write(class3_cert.read())
temp_file.close()
编辑
这是使用文件获取证书的部分
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(s, ca_certs=CA_FILE, cert_reqs=ssl.CERT_REQUIRED)
ssl_sock.connect(('mail.google.com', 443))
date = ssl_sock.getpeercert()['notAfter']
【问题讨论】: