v2.5.2
Giriş yap

cURL Hatası (35) - Yardım Lütfen

cemcanpolat
1,395 defa görüntülendi

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);
munzevi
678 gün önce

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;