我已經在 ubuntu 14.04 上成功編譯了 php7.1.30。當我測試代碼的和平時/ Get cURL resource$curl = curl_init();// Set some options - we are passing in a useragent too herecurl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://buy.itunes.apple.com', CURLOPT_USERAGENT => 'Codular Sample cURL Request', CURLOPT_POST => 1, CURLOPT_POSTFIELDS => [ 'item1' => 'value', 'item2' => 'value2' ]]);curl_setopt($curl, CURLOPT_VERBOSE, true);// Send the request & save response to $resp$resp = curl_exec($curl);// Close request to clear up some resourcesif (!$resp) { echo('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl)); echo "\n";}curl_close($curl);我有錯誤 Error: "gnutls_handshake() failed: Illegal parameter" - Code: 35詳細的輸出是: Rebuilt URL to: https://buy.itunes.apple.com/* Hostname was NOT found in DNS cache* Trying 17.173.66.180...* Connected to buy.itunes.apple.com (17.173.66.180) port 443 (#0)* found 148 certificates in /etc/ssl/certs/ca-certificates.crt* gnutls_handshake() failed: Illegal parameter* Closing connection 0有時這會成功,似乎蘋果 TLS 支持不一致。但是,如果我在 Ubuntu 18.04 上構建相同的代碼,它可以 100% 工作,如果我再次使用 php 5.5.9(dist 版本)運行相同的代碼,則 100% 工作。到目前為止,我計劃升級到 ubuntu 18.04 以使其正常工作,因為我未能克服上述問題。我嘗試了不同的 /etc/ssl/cert ca 文件但沒有成功。
1 回答

尚方寶劍之說
TA貢獻1788條經驗 獲得超4個贊
不幸的是,唯一的方法是在 ubuntu 上使用較新的更改 openssl-dev lib 并再次重新編譯。
但是,我決定在您的基礎架構中擺脫 ubuntu 14.04 - 加快 Ubuntu 14 的計劃折扣并替換為 amazon linux 2。
- 1 回答
- 0 關注
- 242 瀏覽