有没有人见过这个?请注意,这不仅发生在 google.com 上,而且发生在我尝试的每个域中。这是一个无线连接 (WEP),但我不确定这有什么关系:
$ curl -v google.com
# This takes about 60s to return
* getaddrinfo(3) failed for google.com:80
* Couldn't resolve host 'google.com'
* Closing connection #0
curl: (6) Couldn't resolve host 'google.com'
$ wget google.com
--2011-11-28 14:44:08-- http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'
$ ping google.com
PING google.com (209.85.148.147) 56(84) bytes of data.
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): icmp_req=2 ttl=54 time=136 ms
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): …Run Code Online (Sandbox Code Playgroud) 从 bash 脚本执行 5 个curl请求的最佳方法是什么parallel?出于性能原因,我无法串行运行它们。
我有一个奇怪的问题。将我的 LAMP 开发机器 (Debian) 更新为 PHP 7。之后我无法再通过 Curl 连接到特定的 TLS 加密 API。
有问题的 SSL 证书由 thawte 签名。
curl https://example.com
Run Code Online (Sandbox Code Playgroud)
给我
curl: (60) SSL certificate problem: unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)
然而
curl https://thawte.com
Run Code Online (Sandbox Code Playgroud)
当然,这也是 Thawte 作品的签名。
我可以在其他机器上通过 HTTPS 访问 API 站点,例如我的桌面通过 curl 和浏览器。所以证书绝对有效。SSL 实验室评级为 A。
从我的开发机器到其他 SSL 加密站点的任何其他 Curl 请求都有效。我的根证书是最新的。为了验证,我跑了update-ca-certificates。我什至将http://curl.haxx.se/ca/cacert.pem下载到 /etc/ssl/certs 并运行c_rehash.
还是一样的错误。
有什么方法可以调试验证过程并查看哪个本地颁发者证书 curl(或 openssl)正在寻找但未找到,即文件名?
更新
curl -vs https://example.com
Run Code Online (Sandbox Code Playgroud)
告诉我(IP+域名匿名)
* Hostname was NOT found in DNS cache
* Trying 192.0.2.1...
* …Run Code Online (Sandbox Code Playgroud) 我有一个文件,其中包含我需要从中下载的所有 url。但是我需要限制一次下载。即下一个下载应该只在前一个下载完成后开始。这可以使用 curl 吗?或者我应该使用其他任何东西。
这是一个很长的问题,所以请耐心等待。
我想强调我从 AWS 实例登录的 Akamai 服务器。所以,我开始运行 ab 基准测试。然而,他们下载大约 3 MB 的视频文件似乎快得离谱。我自然想看看发生了什么。这就是我为获取文件所做的工作
curl -v -o /dev/null
以上操作在约 5 秒内完成。
接下来,我再次运行相同的命令。这一次,它在大约 200 毫秒内完成!当然,我的直觉是文件被缓存在某个地方。
我的问题:
谢谢你,阿克谢
从 AWS ec2 实例(运行docker),我正在尝试使用curl我的 docker 容器托管的 Web 服务。
鉴于:
[ec2-user]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b56fa0d76d5c $REGISTRY/$WORK/metrics:v0.1.0 "/bin/sh -c 'sh /root" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:9000->9000/tcp insane_leakey
Run Code Online (Sandbox Code Playgroud)
我可以从容器内访问 Web 服务:
[ec2-user]$ docker exec -it b56fa0d76d5c bash
root@b56fa0d76d5c:/# curl 'http://localhost/health'
Request is missing required query parameter 'apiName'
Run Code Online (Sandbox Code Playgroud)
但是,我无法从主机中找到它:
[ec2-user]$ curl 'http://localhost/health'
curl: (56) Recv failure: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
我查看了有关此错误的详细答案curl,但不确定如何调试此问题。
我最近将我们的服务器从 8.04 升级到 10.04,以及所有的软件。
从我在网上找到的内容来看,新版本的 CURL 似乎不包含 CA 包,因此无法验证您正在连接的服务器的证书是否由有效机构签名.
实际错误是:
CURL 错误:SSL 证书问题,验证 CA 证书是否正常。 详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE: 证书验证失败
我发现的一些地方建议手动指定 CA 文件或通过在调用 CURL 时设置一个选项来完全禁用检查,但我更愿意全局修复该问题,而不必修改每个应用程序的 CURL 调用。
有没有办法在服务器范围内修复 CURL 的 CA 问题,以便所有现有的应用程序代码按原样运行而无需修改?
我需要在 cpanel 中设置一个 cron 作业,每周调用一次 URL(在同一台服务器上)。我打算使用wget但事实证明这在正在使用的共享服务器上被禁用。
wget有替代品吗?我听说可以使用curl,但我不知道如何在 cron 命令中进行设置。
另外,让 cronjob 在完成时什么都不做的命令是什么?
任何想法都非常感谢!
对于我在 ubuntu 服务器中安装的软件,它需要 curl deb 包。当我尝试安装时,libcurl4-dev它说这是一个虚拟包,我需要安装libcurl4-gnutls-dev或libcurl4-nss-dev. 安装一个或另一个有什么区别?
PS:安装 libcurl3 或 libcurl4 有什么大的区别吗?
我正在尝试使用客户端证书进行 curl 请求,如下所示:
curl -E my.pem https://some.site
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
curl: (35) error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
Run Code Online (Sandbox Code Playgroud)
curl ×10
openssl ×2
ssl ×2
ubuntu ×2
ab ×1
cache ×1
cdn ×1
cron ×1
docker ×1
multi-core ×1
networking ×1
smp ×1
tls ×1
ubuntu-11.10 ×1
ubuntu-14.04 ×1
wget ×1
wifi ×1