如何设置/发现蟒蛇ssl.wrap_socket的ca_certs参数()(How to set/f

2019-09-21 01:47发布

我试图写一个python脚本2.7,即通过SSL或TLS套接字连接到服务器。 服务器存在并且可以提供其证书等。

我发现下面的代码:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(s,
                       ca_certs="/etc/ca_certs_file",
                       cert_reqs=ssl.CERT_REQUIRED)
ssl_sock.connect((serverName, portNumber))

我不明白什么是ca_certs说法。 难道这是目前存在我的电脑上的文件? 如果是的话,我怎么知道它在哪里? 我已经看过我的Linux计算机(树莓派和Debian),发现有很多的。质子交换膜的文件在我的/ etc / SSL /证书目录。 我应该设置ca_certs参数其中之一吗? 如果是,选择哪一个? 如果没有,我应该把它设置为?

Answer 1:

事实证明,该证书文件应该已经存在于操作系统中的文件,并包含根的连续清单(和/或中间?不知道这一点)由操作系统可信证书。 在我的rasperry PI Debian的情况下,它/etc/ssl/certificates/ca-certificates.crt

如果你有,你想信任证书,你可以让他们在这个文件中使用Linux命令更新CA证书添加。 这将读取该文件/etc/ca-certificateds.conf,它应该包含要信任的证书列表。 (默认情况下它会试图找到这些证书在/ usr /共享/ CA证书)



文章来源: How to set/find the ca_certs argument in python ssl.wrap_socket()