我们有一个我们用PHP构build的RestFUL API。 如果我们提出要求: curl -u api-key:api-passphrase https://api.domain.com/v1/product -X POST 我们回来: 411 – Length Required 虽然如果我们简单地将-d ""添加到请求的工作中,并且没有411错误。 有没有办法不需要添加-d到curl命令? 我们正在使用lighttpdnetworking服务器,并相信它的lighttpd不是PHP谁返回411错误。
我想知道如何进行故障排除为什么curl请求到Web服务器不起作用。 我不是在寻找那些依赖于我的环境的帮助,我只是想知道如何收集关于通信失败的部分,端口号等的信息。 chad-integration:~ # curl -v 111.222.159.30 * About to connect() to 111.222.159.30 port 80 (#0) * Trying 111.222.159.30… connected * Connected to 111.222.159.30 (111.222.159.30) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0 OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10 > Host: 111.222.159.30 > Accept: */* > * Empty reply from server * Connection #0 […]
我最近把我们的服务器从8.04升级到了10.04,以及所有的软件。 从我在网上find的,似乎新版本的CURL不包含一个CA包,因此,无法validation您连接到的服务器的证书是由一个有效的权威。 实际的错误是: CURL错误:SSL证书问题,请validationCA证书是否正确。 详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE: 证书validation失败 我发现有些手段build议手动指定一个CA文件,或者在调用CURL时通过设置一个选项来完全禁用检查,但我更愿意全局修复这个问题,而不必修改每个应用程序的CURL调用。 有没有办法在服务器范围内解决CURL的CA问题,以便所有现有的应用程序代码都可以正常工作而不需要修改?
我来自Linux / Unix的背景,我一直在想,如果Windows有一个二进制文件,可以从控制台下载文件。 我想自动化一个特定的过程,我的要求之一是不要安装太多的软件,但尽可能使用内置的东西。 谢谢!
我正在开发,我需要访问https://localhost 。 我知道证书不匹配。 我只是想让curl忽略这个。 目前它给我以下错误信息: curl: (51) SSL peer certificate or SSH remote key was not OK 无论如何,是否有可能让curl执行访问?
我正在尝试validation在与运行的Tomcat Web服务器通信期间正在使用HTTP持久连接。 目前,我可以从浏览器(例如Chrome)检索服务器上的资源,并使用netstatvalidation连接已build立: # visit http://server:8080/path/to/resource in Chrome [server:/tmp]$ netstat -a … tcp 0 0 server.mydomain:webcache client.mydomain:55502 ESTABLISHED 但是,如果我使用curl,我从来没有看到在netstat服务器上的连接。 [client:/tmp]$ curl –keepalive-time 60 –keepalive http://server:8080/path/to/resource … [server:/tmp]$ netstat -a # no connection exists for client.mydomain 我也试过使用下面的curl命令: curl -H "Keep-Alive: 60" -H "Connection: keep-alive" http://server:8080/path/to/resource 这是我的客户端机器的curl版本: [server:/tmp]$ curl -V curl 7.19.5 (x86_64-unknown-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 […]
我遇到了与我的cURL版本捆绑在一起的CA bundle已经过期的问题。 curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html 通过文档阅读没有帮助我,因为我不明白我需要做什么或如何去做。 我正在运行RedHat,需要更新CA软件包。 在RedHat上更新我的CA软件包需要做什么?
假设一个网站在多个服务器之间是负载均衡的。 我想运行一个命令来testing它是否工作,如curl DOMAIN.TLD 。 所以,要隔离每个IP地址,我手动指定IP。 但是许多网站可能在服务器上,所以我仍然提供一个主机头,如下所示: curl IP_ADDRESS -H 'Host: DOMAIN.TLD' 。 据我了解,这两个命令创build完全相同的HTTP请求。 唯一的区别是在后者中,我从cURL中取出DNS查找部分,并手动执行(如果我错了,请纠正我)。 迄今为止都很好。 但是现在我想为HTTPSurl做同样的事情。 再次,我可以testing它像这个curl https://DOMAIN.TLD 。 但我想手动指定IP,所以我运行curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD' 。 现在我得到一个cURL错误: curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'. 我当然可以通过告诉cURL不要关心证书(“-k”选项)来解决这个问题,但这并不理想。 有没有办法隔离与被SSLauthentication的主机连接的IP地址?
我正在从http://www.reddit.com看curl -I http://www.reddit.com I http://www.reddit.com的搞笑服务器types,当我猜测curl -X HEAD http://www.reddit.com会做相同。 但事实上,事实并非如此。 我很好奇为什么。 这是我观察运行这两个命令: curl -I :按预期工作,输出标题并存在。 curl -X HEAD :不显示任何内容,似乎等待用户input。 但是,用tshark嗅探我看到第二个命令实际上发送相同的HTML查询并收到正确的答案,但它不显示它,它不会closures连接。 curl -I 0.000000 333.33.33.33 -> 213.248.111.106 TCP 59675 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=47267342 TSER=0 WS=6 0.045392 213.248.111.106 -> 333.33.33.33 TCP http > 59675 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=2552532839 TSER=47267342 WS=1 […]
在Chrome中,点击绿色的HTTPSlocking图标将打开一个包含证书详细信息的窗口: 当我用cURL试过时,我只得到了一些信息: $ curl -vvI https://gnupg.org * Rebuilt URL to: https://gnupg.org/ * Hostname was NOT found in DNS cache * Trying 217.69.76.60… * Connected to gnupg.org (217.69.76.60) port 443 (#0) * TLS 1.2 connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA * Server certificate: gnupg.org * Server certificate: Gandi Standard SSL CA * Server certificate: UTN-USERFirst-Hardware > HEAD / HTTP/1.1 […]