Configurați curl pentru a lucra la https

Modulul libcurl este proiectat pentru a trimite cereri http către serverele web și pentru a primi răspunsuri la acestea. De fapt, el face același lucru ca și browser-ul când navighează către o pagină a unui site. Pentru a profita de farmecele oferite de el, îl vom conecta.







După ce serviciul de server este repornit, acest modul va funcționa. Pentru testare, scrieți doar un script simplu:

În acest exemplu, o solicitare GET obișnuită a fost făcută site-ului "example.com". Pentru a efectua o solicitare POST, trebuie să adăugați opțiunile corespunzătoare.

curl_setopt ($ ch, CURLOPT_POST, 1); $ encoded = urlencode (.); curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ codificat);

Aici codificat $ conține un șir de parametri ai formularului "urlencode (name) = urlencode (value)", conectat "". Parametrii interogării sunt transmiși exact în același mod ca atunci când cererea GET, cu singura diferență fiind că nu sunt transmise în adresa URL a solicitării, ci în corpul solicitării POST. Un pic de joc în jurul cu servere care rulează pe protocol http obișnuit, încercați să faceți același lucru cu protocolul https.

Și aici suntem dezamăgiți. Apare o eroare. Ideea este că trebuie să verificați certificatul de server pentru a instala conexiunea https. Și buclat noastră până când este capabil să facă :-(. Puteți forța de scanare desigur disable, dar nu contează, nu pentru a crea protocoale la protecția pentru a dezactiva protecția.







curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false);

Problema este că curlul dvs. nu are un certificat care să verifice certificatul site-ului. Pe scurt, certificatele conțin chei de criptare, deschise și închise, cheia publică este disponibilă pentru toată lumea, privată - pentru oricine. O cheie este criptată, cealaltă este decriptată. Verificarea este că ambele părți schimbă informații criptate, deoarece nu aveți chei, această procedură devine imposibilă. Prin urmare, eroarea. (Pentru cei care vor să înțeleagă în detaliu cheile, criptarea, certificatele etc. - drumul către Google sau Yandex)

Acum rămâne să reporniți serviciul de servere și asigurați-vă că curl funcționează cu protocolul https. În orice caz, totul a lucrat pentru mine. Am încercat să configurez înregistrarea pe serverul local în MODx. În formularul de înregistrare, Google a instalat reCaptchav2, iar la prima înregistrare nu a funcționat. După dezactivarea înregistrării captcha am câștigat, dar am avut nevoie de o protecție împotriva spamului și nu am vrut să reînregistrez înregistrarea sub alt captcha. După o scurtă investigație, vinovatul a fost descoperit - modulul se învârte și, după un timp, sa găsit o soluție la problemă. CAPTCHA Google a lucrat cu succes pe serverul local.







Articole similare

Trimiteți-le prietenilor: