CentOS PHP cURL NSS 錯誤 5938
在幾個 CentOS 機器上的 cURL 和 PHP 有一個奇怪的問題。
在本地,我正在執行 CentOS 6.3。遠端是 CentOS 5.9
在本地,盒子接收請求,scp 將文件發送到遠端伺服器,然後通過 PHP 向遠端伺服器執行 cURL 請求以發送一些資訊。請求總是在當天的第一次嘗試時失敗。後續請求工作正常。Remote 有一個有效的 SSL 證書——即便如此,關閉證書和主機驗證並不能解決問題。
日誌記錄不是很有幫助。將詳細程度提高到 11,最有意義的條目如下:
* About to connect() to www.example.com port 443 (#0) * Trying 203.0.113.10... * connected * Connected to www.example.com (203.0.113.10) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * NSS error -5938 * Closing connection #0 * SSL connect error
Google搜尋錯誤也無濟於事。看起來 twitter 也遇到了類似的問題(https://dev.twitter.com/discussions/1549),他們顯然已經解決了這個問題,但沒有詳細說明它是如何解決的。
任何關於在哪裡查看/如何減輕問題的想法將不勝感激。
這是使用 NSS 編譯的 curl 的一般問題(僅在沒有 nss 的情況下編譯的 redhat-linuxes、debian 和 suse curl 包)。你需要從沒有 nss-library 的原始碼編譯 curl。
所以,我還沒有解決 https-connections 如何與 nss-curl 一起工作的問題。
curl –version curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.14.3.0 zlib/1.2.7 libidn/1.26 libssh2/1.4.3 協議:dict文件ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 功能:AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz
curl –version curl 7.25.0 (x86_64-suse-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.0 協議:dict文件ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 功能:AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP