Http-WMS-Layer im https-kvwmap ohne Sicherheitshinweis einbinden

Aus kvwmap
Wechseln zu: Navigation, Suche

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.