所有提供 Peer 证书颁发者的 TLS 请求均已被标记为不受用户信任

所有提供 Peer 证书颁发者的 TLS 请求均已被标记为不受用户信任

当我尝试向 google.com 发出 https 请求时,我最近开始看到

[root@ip-172-31-47-76 ~]# curl -I -v https://google.com
* Rebuilt URL to: https://google.com/
*   Trying 216.58.193.78...
* TCP_NODELAY set
* Connected to google.com (216.58.193.78) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Server certificate:
*       subject: CN=*.google.com,O=Google Inc,L=Mountain View,ST=California,C=US
*       start date: Feb 20 14:17:23 2018 GMT
*       expire date: May 15 14:08:00 2018 GMT
*       common name: *.google.com
*       issuer: CN=Google Internet Authority G2,O=Google Inc,C=US
* NSS error -8172 (SEC_ERROR_UNTRUSTED_ISSUER)
* Peer's certificate issuer has been marked as not trusted by the user.
* stopped the pause stream!
* Closing connection 0
curl: (60) Peer's certificate issuer has been marked as not trusted by the user.
More details here: https://curl.haxx.se/docs/sslcerts.html

这会影响我更新系统的能力,因为 yum 更新请求也会失败。我已尝试使用此页面上的说明重新导入我的证书:https://access.redhat.com/solutions/1549003。我还尝试使用此处的说明手动添加 Google 证书:https://curl.haxx.se/docs/sslcerts.html。两者都不起作用。

我不确定它是否相关,但我尝试使用 certutil 实用程序进一步进行故障排除,但无法运行

[root@ip-172-31-47-76 ~]# certutil
certutil: /usr/local/firefox/libnss3.so: version `NSS_3.30' not found (required by certutil)

不太确定这里发生了什么,但我将不胜感激任何帮助。这是使用 Amazon Linux 映像。

答案1

我无法模拟您的错误,但我相信手动更新证书后它会起作用。为此,您可以使用“openssl”工具,这是提取特定服务器的 CA 证书的简单方法:

1.获取服务器公共证书并保存到文件 conn_cert.log.pem,输入以下命令(然后按 Enter)

openssl s_client -showcerts -servername https://google.com -connect google.com:443 > conn_cert.log.pem

2.现在,输入“quit”并按 Enter 键

3.文件“conn_cert.log.pem”的证书位于“BEGIN CERTIFICATE”和“END CERTIFICATE”字符串之间,但它还有其他日志消息,现在我们只从日志文件中提取证书并将其保存在文件“google_public”中.crt”。

openssl x509 -inform PEM -in conn_cert.log.pem -text -out google_public.crt

4.最后,用新证书覆盖错误的证书:

cp google_public.crt /etc/pki/tls/certs/ca-bundle.crt

5.再次测试并快乐..

参考文献:

相关内容