curl - 使用 --insecure 选项时数据是不是加密?
Posted
技术标签:
【中文标题】curl - 使用 --insecure 选项时数据是不是加密?【英文标题】:curl - Is data encrypted when using the --insecure option?curl - 使用 --insecure 选项时数据是否加密? 【发布时间】:2012-01-21 03:39:18 【问题描述】:我有一种情况,客户端通过 curl 调用 https url。 https url 的 SSL 证书是自签名的,因此 curl 无法进行证书验证并失败。 curl 提供了一个选项 -k/--insecure
来禁用证书验证。
我的问题是,在使用--insecure
选项时,客户端和服务器之间完成的数据传输是否加密(对于 https url 应该是加密的)?我了解由于未完成证书验证而带来的安全风险,但对于这个问题,我只关心数据传输是否加密。
【问题讨论】:
非常糟糕的策略;见The most dangerous code in the world: validating SSL certificates in non-browser software。 @jww,如果您处于无法控制正在使用的证书(在这种情况下为自签名)但仍需要使用 curl 进行测试的情况下,这不一定是坏事。我同意在不安装 CA 链的情况下使用自签名证书(如在企业环境中)是一个坏主意,但在大型组织中,它通常不受编写代码或使用 API 的人的控制。跨度> 【参考方案1】:是的,传输的数据仍以加密方式发送。 -k
/--insecure
将“仅制作”curl
跳过证书验证,它不会一起关闭 SSL。
有关此事的更多信息,请访问以下链接:
curl.haxx.se - Details on Server SSL Certificates【讨论】:
【参考方案2】:它将被加密但不安全。如果您信任该证书,则应将该证书添加到您的证书存储区,而不是不安全地连接。
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 安装 ca 证书 update-ca-trust 强制启用 cp foo.crt /etc/pki/ca-trust/source/anchors/ update-ca-trust 提取物
CentOs 5: cat foo.crt >>/etc/pki/tls/certs/ca-bundle.crt
窗户: certutil -addstore -f "ROOT" new-root-certificate.crt
【讨论】:
以上是关于curl - 使用 --insecure 选项时数据是不是加密?的主要内容,如果未能解决你的问题,请参考以下文章
添加 --insecure-registry 选项后 Docker 守护程序未启动
配置 jMeter Http Request 以模拟此 curl 命令