标签: curl

如何在 Ubuntu 服务器上将 libcurl SSL 后端从 gnutls 更改为 openssl

在处理 Google OpenID SSL 响应时,我在 Tornado 网络服务器中遇到了 gnutls 特定的错误。我从 Tornado 邮件列表中得到的建议之一是尝试使用 OpenSSL 后端而不是 gnutls。但它在 Ubuntu 服务器(11.10)上似乎并不简单。

在 Ubuntu 服务器上,gnutlslibcurl3-gnutls包提供,openssl curl 支持由libcurl4-openssl-dev包提供。(我不知道为什么后者被命名为4and dev,但我在 apt-cache 搜索中找不到任何其他 openssl+curl 包)。

libcurl3-gnutls默认安装了,但没有安装libcurl4-openssl-dev。所以我安装了后者并重新启动了 Torando 实例。但这似乎不起作用。我仍然遇到相同的 gnutls 错误。

我在 curl 邮件列表上找到了关于支持 libcurl 不同 SSL 后端的问题的旧讨论,但没有找到今天是如何完成的。到目前为止,我的猜测是 openssl 内置于 libcurl 中,而 gnutls 是通过单独的包提供的(这将解释为什么没有 libcurl3-openssl)。但是我如何让 libcurl 选择 openssl 后端而不是 gnutls?libcurl/pycurl API 中是否有一些选项可以做到这一点?

我尝试卸载libcurl3-gnutls,但 apt-get 提示它也将随之删除python-pycurl。所以那不行。

ubuntu ssl openssl curl gnutls

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

Curl 请求不会解析到本地主机

我有一个在本地主机/端口 80 上运行 apache 的 ubuntu 服务器。它的域是 sub.domain.com

如果我在该机器上向http://localhost发出 curl 请求,它将立即出现“无法连接到主机”的错误。

如果我在该机器上向 sub.domain.com 发出 curl 请求,它将无限循环地坐在那里,直到几分钟后超时。

如果我在另一台机器上的网络浏览器中打开 sub.domain.com,它会显示我的 html 页面。

如果我用另一台机器向 sub.domain.com 发出 curl 请求,它将连接。

这里有什么交易?

ubuntu loopback localhost curl apache-2.2

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

cURL 是所有类 Unix 操作系统的标准部分吗?

我正在编写一个需要从 Internet 下载一些数据的 shell 脚本,我只是在想是否可以依靠cURL它预装在所有 Unix 发行版上。
我知道wget默认情况下不在 OS X 上,但在 OS XcURL上。我还记得我cURL在 Ubuntu Server 上安装,但已经一两年了。我今天尝试了 Ubuntu Server 12.04,它是cURL开箱即用的。

unix curl

7
推荐指数
3
解决办法
6753
查看次数

CentOS PHP cURL NSS 错误 5938

cURL 和 PHP 在几个 CentOS 机器上有一个奇怪的问题。

在本地,我运行的是 CentOS 6.3。远程是 CentOS 5.9

在本地,box 收到一个请求,scp 的一个文件到远程服务器,然后通过 PHP 向远程服务器执行 cURL 请求以发送一些信息。该请求总是在当天的第一次尝试时失败。后续请求工作正常。Remote 有一个有效的 SSL 证书——即便如此,关闭证书和主机验证也不能解决问题。

日志记录并不是很有帮助。将详细程度提高到 11,最有意义的条目如下:

