【问题标题】:SSL certificate errorSSL 证书错误
【发布时间】:2013-10-21 11:26:13
【问题描述】:

我正在使用选项中的密钥、ca、cert(自签名 w OpenSSL)测试对本地节点服务器的 SSL 访问

var server_options = {
  key: fs.readFileSync('/etc/ssl/self-signed/server.key'),
  ca: fs.readFileSync('/etc/ssl/self-signed/server.csr'),
  cert: fs.readFileSync('/etc/ssl/self-signed/server.crt')
};

尝试访问它:

curl -v --user 1234567890:abcdefghijklmnopqrstuvwxyz --data "grant_type=password&username=yves&password=123456789" https://macMini.local:8000/oauth/token

使用 curl 我得到以下错误:

curl: (60) SSL 证书问题,验证 CA 证书是否正常。细节: 错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

我从 http://curl.haxx.se/ca/cacert.pem 下载了 ca 证书并将它们添加到我的 curl-ca-bundle-new.crt 文件中,正如一些与 curl 相关的帖子中所建议的那样......但没办法

这是日志

  • 关于 connect() 到 macMini.local 端口 8000 (#0)

    • 正在尝试 192.168.1.14...
    • 已连接
    • 连接到 macMini.local (192.168.1.14) 端口 8000 (#0)
    • SSLv3、TLS 握手、客户端问候 (1):
    • SSLv3、TLS 握手、服务器问候 (2):
    • SSLv3、TLS 握手、CERT (11):
    • SSLv3、TLS 警报、服务器问候 (2):
    • SSL 证书问题,验证 CA 证书是否正常。细节: 错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
    • 关闭连接 #0 curl: (60) SSL证书问题,验证CA证书是否OK。细节: 错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 更多详情:http://curl.haxx.se/docs/sslcerts.html

我知道我可以绕过 Curl CA 检查,使用:

curl -k -v --user 1234567890:abcdefghijklmnopqrstuvwxyz --data "grant_type=password&username=yves&password=123456789" https://macMini.local:8000/oauth/token

在这种情况下它运行良好,我可以看到:

SSL 证书验证结果:自签名证书 (18),仍然继续。

但我想知道有没有办法解决这个问题...

【问题讨论】:

    标签: curl ssl ssl-certificate


    【解决方案1】:

    在 Mac 上,我在尝试安装 composer 时遇到了类似的 ssl 相关错误。

    错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书

    对于命令

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    

    但是我成功通过运行命令安装了它

    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/composer/
    

    按照here的指示。

    【讨论】:

      【解决方案2】:

      我终于在 OSX (10.8) 上找到了位置:/usr/share/curl/cacert.pem 所以我添加了我的自签名证书,并重新启动了我的 node-ssl 服务器..

      然后 curl 命令现在可以正常运行 -k 选项

      curl -v --user 1234567890:abcdefghijklmnopqrstuvwxyz --data "grant_type=password&username=yves&password=123456789" https://macMini.local:8000/oauth/token
      
      * About to connect() to macMini.local port 8000 (#0)
      *   Trying 192.168.1.14...
      * connected
      * Connected to macMini.local (192.168.1.14) port 8000 (#0)
      * successfully set certificate verify locations:
      *   CAfile: /usr/share/curl/cacert.pem
        CApath: none
      ...
      

      【讨论】:

      【解决方案3】:

      这是您应该添加到 CA 捆绑包中的自签名证书。否则,curl 无法知道它是可信任的。

      【讨论】:

      • 谢谢,我只是很难找到 cacert.pem 在 OSX (10.8) 上的位置,见上文....
      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      相关资源
      最近更新 更多