Http-WMS-Layer im https-kvwmap ohne Sicherheitshinweis einbinden
Aus kvwmap
Version vom 9. Dezember 2010, 16:07 Uhr von Rahn (Diskussion | Beiträge)
Wenn kvwmap über https aufgerufen wird, bekommt man im Internet Explorer beim Aufruf von http-WMS eine Sicherheitsmeldung, dass unverschlüsselte Daten auf einer verschlüsselten Seite angezeigt werden sollen. Um diese Meldung zu umgehen, ruft man den WMS nicht direkt, sondern über einen https-Proxy auf dem eigenen Server auf. Dazu legt man einfach folgende Datei https_proxy.php
<?
function https_proxy(){
$params = array_keys($_REQUEST);
for($i = 0; $i < count($_REQUEST); $i++){
$url.='&'.$params[$i].'='.$_REQUEST[$params[$i]];
}
ob_end_clean();
header('content-type:'.$_REQUEST['format']);
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Disposition: filename=test.png');
$ctx = stream_context_create(array('http' => array('timeout' => 3)));
print(file_get_contents($_REQUEST['url'].'?'.$url, 0, $ctx));
}
https_proxy();
?>
in ein Web-Verzeichnis auf dem eigenen kvwmap-Server. Dann ändert man die connection des WMS-Layer auf
https://eigener-kvwmap-server/https_proxy.php?url=http://wms-server&weitere_parameter
(Dabei ist zu beachten, dass, wenn vorher in der connection ein "?" stand, daraus dann ein "&" werden muss, weil das "?" ja schon vor "url=.." steht)
Damit das Skript funktioniert, ist PHP 5 Voraussetzung.