* About to connect() to www.example.com port 443 (#0)
*   Trying 203.0.113.10... * connected
* Connected to www.example.com (203.0.113.10) 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
Run Code Online (Sandbox Code Playgroud)

谷歌搜索错误也无济于事。看起来 twitter 有一个类似的问题(https://dev.twitter.com/discussions/1549),他们显然已经解决了这个问题,但没有详细说明它是如何解决的。

任何关于在哪里寻找/做什么来缓解问题的想法都将不胜感激。

ssl centos curl nss

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

将自签名证书添加到 Windows 中 cURL 中的受信任证书?

我已根据此页面上的说明创建了一个自签名证书,并已安装它并且它似乎都可以正常工作,但现在我需要cURL信任它。

由于更高版本的 cURL 不在文件中包含受信任列表.pem,因此我在此处下载了 .pem 文件,然后在中输入以下行php.ini

curl.cainfo = "C:\xampp\php\cacert.pem"
Run Code Online (Sandbox Code Playgroud)

现在我需要知道的是如何cURL信任我的自签名证书?我不需要任何浏览器来信任它,只需 cURL。

php ssl ssl-certificate curl

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

SSL 证书适用于 chrome 但不适用于 openssl s_client 或 curl

几天前,谷歌浏览器更新到版本 58 开始使我的自签名证书无效。它在抱怨失踪subjectAltNames。我做了一些研究并尝试了一些建议(不起作用),但后来找到了这篇文章,这是我唯一可以工作的文章。

还是我?

Yay chrome 现在正在接受我新生成和导入的证书,我正在路上,

直到,我点击了我的PHP网络应用程序中的一个页面,该页面需要从同一台开发机器上的另一个微网络服务加载数据。

stream_socket_client():SSL 操作失败,代码为 1。 OpenSSL 错误消息:错误:14090086:SSL 例程:ssl3_get_server_certificate:

我已经在谷歌上搜索和修改了大约 4 个小时,但我无法理解它。

为什么 chrome 接受我的证书。无论其工具一样curlopenssl s_client全部给我unable to verify the first certificateinvalid certificate?我曾尝试将证书作为参数传递,但显然仍然无效。

使用 curl 和 openssl 将证书文件作为参数进行调试继续给我这个错误

SSL 证书验证结果:无法获取本地颁发者证书 (20),

我想我到一天结束时会完全秃顶。

笔记

  • 虚拟机是我的本地开发环境,所以我有多个域,它们有自己的证书和密钥

  • VM 位于 IP 192.168.33.10 上。这意味着 chrome 没有访问本地主机。但是 curl 和 openssl s_clinet 正在尝试访问 locahost

  • 服务器是运行 ubuntu 14.04 的虚拟机

  • 在带有 MMC(微软管理控制台)的主机上安装自签名证书

  • 错误肯定来自试图访问 Web 服务的客户端类。

  • 我曾尝试将证书作为参数传递,但显然仍然无效。

  • 我完全知道我可以将 verify peer …

openssl ssl-certificate curl ubuntu-14.04

7
推荐指数
1
解决办法
3766
查看次数

了解 DNS 解析器之间的区别

介绍

在尝试调试网络问题本地我们的内联网,很明显,curl host nslookupdig不同的表现。凡dighost返回有问题的URL,IP地址curlnslookup回报:

 curl: (6) Could not resolve host: internal.site.company.com
Run Code Online (Sandbox Code Playgroud)

 nslookup: can't resolve 'internal.site.company.com`
Run Code Online (Sandbox Code Playgroud)

语境

虽然这不应该的事情,在多予方面的问题的本质,这个问题上和后面发生的docker-machine(使用泊坞窗机上都进行测试virtualbox,并parallels要准确)。在docker-machine和容器它的主机都在他们所需的内部DNS服务器的正确IP地址/etc/resolv.conf。无法解析名称的机器也可以访问所需 URL 的 IP 地址。如上所述,地址是内部站点,我们的 DNS 服务器也是内部站点。该站点可从docker-machine安装的计算机访问和解析。

问题

这让我想到了这些问题......

1) 在幕后,有什么dighost做的与两者cURL和和不同nslookup

2)什么可能阻止浏览器或curl以两种方式解析 URLhostdig成功解析名称?

设置

dig -vDiG 9.11.1

host -vhost 9.11.1

curl …

domain-name-system linux-networking curl dig docker-machine

7
推荐指数
1
解决办法
1512
查看次数

curl 无法检索 HTTPS 内容:错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败

我正在尝试https://www.lawsociety.com.au在 Windows 10 和 Ubuntu 16.04上使用 curl访问该网站。它适用于 Ubuntu,但在 Windows 上失败并显示消息error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure。我不确定出了什么问题以及如何解决它。

这是 Windows 机器上的 curl 输出:

> curl -i -v -I https://www.lawsociety.com.au
* Rebuilt URL to: https://www.lawsociety.com.au/
*   Trying 125.7.104.7...
* TCP_NODELAY set
* Connected to www.lawsociety.com.au (125.7.104.7) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: D:\dev\curl\bin\curl-ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS alert, …
Run Code Online (Sandbox Code Playgroud)

ssl ssl-certificate curl

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

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万
查看次数