php curl与ssl证书连接失败

时间:2020-06-19 17:37:53

标签: php ssl curl

我正在尝试使用ssl证书验证连接到服务器。在我的本地计算机上,我以冗长的方式运行curl并且得到:

*   Trying X.X.X.X...
* TCP_NODELAY set
* Connected to server.com (X.X.X.X) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
      CApath: ./XXX.pem
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
......<<connects correctly and does it's thing>>......

在另一个Linux机器上,我执行完全相同的脚本并得到:

* About to connect() to server.com port 443 (#0)
*   Trying X.X.X.X...
* Connected to server.com (X.X.X.X) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* Closing connection 0
 << Curl error: 77 >>

我在两台计算机上都使用完全相同的证书。我尝试了十亿种不同的方法,无法解决。

我需要在发生故障的计算机上做什么才能使其正确连接?您还需要什么其他信息来帮助我。我在这个方面还很遥远...我不知道它是否在机器上的本地证书导致了错误....

这是我正在使用的脚本:

    $path = "./someFile.pem";
    $keyFile = "./someFile.key";
    $ch = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSLCERT, $path);
        curl_setopt($ch, CURLOPT_SSLKEY, $keyFile);
        curl_setopt($ch, CURLOPT_SSLCERTPASSWD , $pass);
        curl_setopt($ch, CURLOPT_CAPATH, $path);
        curl_setopt($ch, CURLOPT_TIMEOUT, 300);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_VERBOSE, true);
        curl_setopt($ch, CURLOPT_CERTINFO, true);
        $response = curl_exec($ch);

编辑***

我得到了一个pfx文件,并且执行了以下操作:

导出私钥:openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes

导出证书:openssl pkcs12 -in certname.pfx -nokeys -out cert.pem

删除私钥中的密码:openssl rsa -in key.pem -out server.key

然后,将每个这些文件放入httpd.conf期望的目录中。现在可以通过https://正常访问服务器。

我做了yum安装ca-certifcates并得到:

Package ca-certificates-2019.2.32-76.el7_7.noarch already installed and latest version

我不知道接下来要做什么。出现与上述相同的错误。

0 个答案:

没有答案