ChatGPT解决这个技术问题 Extra ChatGPT

curl - 使用 --insecure 选项时数据是否加密?

我有一种情况,客户端通过 curl 调用 https url。 https url 的 SSL 证书是自签名的,因此 curl 无法进行证书验证并失败。 curl 提供了一个选项 -k/--insecure 来禁用证书验证。

我的问题是,在使用 --insecure 选项时,客户端和服务器之间完成的数据传输是否加密(对于 https url 应该是这样)?我了解由于未完成证书验证而带来的安全风险,但对于这个问题,我只关心数据传输是否加密。

@jww,如果您处于无法控制正在使用的证书(在这种情况下为自签名)但仍需要使用 curl 进行测试的情况下,那不一定是坏事。我同意使用自签名证书而不安装 CA 链(如在企业环境中)是一个坏主意,但在大型组织中,它通常不受编写代码或使用 API 的人的控制。

F
Filip Roséen - refp

是的,传输的数据仍然是加密发送的。 -k/--insecure 将“仅使”curl 跳过证书验证,它不会一起关闭 SSL。

有关此事的更多信息,请访问以下链接:

curl.haxx.se - 服务器 SSL 证书的详细信息


B
Becky Conning

它将被加密但不安全。如果您信任证书,则应将证书添加到证书存储区,而不是不安全地连接。

macOS:sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/new-root-certificate.crt

Ubuntu,Debian: sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt sudo update-ca-certificates

CentOS 6: yum install ca-certificates update-ca-trust force-enable cp foo.crt /etc/pki/ca-trust/source/anchors/ update-ca-trust extract

CentOs 5: cat foo.crt >>/etc/pki/tls/certs/ca-bundle.crt

Windows:certutil -addstore -f "ROOT" new-root-certificate.crt