Hallo Allemaal,

Een klant wil via een HTTPS domein een HTTP curl request doen. Hij wil om de 1 of andere reden geen SSL installeren op de HTTP ipadres waat informatie op staat.

Is dit te omzeilen?
De klant bezit dus beide domeinen (1xhttps, 1xhttp)?
Wat werkt er nu niet dan? En wat zou je willen omzeilen? En als dat al mogelijk is, zou dat dan wenselijk zijn? https is meer dan simpelweg een "s" achter http...
Als ik zo lees zeg je: "vanaf de server van https://https-website.nl (de klant) wil je een cURL request doen naar http://volledig-andere-website.nl";. Op die manier is dat geen enkel probleem (het boeit cURL niet op welke manier de aanroep naar je script wordt gedaan). Tenzij die "volledig-andere-website" enkel HTTPS toestaat, maar dat kan ook prima met cURL.

Oftewel: geef eens een voorbeeld met wat meer handen en voeten.
Even wat meer handen en voeren.

Het is een curl request en met de "verbose" optie heb ik een error bestand laten maken:


* About to connect() to x.x.x.x. port 8000 (#18)
* Trying x.x.x.x....
* Connection refused
* Failed connect to x.x.x.x.:8000; Connection refused
* Closing connection 18


$mp_data = [];
$fp = fopen('/home/divers/domains/test.net/private_html/test/errorlog.txt', 'w');
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL,"http://x.x.x.x:8000/mp/api?code=".$Number);
   curl_setopt($ch, CURLOPT_VERBOSE, 1);
   curl_setopt($ch, CURLOPT_STDERR, $fp);
   
$markt=curl_exec($ch);


Als ik er met de browser heenga dan is er geen probleem.

Zie bijv hier een uitleg :
https://stackoverflow.com/questions/53211319/how-can-i-make-an-http-request-from-an-https-website En https://stackoverflow.com/questions/39245165/how-can-i-load-http-from-https

"This is a browser level security feature. You have to load all content through HTTPS to avoid thisĀ "

Is dit dan gewoon niet waar en moet ik dit negeren?
ik zie in de output niets van een probleem met SSL.

Wel dat de verbinding opzetten niet lukt.
Ofwel klopt het ip-adres + poort 8000 niet.
ofwel weigert de server waarop je curl gebruikt verkeer naaar buiten via poort 8000
ofwel weigert de server x.x.x.x verkeer vanaf bepaalde servers.

nb. regel 5 lijkt me overbodig.

---
en aangezien je niets spannends mee lijkt te sturen met curl: wat geeft

<?php file_get_contents("http://x.x.x.x:8000/mp/api?code=".$Number); ?>
Het probleem is, dat het via localhost wel werkt. Het is alleen via mijn server wat niet werkt .
Snap niet waarom. Het iadres is niet geblokkeerd.
Kun je ook via de command line op je server?

Wat als je als url een willekeurige url van een andere server? (en dan eentje op poort 80 ipv 8000)
Het werkt inderdaad wel vanaf een andere server ook. Ik denk idd dat het ipadres op de blocked list staat
of jouw server laat verkeer over poort 8000 niet naar buiten.

Kun je de server wel via poort 80 bereiken (al dan niet om een willekeurige pagina op te halen)?
Poort 80 geef:

Deze site is niet bereikbaar Het duurt te lang voordat x.x.x.x reageert.

Hoe controleer ik of mijn server wel of niet verkeer naar buiten laat via poort 8000

Reageren