【问题标题】:How to open secure site with Curl如何使用 Curl 打开安全站点
【发布时间】:2016-03-08 03:16:00
【问题描述】:

最近我们必须更新我们在办公室使用的一些 apache 上的 SSLProtocol 和 SSLCipher。

发件人:
SSLProtocol -all +TLSv1 +TLSv1.2 SSLCipherSuite HIGH:!aNULL:+SHA1:+MD5:+HIGH

收件人:
SSLProtocol -all +TLSv1.1 +TLSv1.2 SSLCipherSuite EECDH+AES:AES256-SHA:AES128-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH:!EXP:!SRP:!DSS:!LOW:!3DES SSLHonorCipherOrder on SSLVerifyClient none SSLVerifyDepth 1

所有测试都是使用 curl 命令完成的。但是在更改 curl 后开始报错。

curl -v https://server1:4034/pages/Status.jsp --trace-ascii /dev/stdout
Warning: --trace-ascii overrides an earlier trace/verbose option
== Info: About to connect() to server1 port 4034 (#0)
== Info: Trying xxx.xxx.xxx.xxx... == Info: connected
== Info: Connected to server1 (xxx.xxx.xxx.xxx) port 4034 (#0)
== Info: Initializing NSS with certpath: sql:/etc/pki/nssdb
== Info: CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
== Info: NSS error -5938
== Info: Closing connection #0
== Info: SSL connect error
curl: (35) SSL connect error

我已安装支持 TLSv1.2 的最新可用版本 (7.46.0)。

有什么方法可以使用 curl 对其进行测试?或者有什么方法可以调试 curl 连接? 谢谢

【问题讨论】:

    标签: linux apache curl


    【解决方案1】:

    你有两个选择:

    1. 按照 shcherbak 的建议禁用服务器证书验证。

    2. 做一个完整的证书验证,为了让这个工作你应该有那个 CA 的根证书,它是为你的服务器签名的证书。将该证书以 PEM 形式放入某个文件中,例如 ca.crt,并为 curl 提供额外的命令行参数:curl --cacert ca.crt

    这可能不起作用,从您的消息中我看到您的 curl 是针对 NSS 库构建的,这使事情变得更加复杂。 NSS 使用自己的证书存储。您可以在 Firefox 配置文件中找到文件 key3.db 和 cert8.db - 这是 Firefox 使用的 NSS 存储。

    为了操作这些文件,Mozilla 提供了 certutil 工具(NSS 库的维护者):https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil。您应该创建 cert8(或 cert9,如果库具有较新版本)文件,将您的服务器证书添加为受信任并提供 curl 与该文件。 SSL_DIR 环境变量指示此文件的放置位置,默认为 /etc/pki/nssdb。

    在此处阅读有关 CURL 安全配置的更多信息:http://curl.haxx.se/docs/sslcerts.html

    【讨论】:

      【解决方案2】:

      您尝试连接的服务器可能没有受信任的 CA。尝试添加-k(不安全选项)

      curl -k -v https://server1:4034/pages/Status.jsp --trace-ascii /dev/stdout
      

      【讨论】:

        【解决方案3】:

        谢谢你们。实际上新版本的 curl 工作正常,测试服务器和 apache 之间有防火墙。 我必须在 apache 服务器上安装新的 curl 版本,它工作正常。 非常感谢大家的帮助。

        【讨论】:

          猜你喜欢
          • 2020-01-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多