我正在尝试在我的一台服务器上测试 SSL 连接。服务器位于 LB 后面,因此它正在侦听端口 8090 上的 SSL 连接。
--resolve在与侦听端口 443 的 LB 通话时,我使用该选项进行测试。
curl --resolve 'myservice.com:443:1.1.1.1' 'https://myservice.com'
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
curl --resolve 'myservice.com:8090:2.2.2.2' 'https://myservice.com:8090'
Run Code Online (Sandbox Code Playgroud)
curl 只是忽略端口并使用 443。当然,这会导致 DNS 缓存丢失,我最终使用公共 DNS IP ...
* Added myservice.com:8090:2.2.2.2 to DNS cache
* About to connect() to myservice.com port 443 (#0)
* Trying 3.3.3.3...
* Connected to myservice.com (3.3.3.3) port 443 (#0)
Run Code Online (Sandbox Code Playgroud)
如何强制 curl 使用端口 8090 进行 SSL 连接?
谢谢。
我正在尝试向 Twitter API 发出 cURL HTTPS 请求,但出现此错误:
[root@webscoming httpdocs]# curl -v https://api.twitter.com
About to connect() to api.twitter.com port 443 (#0)
Trying 199.16.156.199... connected
Connected to api.twitter.com (199.16.156.199) port 443 (#0)
Initializing NSS with certpath: sql:/etc/pki/nssdb
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
NSS error -5990
Closing connection #0
SSL connect error
curl: (35) SSL connect error
Run Code Online (Sandbox Code Playgroud)
我在另一台服务器上尝试过这个,它按预期工作。该错误是什么意思,我该如何解决?
我的服务器运行的是 CentOS 6.5 版。
请注意:我可以正确连接https://encrypted.google.com,但不成功https://api.twitter.com。
我正在运行一个 PHP 程序,只要它不被 Microsoft Internet Explorer 浏览器调用,它就可以正常工作,之后它会生成以下进程,锁定 Apache 2 并需要重新启动 Web 服务器(在 Ubuntu 12.04 LTS 上)。
bob@drools:/etc/php5/apache2# ps auxwww | grep apache2
root 8737 0.1 2.5 369164 25800 ? Ssl 12:41 0:00 /usr/sbin/apache2 -k start
www-data 8743 0.0 3.2 393748 33268 ? Sl 12:41 0:00 /usr/sbin/apache2 -k start
www-data 8755 0.1 3.3 393856 33904 ? Sl 12:41 0:00 /usr/sbin/apache2 -k start
www-data 8779 0.1 3.2 393724 33252 ? Sl 12:45 0:00 /usr/sbin/apache2 -k start
www-data 8782 0.1 3.2 393716 33236 …Run Code Online (Sandbox Code Playgroud) 我不断收到此错误:
No cURL data returned for https://XXX.XXXX.XXX:XXXX [0] SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Run Code Online (Sandbox Code Playgroud)
我不确定,或者我可以说,我不知道这是什么问题。以及如何解决这个问题?请帮忙!
我正在评估一些 SSL 故障,并注意到当我使用curl其中一个故障站点时,我得到了curl: (56) SSL read: errno -5961; 但是,我对该错误的 google 查询没有显示 openssl 失败的原因。
问题: curl 失败是什么意思curl: (56) SSL read: errno -5961?
我包括以下完整curl...
[mpenning@mpenning-lnx ~]$ curl -vk https://192.0.2.168/
* About to connect() to 192.0.2.168 port 443 (#0)
* Trying 192.0.2.168... connected
* Connected to 192.0.2.168 (192.0.2.168) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* SSL connection using TLS_RSA_WITH_AES_256_CBC_SHA …Run Code Online (Sandbox Code Playgroud) 当我运行curl命令行
curl "https://example.com"
Run Code Online (Sandbox Code Playgroud)
它立即成功,返回请求的结果。
当我运行相同的 wget 命令时
wget https://example.com
Run Code Online (Sandbox Code Playgroud)
它最终因“无法建立 SSL 连接”而超时。没有任何具体的错误信息。它可以连接,但无法进行 SSL 握手。我试过了,--no-check-certificate但这没有什么区别 - 它似乎与超时有关。
然而:
wget http://example.com
Run Code Online (Sandbox Code Playgroud)
工作正常(HTTP 与 HTTPS)。
这也影响了PHP 的“ file()”方法调用。
我的问题是,什么会导致 curl 成功检索页面(对于我们域中的所有站点)而不是 wget 或 php 解释器?这是周末的新问题,服务器之前很好。
(操作系统为 Red Hat Enterprise Linux 6.4)
为什么要把服务器列入黑名单?
通过 curl 或其他程序?
服务器如何被列入黑名单?
它是服务器还是程序相关的?
这是被列入黑名单的 IP 地址,还是 http 答案中的服务器名称?
PS:我不知道它是否相关,但我在 Linux/Ubuntu 上运行。
这是完整的输出(在本地主机中测试龙卷风)
> * Rebuilt URL to: localhost:8888/
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8888 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:8888
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 16 May 2014 16:35:40 GMT
< Content-Length: 12
< Etag: "e02aa1b106d5c7c6a98def2b13005d5b84fd8dc8"
< Content-Type: text/html; charset=UTF-8
* Server TornadoServer/3.2 is …Run Code Online (Sandbox Code Playgroud) 我有一个 PHP 脚本设置,每当在站点上执行操作时都会发出 cURL 请求。问题是每当操作运行时,信息都会被发布两次。
我需要弄清楚这是否是我的问题(cURL 运行了两次)或者它 POST 到的 URL 是否正在执行两次操作。
我想最好的方法是查看来自服务器的传出 http POST 请求。
这是最好的选择吗?如果是这样,我该怎么做?
我想使用curl向 URL 发送 HTTP HEAD 请求以验证它是否正常工作(服务器已启动并发送成功响应)。最后,我需要返回的最终 HTTP 响应代码和 URL(在遵循任何重定向之后)。最后,我需要设置一个硬超时(一段时间后调用将失败,无论请求curl位于何处)。
是否curl支持这一切?我需要使用哪些选项来完成此操作?
我正在编写一个需要从 Internet 下载一些数据的 shell 脚本,我只是在想是否可以依靠cURL它预装在所有 Unix 发行版上。
我知道wget默认情况下不在 OS X 上,但在 OS XcURL上。我还记得我cURL在 Ubuntu Server 上安装,但已经一两年了。我今天尝试了 Ubuntu Server 12.04,它是cURL开箱即用的。