Daten via curl an SSH-Schnittstelle versenden

visiondpc

Erfahrenes Mitglied
Hallo zusammen,
ich steh grad irgendwie auf dem Schlauch. Ich habe mir schon mehrere Tutorials und Dokus zu dem Thema angesehen aber weiter gekommen bin ich nicht.

Ich muss ein XML-Dokument über HTTP-POST an eine SSH-Schnittstelle schicken. Passend zu dem Remoteserver habe ich zwei Zertifikatdateien. Irgendwie kriege ich es aber nicht hin, von dem Server eine Antwort zu erhalten. Die Seite läd einfach pausenlos. Der Zugriff auf ungeschützte Seiten ist kein Problem, nur bei dieser funktioniert es nicht. Ich habe auch nirgends einen Hinweis darauf gefunden, wie ich die Zertifikate mit dem PHP-Aufruf in Verbindung bringe.

Das PHP-Skript sieht folgendermaßen aus:
PHP:
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
   
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
   
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
   
curl_setopt($ch, CURLOPT_HEADER, 1);
   
curl_setopt($ch, CURLOPT_POSTFIELDS,'xmldoctext='.$xmldata);
   
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
   
$result =curl_exec ($ch);
   
curl_close ($ch);
   
echo $result;
 
Hinweis:

Soll die Verbindung verschlüsselt mit SSL aufgebaut werden,
gibt es zwei Möglichkeiten:

1. ohne Prüfung des Zertifikats
PHP:
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);


2. mit Prüfung des Zertifikats
PHP:
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt ($ch, CURLOPT_CAINFO, "Dateiname");

Gruß
 
Danke, geändert hat sich jedoch nichts. Das Skript fängt an zu laden wird nicht fertig.

Ich habe auch 2 Zertifikate hier. Eines mit der Dateiendung .cer und eine mit .der. Funktioniert hat jedoch keines der beiden.

PHP:
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
   
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);

curl_setopt ($ch, CURLOPT_CAINFO, './upload/cert/public.der');  
   
curl_setopt($ch, CURLOPT_HEADER, 1);
   
curl_setopt($ch, CURLOPT_POSTFIELDS,'xmldoctext='.$xmldata);
   
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
   
$result =curl_exec ($ch);
   
curl_close ($ch);
   
echo $result;
 
Zuletzt bearbeitet:
Zurück