【问题标题】:cURL 60 error when trying to access my website's XML file尝试访问我网站的 XML 文件时出现 cURL 60 错误
【发布时间】:2020-01-31 04:07:54
【问题描述】:

当我使用“curl -v https://hostname/resource.xml”时,出现以下错误:

About to connect() to hostname.com port 443 (#0)
Trying x.x.x.x... connected
Connected to hostname.com (x.x.x.x) port 443 (#0)
Initializing NSS with certpath: sql:/etc/pki/nssdb
 CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
Peer's certificate issuer is not recognized: 'CN=InCommon RSA Server CA,OU=InCommon,O=Internet2,L=Ann Arbor,ST=MI,C=US'
NSS error -8179
Closing connection #0
Peer certificate cannot be authenticated with known CA certificates
curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html

但是,当我尝试:“curl -v https://google.com/” 一切正常!

验证网站的证书位于 /etc/ssl/certs

我可以假设这是 SSL 证书和验证的问题,因为当我使用 -k 运行 curl 命令时它可以工作!

我已尝试以下方法进行故障排除:

  1. 确认服务器上的日期/时间正确
  2. 更新了 cacert.pem 证书(来源:cURL error 60: SSL certificate: unable to get local issuer certificate
  3. 确认 Apache 配置正确
  4. 尝试将 SSL 证书 (website.crt) 添加到 /etc/pki/tls

我正在跑步:

  • CentOS 6.10 版(最终版)
  • curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
  • PHP 7.1.32 (cli)

会不会是 SSLCertificateChain 不完整造成的?

感谢您的帮助!

【问题讨论】:

    标签: ssl curl openssl ssl-certificate centos6


    【解决方案1】:

    您的网站证书的颁发者似乎是一个中间证书
    CN=InCommon RSA Server CA,OU=InCommon,O=Internet2,L=Ann Arbor,ST=MI,C=US
    ,但它没有发送完整的链,即它只发送没有此中间证书的网站证书。您有 2 个选择:

    1. 更新了网站配置,将中间证书与网站证书捆绑在一起(首选方法)。
      按照说明 here 更新 Apache 配置以使用中间证书。

      基本上,您必须修改 Apache 安装的 httpd.conf 文件,特别是您网站的虚拟主机设置,并将 SSLCertificateChainFile 设置指向包含中间证书 (CN) 的 PEM (crt) 文件=InCommon RSA 服务器 CA,OU=InCommon,O=Internet2,L=Ann Arbor,ST=MI,C=US)

      您可以在网络上找到您缺少的中间证书,例如here,并将此内容保存到文件中(例如 incommon_rsa.crt)。以下是您需要保存在文件中的内容:
    -----BEGIN CERTIFICATE-----
    MIIF+TCCA+GgAwIBAgIQRyDQ+oVGGn4XoWQCkYRjdDANBgkqhkiG9w0BAQwFADCB
    iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
    cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
    BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQx
    MDA2MDAwMDAwWhcNMjQxMDA1MjM1OTU5WjB2MQswCQYDVQQGEwJVUzELMAkGA1UE
    CBMCTUkxEjAQBgNVBAcTCUFubiBBcmJvcjESMBAGA1UEChMJSW50ZXJuZXQyMREw
    DwYDVQQLEwhJbkNvbW1vbjEfMB0GA1UEAxMWSW5Db21tb24gUlNBIFNlcnZlciBD
    QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJwb8bsvf2MYFVFRVA+e
    xU5NEFj6MJsXKZDmMwysE1N8VJG06thum4ltuzM+j9INpun5uukNDBqeso7JcC7v
    HgV9lestjaKpTbOc5/MZNrun8XzmCB5hJ0R6lvSoNNviQsil2zfVtefkQnI/tBPP
    iwckRR6MkYNGuQmm/BijBgLsNI0yZpUn6uGX6Ns1oytW61fo8BBZ321wDGZq0GTl
    qKOYMa0dYtX6kuOaQ80tNfvZnjNbRX3EhigsZhLI2w8ZMA0/6fDqSl5AB8f2IHpT
    eIFken5FahZv9JNYyWL7KSd9oX8hzudPR9aKVuDjZvjs3YncJowZaDuNi+L7RyML
    fzcCAwEAAaOCAW4wggFqMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvAnfKyA2bL
    MB0GA1UdDgQWBBQeBaN3j2yW4luHS6a0hqxxAAznODAOBgNVHQ8BAf8EBAMCAYYw
    EgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
    AwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgGBmeBDAECAjBQBgNVHR8ESTBHMEWgQ6BB
    hj9odHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQ2VydGlmaWNh
    dGlvbkF1dGhvcml0eS5jcmwwdgYIKwYBBQUHAQEEajBoMD8GCCsGAQUFBzAChjNo
    dHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQWRkVHJ1c3RDQS5j
    cnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZI
    hvcNAQEMBQADggIBAC0RBjjW29dYaK+qOGcXjeIT16MUJNkGE+vrkS/fT2ctyNMU
    11ZlUp5uH5gIjppIG8GLWZqjV5vbhvhZQPwZsHURKsISNrqOcooGTie3jVgU0W+0
    +Wj8mN2knCVANt69F2YrA394gbGAdJ5fOrQmL2pIhDY0jqco74fzYefbZ/VS29fR
    5jBxu4uj1P+5ZImem4Gbj1e4ZEzVBhmO55GFfBjRidj26h1oFBHZ7heDH1Bjzw72
    hipu47Gkyfr2NEx3KoCGMLCj3Btx7ASn5Ji8FoU+hCazwOU1VX55mKPU1I2250Lo
    RCASN18JyfsD5PVldJbtyrmz9gn/TKbRXTr80U2q5JhyvjhLf4lOJo/UzL5WCXED
    Smyj4jWG3R7Z8TED9xNNCxGBMXnMete+3PvzdhssvbORDwBZByogQ9xL2LUZFI/i
    eoQp0UM/L8zfP527vWjEzuDN5xwxMnhi+vCToh7J159o5ah29mP+aJnvujbXEnGa
    nrNxHzu+AGOePV8hwrGGG7hOIcPDQwkuYwzN/xT29iLp/cqf9ZhEtkGcQcIImH3b
    oJ8ifsCnSbu0GB9L06Yqh7lcyvKDTEADslIaeSEINxhO2Y1fmcYFX/Fqrrp1WnhH
    OjplXuXE0OPa0utaKC25Aplgom88L2Z8mEWcyfoB7zKOfD759AN7JKZWCYwk
    -----END CERTIFICATE-----
    
    1. 将中间证书添加到系统信任的 CA 证书列表中(较少首选的方法,中间证书应该由客户端发送而不是通过将其添加到系统信任列表中来隐式信任CA 证书)。

      同样,使用我在上面提供的内容保存中间证书文件,然后使用 CentOS 工具将其安装在您的受信任 CA 证书列表中,如here 所述。

    【讨论】:

    • 感谢您的回复!我能够通过使用中间证书完成链来解决此问题。
    • @J.VWilde 很高兴听到您解决了这个问题。请不要忘记将此标记为已接受的答案。
    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    相关资源
    最近更新 更多