我有一个场景,我曾经用来curl --noproxy "*" https://..
获取响应,但突然当我现在使用它时,它不会返回响应,而是显示
curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html
现在,当我使用curl -k https://
它时,它会给我回应。我不确定出了什么问题以及可能的原因是什么。
知道如何不使用curl -k
不安全的选项吗?
答案1
您可以为您尝试使用--cacert /path/to/crt/file
.该-k
选项通常用于自签名证书,尽管我总是尝试使用--cacert
.
答案2
如果这种情况最近发生,则远程证书可能是由您的证书存储中不存在的颁发机构签署的。如果您确信远程站点是否合法,-k 是一个选项。然而:
- 您可以尝试更新系统以刷新 ca 证书包
您可以使用 openssl s_client 获取有关证书的信息,它有许多选项来调试 SSL 内容。
例如: $ openssl s_client -connect google.com:443
- 另外:您无法通过扩展命令来获取有关证书的更多详细信息,如下所示:
$ openssl s_client -connect google.com:443 | $ openssl s_client -connect google.com:443 | openssl x509-noout-文本
其中包括有效期,例如:
... Certificate:
Data:
Version: 3 (0x2)
Serial Number: 5230064140940427690 (0x4894eba0494341aa)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=Google Inc, CN=Google Internet Authority G2
Validity
Not Before: Feb 13 10:55:29 2018 GMT
Not After : May 8 10:40:00 2018 GMT
Subject: C=US, ST=California, L=Mountain View, O=Google Inc, CN=*.google.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:d7:14:f9:54:c2:48:c4:4c:be:22:b1:59:23:79:
...