Om een XML-feed op te halen van een bepaalde site, gebruik ik deze code. Echter, de website is sinds kort overgeschakeld op SSL, en sindsdien krijg ik het script niet meer aan de praat.

Ik krijg vanuit cURL steeds de melding:
Peer's Certificate issuer is not recognized.

Wat moet ik nu doen? Ik heb al gekeken naar CURLOPT_SSL_VERIFYPEER op 0, maar lijkt ook geen soelaas te bieden.

		curl_setopt($ch, CURLOPT_VERIFYPEER, 0);

Vreemd genoeg krijg ik dit terug? Terwijl het toch echt een constante is. Dat kent hij blijkbaar hier niet :/
Notice: Use of undefined constant CURLOPT_VERIFYPEER - assumed 'CURLOPT_VERIFYPEER' in

<?php
$username = "secret";
$password = "topsecret";
$url = "https://www.site.nl/api/feed.php"; 
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
$result = curl_exec($ch);
$xml = simplexml_load_string($result,NULL, LIBXML_NOCDATA);
	if(!$xml) {
		echo "<p>Feed is stuk:  ".curl_error($ch)."</p>";
	} else {
		// doe de rest
	}
curl_close($ch);
?>
Lama, zie dat je eerst in moet loggen.
Dat inloggen heeft altijd gewerkt. Nadat het boeltje op SSL over ging werkte het script niet meer.
Held \o/

Dit was de fix!

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Ja, klopt. Blijkbaar lopen de parameters van cURL zelf niet gelijk met die van PHP. Of ik keek in een gedateerde manual. Maar het is opgelost. :-)

Wel bizar dat ik deze setting nodig heb gezien het certificaat verder prima oogt?
Bij "wget" heb je vaak hetzelfde, daar kun je de check op het certificaat ook beter uitschakelen om fouten te voorkomen.
Of je installeert de ca certificates, dat lost ook een hoop op.
Dat zou ook een goed idee zijn. Eens in verdiepen!
Opolo Webdesign op 09/05/2017 12:49:21
Bij "wget" heb je vaak hetzelfde, daar kun je de check op het certificaat ook beter uitschakelen om fouten te voorkomen.

Gooi je daarmee niet het kind met het waswater weg?

Min of meer wat @Ben zei. 1 minuut googlen (oud artikel, maar nog steeds relevant, en illustreert waarom je dit niet uit zou moeten zetten).

Reageren