标签: curl

为什么我的新 Ubuntu 12.04 无法验证 Verisign ssl 证书?

简而言之:此请求失败。

$ 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)

ubuntu ssl https curl amazon-ec2

6
推荐指数
2
解决办法
4353
查看次数

https 连接,TLS 挂起并最终失败 SSL_ERROR_SYSCALL

我正在尝试正确诊断我有权访问的服务器似乎无法通过端口 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)

我读到这可能是由于密码不兼容造成的。所以我在不同网络的不同服务器上尝试了它,但这次连接成功: …

ssl https curl ubuntu-18.04

6
推荐指数
1
解决办法
1万
查看次数

如何将 PFX 证书文件安装到 Ubuntu 中以便 Curl 信任它?

我正在 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

但毫无进展,这显然是计算领域的一个非常困难的问题。

我发现几个月前他们在我需要使用的命令行工具中添加了一个开关,可以忽略证书问题。

ubuntu ssl-certificate curl ubuntu-18.04

6
推荐指数
1
解决办法
4万
查看次数

使用shell脚本进行多线程下载

假设我有一个包含大量 URL 的文件,我想使用任意数量的进程并行下载它们。我怎样才能用 bash 做到这一点?

bash wget curl

5
推荐指数
1
解决办法
8293
查看次数

尝试安装 pecl Solr 扩展,但它需要 curl

当我尝试安装 solr-beta 时:

pecl 安装 solr-beta

我收到此错误:

pecl/solr 需要 PHP 扩展“curl”找不到有效的包安装失败

问题是 curl 已经安装,当我查看我的 phpinfo 页面时它似乎已启用。

php curl solr

5
推荐指数
1
解决办法
5096
查看次数

为什么 curl 到 https 不起作用

我可以毫无问题地执行以下操作:

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)

感谢所有帮助

https curl

5
推荐指数
1
解决办法
2万
查看次数

在 centos 6 上升级 curl:libcurl-7.50 需要 libnghttp2

我正在尝试升级 curl 但不断收到此错误:

包:libcurl-7.50.0-1.1.cf.rhel6.x86_64 (CityFan) 需要:libnghttp2.so.14()(64bit)

我不知道如何获得这个必需的包?我正在使用city-fan.org-release-1-13.rhel6.noarch回购

centos yum curl centos6

5
推荐指数
2
解决办法
1万
查看次数

我可以通过 http 验证大文件下载吗

我正在http通过wget1.2TB下载一个大文件。下载大约需要一个星期,现在已经包含了两次损坏(m​​d5 检查失败,它需要数天才能自行运行)。

有没有一种好方法可以使用 say 来通过 http 验证文件的零碎curl?或者将其分解为单独的块,以便我可以识别特定的坏块并仅重新下载该部分?

该文件是一个tar档案,所以我相信在解包过程中可以按顺序识别每个块的损坏。

linux files http curl large-data

5
推荐指数
1
解决办法
368
查看次数

cURL 和带有 SAS 的 Azure BLOB - 未指定此请求所必需的 HTTP 标头

我查看了以下信息:

据我所知,我正在遵守,因为我在 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 azure azure-storage

5
推荐指数
1
解决办法
1万
查看次数

如何在 curl 中禁用 keepalive

我试图弄清楚如何在通过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 …

networking http keepalive curl

5
推荐指数
2
解决办法
1万
查看次数