公司的一个域名,用浏览器打开能正常访问,可是在linux下使用curl命令,老是报错,报错信息以下:html
curl: (60) Peer certificate cannot be authenticated with known CA certificates More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option.
网上搜了下这个报错信息,花了一天的时间竟然仍是没能解决。 python
后来偶然搜索ssl,打开了一个ssl检测网站(能检测https证书是否正常的一个网站),放上连接:https://myssl.com/ 检测后发现公司的这个域名https证书有问题:好像是"证书链不完整"之类的信息.linux
因而乎接着百度,google搜索证书链不完整的相关结果,终于发现了解决方法。nginx
用另一个网站生产中间证书: https://www.myssl.cn/tools/downloadchain.html(该网站能够在线生产中间证书)浏览器
生产中间证书以后,把中间证书的内容完彻底全的复制并追加到crt/cer文件后面(不要有空格,空行)dom
以后重载nginx配置文件,发现curl 命令再也不报错,至此,问题应该获得了解决,只是还不清楚其中的因此然,有时间了再研究吧。curl