0
這讓我瘋狂了2天 - 我有2個PHP函數,下面詳細介紹都使用curl。他們指向完全相同的「XML網關」,唯一的區別是嘗試通過SSL執行,而另一個通過未加密的HTTP執行。PHP CURL SSL連接到XML網關
HTTP連接符操作符完全按照預期工作,發佈XML文件並返回服務器響應。
SSL連接器返回過於模糊的'發生內部服務器錯誤。請稍後再試'。我的lighttpd錯誤日誌中沒有顯示任何內容,有沒有人有任何明智的想法?
我在想,如果這是我的網絡服務器配置/ openSSL配置。它們都是Debian Wheezy標準軟件包。我很欣賞SSL_VERIFYPEER &被設置爲銷售的主機是不安全的,但我一直在試圖耗盡選項。
openssl s_client -connect xmlgw.companieshouse.gov.uk:443 -ssl3
和命令行功能
curl https://xmlgw.companieshouse.gov.uk/v1-0/xmlgw/Gateway
也工作在Web服務器上如預期。
PHP函數:
//SSL post function
public function getSSLCurlResponse($xml) {
$url = "https://xmlgw.companieshouse.gov.uk/v1-0/xmlgw/Gateway";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
//HTTP non SSL function
public function getCurlResponse($xml) {
$url = "http://xmlgw.companieshouse.gov.uk/v1-0/xmlgw/Gateway";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
任何幫助將非常感激!
感謝
請用您的解決方案更新帖子並接受。 –