Python HTTPS 服务器 - 证书验证

标签 python ssl curl

我需要用 Python 创建简单的 https 服务器。我用过这个教程 https://www.piware.de/2011/01/creating-an-https-server-in-python/它适用于一个小的“但是”。

当我尝试 curl 我的服务器(例如 curl -vvv https://domain.com )时,响应看起来类似于:

curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: LINK

在此先感谢您的帮助。

最佳答案

尝试在脚本中使用完整的证书链,而不是仅使用证书(和 key ):

httpd.socket = ssl.wrap_socket (httpd.socket, certfile='/path/to/fullchain.pem', server_side=True,  keyfile='/path/to/server.key')

如果您使用的是自签名证书,cURL 将不会接受它,除非您将它安装在本地 CA 证书上或使用 -k 运行 cURL:

curl -vvvk https://domain.com

证书链就是一系列的证书,从你本地颁发到全局(包括中间),通常由CAs提供。

关于Python HTTPS 服务器 - 证书验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156879/

相关文章:

docker - Cassandra 的 cqlsh 无法连接到任何服务器 : Last error: [SSL] internal error (_ssl. c:727)")

如果文件名已经存在,Python 将文件复制到新目录并重命名

javascript - JavaScript 中惯用的嵌套 for 循环

apache - 当服务器 apache 请求客户端证书时,Firefox 拒绝显示证书列表?

.htaccess - 两个条件 - 用于 https 和非 https 子域

ios - iOS中具有SSL身份验证的HTTPS POST:cURL?

jquery - 将curl命令转换为jQuery $.ajax()

php - 与 mail.google.com、cURL 和 http ://validator. w3.org/checklink 混淆

python - Python 中的可中断线程连接

c++ - 如何使用 SWIG 枚举枚举成员