cURL Hatası (35) - Yardım Lütfen
Merhaba,
Aldığım hata hakkında bilgisi olan biri beni yönlendirebilir mi lütfen?
Çıktılar:
Curl errno: 35
Curl error: error:0A000152:SSL routines::unsafe legacy renegotiation disabled
Biraz araştırma yaptım, curlopt_ssl_verifyhost ve curlopt_ssl_verifypeer değerlerini false olarak ayarladım olmadı.
curlopt_cainfo => "cacert.pem" denedim olmadı. (bu konuda pek bilgim yok), sitenin perm dosyasını indirdim onu gösterdim değer olarak olmadı.
Daha önce bağlanılıyordu ama sanırım değişiklikler yapmışlar, hatadan anladığım kadarıyla ssl ile alakalı sizce localhostuma openssl ile kendinden imzalı ssl sertifakası kursam düzelirmi, daha önce tecrübe eden yada bilgisi olan paylaşırsa sevinirim.
Döküman, konu başlığı vs. de paylaşabilirsiniz. Şimdiden Teşekkür ederim.
Kod:
$headers = [
"accept: */*",
"accept-language: tr,en-US;q=0.9,en;q=0.8",
"cache-control: no-cache",
"content-type: application/x-www-form-urlencoded;charset=UTF-8",
"pragma: no-cache",
"sec-fetch-mode: cors",
"sec-fetch-site: same-origin",
"connection: keep-alive"
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://...");
curl_setopt($ch, CURLOPT_REFERER, "https://...");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
// data
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch));
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_errno($ch) . ': ' . curl_error($ch);
curl_close($ch);
o zaman ek olarak sertifikanın doğrulanmasını iptal etmek için şunu CURLOPT_SSL_VERIFYPEER
false ayarda kullanmayı dene. tam emin olmamak ile şunu da sıfır ayarında deneyebilirsin;
CURLOPT_SSL_VERIFYHOST
Common Name veya Subject Alternate Name alanının varlığının yanında
sağlanan konak ismi ile eşleşmenin de aranması için 2, isimlere bakmak
için 0 olmalıdır. 1 kullanılmamalıdır. Üretim ortamlarında bu seçeneğin
değeri 2 (öntanımlıdır) olarak tutulmalıdır.
edit;
ben sorunsuz bağlandım, eğer bağlanmak istediğiniz site şuysa, https://earsivportal.efatura.gov.tr/
HTTP/1.1 405 Method Not Allowed
Server: nginx/1.19.0
Date: Sat, 09 Jul 2022 21:09:00 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 104
Connection: keep-alive
X-Powered-By: Undertow/1
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
CIP:
ama güvenlik önlemleri nedeniyle, 200 değil 405 yanıtı veriyor. post methodunu desteklemiyor.
çalışan basit bir örnek ile bağlanabilirsin;
$url = "https://earsivportal.efatura.gov.tr/";
$curl = curl_init($url);
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
));
$response = curl_exec($curl);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$error = curl_errno($curl) . ': ' . curl_error($curl);
curl_close($curl);
echo $response;