한 컴퓨터 (PHP 5.2.17)에서는 잘 작동하지만 다른 컴퓨터 (PHP 5.6.13)에서는 실패하는 간단한 cURL 코드가 있습니다. 최신 버전에서 cURL 호출은 다음과 함께 예외를 발생시킵니다.
SSL 피어가 수신 한 핸드 셰이크 메시지를 예상하지 않았습니다.
코드는 다음과 같습니다.
private function postRequest($url, $request) {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_CAINFO, "certificate.der");
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
$r = curl_exec($curl);
if ($r == false) {
$r = curl_error($curl);
}
return $r;
}
다음을 사용할 수 있습니다.
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_SSLv3);
옵션은 다음과 같습니다.
CURL_SSLVERSION_DEFAULT
CURL_SSLVERSION_TLSv1
TLSv1.x
CURL_SSLVERSION_SSLv2
SSLv2
CURL_SSLVERSION_SSLv3
SSLv3
CURL_SSLVERSION_TLSv1_0
TLSv1.0 (Added in 7.34.0)
CURL_SSLVERSION_TLSv1_1
TLSv1.1 (Added in 7.34.0)
CURL_SSLVERSION_TLSv1_2
TLSv1.2 (Added in 7.34.0)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다