Liebe Mitlesende,
ich möchte wie im Titel schon benannt eine HTTPS-Resource laden, die ein PHP-Script hinter einem Proxy über eine Socket-Verbindung vom Webserver anfordert. Folgender Code funktioniert mit http (also ohne s) wie gewünscht (Erfolg durch Trial&Error):
$response = '';
$url = 'https://felix-riesterer.de/';
$h = fsockopen(
// Host directly or via Proxy?
(empty($t->settings['proxy-server'])
? $t->settings['host']
: $t->settings['proxy-server']
),
// Port
(empty($t->settings['proxy-server']) || empty($t->settings['proxy-port'])
? 80
: $t->settings['proxy-port']
)
);
if ($h !== false) {
$http = sprintf(
// generate HTTP request
'GET http://%1$s/%2$s HTTP/1.1'."\r\n"
// Proxy Server
. 'Host: %1$s'."\r\n"
// Proxy-Authorization?
. '%3$s'
. 'User-Agent: %4$s'."\r\n"
. 'Connection: close'."\r\n"
// empty line to end HTTP headers
. "\r\n",
$t->settings['host'],
$url,
(empty($t->settings['proxy-server'])
? ''
: sprintf(
'Proxy-Authorization: Basic %s'."\r\n",
$t->settings['proxy-auth']
)
),
$t->settings['user-agent']
);
fputs($h, $http);
while (!feof($h)) {
$response .= fread($h, 4096);
}
}
debug($response); // HTTP/1.1 200 OK\r\nDate: Mon, 04 Jul 2016 11:58:47 GMT\r\nServer...
Wenn ich nun den String mit 'GET http://%1$s/%2$s HTTP/1.1'
durch ein s ergänze, damit er nun auf 'GET https://%1$s/%2$s HTTP/1.1'
lautet, ändert das nicht das Protokoll - was mich eigentlich auch gewundert hätte.
Muss ich nun als Protokoll ssl://felix-riesterer.de verwenden, oder kann ich die bestehende Codebasis durch eine klitzekleine Anpassung dazu bringen, dass HTTPS verwendet wird?
Liebe Grüße,
Felix Riesterer.