简而言之:此请求失败。
$ curl 'https://secure.ogone.com/ncol/prod/orderstandard.asp' -vv
* About to connect() to secure.ogone.com port 443 (#0)
* Trying 213.254.248.101... connected
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to secure.ogone.com:443
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to secure.ogone.com:443
Run Code Online (Sandbox Code Playgroud)
我知道 sslv2 安全风险需要将一些连接手动设置为 sslv1 或 sslv3。
但是,这也不起作用:
$ curl 'https://secure.ogone.com/ncol/prod/orderstandard.asp' -3
curl: (60) SSL certificate problem, verify that the CA cert …Run Code Online (Sandbox Code Playgroud) 我正在尝试正确诊断我有权访问的服务器似乎无法通过端口 443 联系互联网上的另一台服务器的问题:
~$ curl https://mydomain.co.uk -vvv
* Rebuilt URL to: https://mydomain.co.uk/
* Trying 1.2.3.4...
* TCP_NODELAY set
* Connected to mydomain.co.uk (1.2.3.4) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to mydomain.co.uk:443
* stopped the pause stream!
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to mydomain.co.uk:443
Run Code Online (Sandbox Code Playgroud)
我读到这可能是由于密码不兼容造成的。所以我在不同网络的不同服务器上尝试了它,但这次连接成功: …
我正在 Linux 2 的 Windows 子系统上运行 Ubuntu 18.04。我正在curl使用自签名证书向在 Windows 端运行的 Web 服务发出请求。我收到此错误:
curl: (60) SSL 证书问题:无法获取本地颁发者证书
我想将证书添加到本地商店。我有一个.pfx可用的文件。我知道我可以使用-k,但我想针对该服务器使用其他命令行工具。
我该怎么做呢?
openssl s_client -showcerts -servername server -connect server:443 > foo.pem
openssl x509 -in foo.pem -inform PEM -out foo.crt
sudo cp foo.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Run Code Online (Sandbox Code Playgroud)
这看起来似乎有道理,但没有用,curl仍然有同样的抱怨。
我也尝试过使用一个DER版本。
sudo rm /usr/local/share/ca-certificates/windows_cert.crt
openssl x509 -in windows_cert.pem -inform PEM -out windows_cert_der.crt -outform DER
sudo cp windows_cert_der.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Run Code Online (Sandbox Code Playgroud)
别担心,我开始关注这里的一些回复。
https://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate
但毫无进展,这显然是计算领域的一个非常困难的问题。
我发现几个月前他们在我需要使用的命令行工具中添加了一个开关,可以忽略证书问题。
假设我有一个包含大量 URL 的文件,我想使用任意数量的进程并行下载它们。我怎样才能用 bash 做到这一点?
当我尝试安装 solr-beta 时:
pecl 安装 solr-beta
我收到此错误:
pecl/solr 需要 PHP 扩展“curl”找不到有效的包安装失败
问题是 curl 已经安装,当我查看我的 phpinfo 页面时它似乎已启用。
我可以毫无问题地执行以下操作:
curl -u "username:password" http://www.example.com/exportfile.xml
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试对我们网站的 https 版本使用相同的命令,它就会失败
curl -u "username:password" https://www.example.com/exportfile.xml
Run Code Online (Sandbox Code Playgroud)
这是错误消息的样子:
About to connect() to www.example.com port 443 (#0)
Trying "some ip"... connected
Connected to www.example.com (some ip) port 443 (#0)
Initializing NSS with certpath: sql:/etc/pki/nssdb
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
NSS error -5938
Closing connection #0
SSL connect error
curl: (35) SSL connect error
Run Code Online (Sandbox Code Playgroud)
感谢所有帮助
我正在尝试升级 curl 但不断收到此错误:
包:libcurl-7.50.0-1.1.cf.rhel6.x86_64 (CityFan) 需要:libnghttp2.so.14()(64bit)
我不知道如何获得这个必需的包?我正在使用city-fan.org-release-1-13.rhel6.noarch回购
我正在http通过wget1.2TB下载一个大文件。下载大约需要一个星期,现在已经包含了两次损坏(md5 检查失败,它需要数天才能自行运行)。
有没有一种好方法可以使用 say 来通过 http 验证文件的零碎curl?或者将其分解为单独的块,以便我可以识别特定的坏块并仅重新下载该部分?
该文件是一个tar档案,所以我相信在解包过程中可以按顺序识别每个块的损坏。
我查看了以下信息:
据我所知,我正在遵守,因为我在 URL 中发布了 SAS。
这是我的简单测试脚本:
#!/bin/bash
DATE_NOW=$(date -Ru | sed 's/\+0000/GMT/')
AZ_VERSION="2018-03-28"
AZ_BLOB_URL="https://XXXXXXXX.blob.core.windows.net"
AZ_BLOB_CONTAINER="XXXXXX"
AZ_BLOB_TARGET="${AZ_BLOB_URL}/${AZ_BLOB_CONTAINER}/"
AZ_SAS_TOKEN="?sv=2017-11-09&ss=b&srt=o&sp=rwlac&se=2021-11-06T01:05:33Z&st=2018-11-09T17:05:33Z&sip=192.0.2.0-192.0.2.254&spr=https&sig=XXXXXXXXXX"
curl -v -X PUT -H "Content-Type: application/octet-stream" -H "x-ms-date: ${DATE_NOW}" -H "x-ms-version: ${AZ_VERSION}" --data-binary "@/home/test/test" "${AZ_BLOB_TARGET}test${AZ_SAS_TOKEN}"
Run Code Online (Sandbox Code Playgroud)
运行产生:
> PUT /XXXX/XXXXX?sv=2017-11-09&ss=b&srt=o&sp=rwlac&se=2021-11-06T01:05:33Z&st=2018-11-09T17:05:33Z&sip=192.0.2.0-192.0.2.254&spr=https&sig=XXXXXXXXXX" HTTP/1.1
> Host: XXXXX.blob.core.windows.net
> User-Agent: curl/7.60.0
> Accept: */*
> Content-Type: application/octet-stream
> x-ms-date: Sat, 10 Nov 2018 17:48:06 GMT
> x-ms-version: 2018-03-28
> Content-Length: 14
>
* upload completely sent off: 14 out of 14 bytes
< HTTP/1.1 400 …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何在通过curl.
这是我的目标服务器:
- Ubuntu 18.04.2 LTS
- 4.15.0-47-generic
- HA-Proxy version 1.8.19-1ppa1~bionic 2019/02/12
Run Code Online (Sandbox Code Playgroud)
这是我发布的客户端 1 curl(香草安装):
- Ubuntu 16.04.3 LTS
- 4.4.0-62-generic
- curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Run Code Online (Sandbox Code Playgroud)
这是我发布的客户端 2 curl(香草安装):
- Ubuntu 18.04 LTS
- 4.15.0-20-generic
- curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Run Code Online (Sandbox Code Playgroud)
要关闭 keepalive,我尝试使用-H "Connection: close",--no-keepalive并且--keepalive-time 1只有第一个选项似乎有效,但只能从客户端 1 使用。
在客户端 1 (Ubuntu 16) 上,连接没有保持打开状态,但在客户端 2 (Ubuntu 18) 上,连接保持打开状态,直到超时。我通过查看目标服务器watch -n …
curl ×10
https ×3
http ×2
ssl ×2
ubuntu ×2
ubuntu-18.04 ×2
amazon-ec2 ×1
azure ×1
bash ×1
centos ×1
centos6 ×1
files ×1
keepalive ×1
large-data ×1
linux ×1
networking ×1
php ×1
solr ×1
wget ×1
yum ×1