wget错误:无法验证本地主机的证书,遇到自签名证书。

3

我如何在nginx上实现安全的https连接

我想在我的本地主机上实现https。我在Ubuntu 20.04上运行http服务器nginx。

我所做的是执行以下命令:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/localhost.key -out /etc/ssl/certs/localhost.crt -config /tmp/openssl

然后我配置了nginx使用ssl,具体步骤如下:

    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    ssl_certificate /etc/ssl/certs/localhost.crt;
    ssl_certificate_key /etc/ssl/private/localhost.key;

刷新和重新加载了nginx...好的,一切都很顺利。

但是当我尝试连接https://localhost时,我遇到了以下问题:

enter image description here

然后我点击了Advance并继续访问,然后我得到了一个Firefox中的MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT错误。

图片如下:

enter image description here

然后我可以查看页面,但连接似乎不安全...

enter image description here

如何获得安全连接?

我尝试了wget,结果如下:

  --2021-05-11 05:21:37--  https://localhost/
      Resolving localhost (localhost)... 127.0.0.1
      Connecting to localhost (localhost)|127.0.0.1|:443... connected.
     ERROR: cannot verify localhost's certificate, issued by ‘CN=localhost,OU=Development,O=Localhost                                CA,L=Rochester,ST=New York,C=US’:
      Self-signed certificate encountered.
         To connect to localhost insecurely, use `--no-check-certificate'.

我用postman尝试了,但仍然出现签名密钥错误...

enter image description here

我该如何解决这个签名密钥中间证书错误...

我参考了这里的教程... 我使用的操作系统是Ubuntu 20.04,我要实现的服务器是nginx

我该如何建立一个受信任的https本地连接...非常感谢帮助!


我相信除了生成证书之外,您还需要将证书包含在浏览器的证书存储中。话虽如此,这并不是一个真正的编程问题,所以可能应该移动到超级用户或类似的频道。 - ewokx
我尝试将其添加到存储中,但连接仍然不安全。无论如何,感谢ewong的评论,我已将此问题移至超级用户。 - Midhun Raj
祝你好运!(附注:我认为您还需要确保在浏览器中信任证书)。但这只是我的猜测。 - ewokx
@ewong 我已经这样做了......但连接仍然显示为不安全。 - Midhun Raj
1个回答

0

MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT很讨厌,但它并不一定表示证书有问题。

如果您使用的是Windows/Mac系统,您可以将新证书添加到操作系统的信任存储中,并在Firefox的about:config页面上启用security.enterprise_roots.enabled

https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

如果您使用的是Linux系统,可以通过策略文件来信任操作系统证书颁发机构。

在Firefox安装目录下的“distribution”文件夹中创建一个名为“policies.json”的文件,并将其指向证书文件:

{
  "policies": {
    "Certificates": {
      "ImportEnterpriseRoots": true,
      "Install": ["localhost.crt","/path/to/cert/file"]
    }
  }
}

https://github.com/mozilla/policy-templates/blob/master/README.md#certificates--install


这个类似问题的问答可能会有更多信息:
https://dev59.com/E77pa4cB1Zd3GeqPyWwQ#74802552


感谢@JonathanDavidArndt花时间澄清上述问题。 - Midhun Raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接