![在 Debian 8 上安装用于 curl/openssl 连接的中级证书。](https://linux22.com/image/668655/%E5%9C%A8%20Debian%208%20%E4%B8%8A%E5%AE%89%E8%A3%85%E7%94%A8%E4%BA%8E%20curl%2Fopenssl%20%E8%BF%9E%E6%8E%A5%E7%9A%84%E4%B8%AD%E7%BA%A7%E8%AF%81%E4%B9%A6%E3%80%82.png)
我尝试通过 php 的 stream_socket_client() 命令连接一个 URL,但失败了,没有错误代码或消息。这是否使用了 openssl、curl 或其他东西?该网站使用 https,并且可以通过 Web 浏览器正常运行。
当我直接调用 openssl 时,它会连接,但我的证书链似乎不兼容。
root@drupal7 drupal7/includes# openssl s_client -connect test.cgps.org:443
CONNECTED(00000003)
Verify return code: 21 (unable to verify the first certificate)
与 curl 相同
curl https://test.cgps.org/?q=/admin/config/search/clean-urls/check
curl: (60) SSL certificate problem: unable to get local issuer certificate
因此我认为我需要将中级证书安装到 Linux 中,我将 Apache 使用的相同中级证书放入 /usr/local/share/ca-certificates 并运行 update-ca-certificates。
root@drupal7 drupal7/includes# update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
还是没有运气...