【发布时间】:2017-07-14 17:54:06
【问题描述】:
首先让我说我对 ssl 和密码协议的了解非常有限。如果我说了什么明显错误的话,请耐心等待:-)。欢迎指正!
我正在构建一个自定义 Web 服务器以部署在隔离的本地网络中;这就是我运行服务的方式(Python 代码):
ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_context.load_cert_chain(certfile='mykey.crt', keyfile='mykey.key')
... client connects to https port 443 ...
ssl_sock = ssl_context.wrap_socket(sock, server_side=True)
这就是我生成 mykey.crt 和 mykey.key 文件的方式:
$ openssl genrsa -des3 -out mykey.orig.key 2048
$ openssl rsa -in mykey.orig.key -out mykey.key
$ openssl req -new -key mykey.key -out mykey.csr
$ openssl x509 -req -days 3650 -in mykey.csr -signkey mykey.key -out mykey.crt
到目前为止一切顺利,我的网络服务器运行良好。但我已经摆脱了 Firefox 理所当然地推到我脸上的“不安全”警告。
我想在访问我的网络服务器的少数客户端中安装我的自签名证书,以永久避免警告。
我遵循了我能找到的每一个证书安装指南,但我绝对无法让 Firefox(和 Chrome)接受我的证书。而且我没有从浏览器收到任何错误消息。 我想我在证书生成命令中遗漏了一些东西。
有人可以帮助我吗? 非常感谢!
【问题讨论】:
-
检查浏览器中警告的实际内容(也许看看高级信息)。我的猜测是证书的内容与您用于访问服务器的 URL 不匹配。
-
我真的找不到任何地方 Firefox 或 Chrome 显示拒绝我的证书的原因。此外,我在其他已经存在的证书中找不到我的证书,所以我认为这是一个证书问题,即使在我的客户尝试连接到我的 Web 服务器之前。无论如何,我会检查网址。谢谢。
标签: python ssl https self-signed