我们有一个Web应用程序,它获取XML文件并根据XML模式进行验证。该应用程序在几年前设置的Ubuntu服务器上运行。
存在一个问题,即cURL访问给定域会失败,因为证书无法验证。关于问题是出在我们这边还是需要联系客户解决,我听到了不同的说法。
例如,使用cURL会出现以下情况:
我已经尝试研究可能出现的问题。这个SSL检查工具显示,一些浏览器无法信任证书颁发机构(CA):
“该证书在所有网络浏览器中都不可信任。您可能需要安装一个中间/链式证书将其链接到可信赖的根证书。”
然后我用browserstack在几个浏览器中尝试了这个URL,结果参差不齐 - 请求在某些浏览器中可以正常工作,在其他浏览器中失败。
基本上我不确定我们是否应该......
1.找到一些更新服务器上“证书包”的方法。如果这是最佳实践的话?
2.告诉example.com的人问题出在他们那里,他们需要获得完全受信任的证书
折扣选项:
3.只为example.com安装证书 <- 这个折扣选项会因其他网站存在相同问题而不可持续
4.关闭应用程序上的SSL验证 <- 不安全且不好的做法 - 即使是XML模式验证器
存在一个问题,即cURL访问给定域会失败,因为证书无法验证。关于问题是出在我们这边还是需要联系客户解决,我听到了不同的说法。
例如,使用cURL会出现以下情况:
(pyenv)vagrant@precise64:~$ curl "https://example.com"
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
我已经尝试研究可能出现的问题。这个SSL检查工具显示,一些浏览器无法信任证书颁发机构(CA):
“该证书在所有网络浏览器中都不可信任。您可能需要安装一个中间/链式证书将其链接到可信赖的根证书。”
然后我用browserstack在几个浏览器中尝试了这个URL,结果参差不齐 - 请求在某些浏览器中可以正常工作,在其他浏览器中失败。
基本上我不确定我们是否应该......
1.找到一些更新服务器上“证书包”的方法。如果这是最佳实践的话?
2.告诉example.com的人问题出在他们那里,他们需要获得完全受信任的证书
折扣选项:
3.只为example.com安装证书 <- 这个折扣选项会因其他网站存在相同问题而不可持续
4.关闭应用程序上的SSL验证 <- 不安全且不好的做法 - 即使是XML模式验证器
curl "https://example.com" --cacert cacert.pem
,但仍然出现了error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
的错误。 - user2761030