curl是否具有像wget这样的--no-check-certificate选项?


446

我正在尝试向运行带有自签名SSL证书的开发站点的我们的本地开发服务器之一发出curl请求。我从命令行使用curl。

我看到一些博客文章提到您可以添加到证书列表中或将特定(自签名)证书指定为有效,但是有一种通俗易懂的方式表示“不验证” ssl证书-像--no-check-certificate那样wget有吗?


1
--insecure如果您对PHP或Apache的某些版本中详述将无法正常工作superuser.com/questions/1015325/...
user3338098

Answers:


594

是。从联机帮助页

-k,-不安全

(TLS)默认情况下,将验证每个curl建立的SSL连接的安全性。使用此选项,即使对于服务器连接(如果认为不安全),也可以继续进行卷曲操作。

通过确保服务器的证书包含正确的名称并使用证书存储库成功验证来验证服务器连接。

有关更多详细信息,请参见此在线资源:https : //curl.haxx.se/docs/sslcerts.html

另请参见--proxy-insecure和--cacert。

该手册页条目中提到的参考资料描述了的某些特定行为-k

curlBadSSL.com请求测试页面可以观察到这些行为

curl -X GET https://wrong.host.badssl.com/
curl: (51) SSL: no alternative certificate subject name matches target host name 'wrong.host.badssl.com'

curl -k -X GET https://wrong.host.badssl.com/
..returns HTML content...

11
喜欢它具有一个字母短选项的事实
kizzx2 2013年

curl配置中有什么方法可以使该选项成为默认选项?
赢得

4
@Wins,那将是一个可怕的想法。如果您需要重复使用别名,请对它进行修改,这样您就知道它的作用,并且不会意外发送未加密的密码。 alias insecure-curl="curl -k"
Alexander Huszagh '16

2
@AlexanderHuszagh在工作中,我仅使用来自具有自签名证书的单个服务器上的curl;我从来没有时间要进行完整的证书检查。仅仅因为在大多数情况下某些事情看起来像一个可怕的想法,并不意味着它总是如此。
Daniel H

4
@DanielH这就是为什么我建议使用别名的原因:这样一来,您便可以清楚地知道它是不安全的,从而为您带来了更多便利。工作流程会发生变化:但是,为了方便而进行安全性交易时,您仍然应该以某种有限的方式知道。
Alexander Huszagh

36

您可以使用以下命令将更改应用于所有连接:

$ echo insecure >> ~/.curlrc

在Windows上刚刚创建_curlrc以“不安全的”它在你的文本的文本文件%HOME%%CURL_HOME%%APPDATA%%USERPROFILE%%USERPROFILE%\Application Data目录。

使用上述解决方案的优点是它适用于所有curl命令,但不建议这样做,因为它可能会通过连接到不安全且不受信任的主机来引入MITM攻击


72
这似乎是个坏建议:禁用这些检查所有连接不应该是默认设置,即使您通过按用户配置自己进行设置也是如此。如果您需要取消安全检查,则至少要使其零碎。
Christopher Schultz

4
每当我使用curl时,我都会控制或信任另一端的机器。
Eric Hartford 2014年

11
@EricHartford:嗯,对您有好处,但这仍然不能使它成为一个很好的一般建议,恕我直言。例如,当在osx上下载homebrew时,可能会使用curl并最终获得工具的修改版本,因为他盲目地将其启用为默认设置。
ereOn 2014年

10
另外,@ EricHartford您确定您始终会做受信任的curl项目吗?您是否曾经运行过互联网上的任何bash安装脚本?当然,无论如何您都可能会陷入困境,但这增加了机会。
Zlatko 2015年

这是真正的@EricHartford。上一条消息是其他人冒充我发布的。因为我信任所有机器 ;-)
Anand Rockzz

5

您正在使用自签名证书。为什么不将CA附加到受信任的CA捆绑包(Linux)或添加到受信任的证书存储区(Windows)?或者简单地使用--cacert /Path/to/file受信任的自签名证书文件的内容。

其他答案是根据wget可比性回答问题。但是,真正的问题是我如何使用使用自签名证书维护可信连接curl。根据许多评论,安全是这些答案中任何一个的头等大事,最好的答案是信任自签名证书并curl完整保留安全检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.