如何使用curl忽略无效和自签名的SSL连接错误
时间:2020-01-09 14:17:02 来源:igfitidea点击:
使用curl命令时如何忽略SSL认证警告?
在Linux或类似Unix的系统上执行curl命令是否具有wget命令之类的--no-check-certificate选项?
说明:
您需要将-k或--insecure选项传递给curl命令。
该选项明确允许curl执行不安全的SSL连接和传输。
试图通过使用默认安装的CA证书捆绑包来确保所有SSL连接的安全。
curl是否在Linux上具有wget命令之类的no-check-certificate选项?
语法如下,允许curl命令在不使用https证书的情况下使用不安全或无效的SSL证书:
curl -k url curl --insecure url curl --insecure [options] url curl --insecure -I url
cURL忽略SSL证书警告命令
在此示例中,禁用curl命令的证书验证:
curl --insecure -I https://192.54.1.2/
或者
curl -k -O https://192.54.1.2/file.tar.gz
没有-k
或--insecure
选项,您将收到一条错误消息,内容如下:
curl: (60) SSL certificate problem: Invalid certificate chain More details here: https://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.
这是一个有用的示例,您想在不使用启用SSL的SNI域名的情况下从远程主机获取文件或查看标头信息:
curl -O --insecure --header 'Host: www.example.com' -I https://207.5.1.10/file.html ### OR ### curl -k --header 'Host: www.example.com' -I https://207.5.1.10/file.html
如何将更改应用于所有HTTPS连接
您可以在$HOME/.curlrc文件中添加insecure
选项:
$ vi $HOME/.curlrc
追加以下内容:
insecure
保存并关闭文件。
但是,出于安全原因,我不建议默认情况下禁用所有连接的SSL检查。
如何为信任的CA捆绑包指定CA以在cli上卷曲
对于自签名的SSL/TLS证书,可以尝试使用以下命令:
curl --cacert /pth/to/my/ca.pem https://url curl --header 'Host: www.theitroad.local' --cacert /pth/to/my/ca.pem https://207.5.1.10/theitroad.tar.gz