5 votos

¿Utilizar certificados digitales con OpenLayers?

Estoy desarrollando un proyecto con JavaScript, PHP y OpenLayers. Muchos mapas se cargan usando una conexión HTTPS contra un servidor OGC externo.

Cuando intento cargar el mapa usando HTTPS, no se carga (en lugar de eso, me muestran un "Error al cargar el mapa, inténtelo más tarde").

Creo que el problema se debe al Certificado Digital. Si cargo directamente desde el servidor (usando una llamada WMS) así (mira el último parámetro):

https://serverurl/ogc/wms?service=WMS&version=1.1.0&request=GetMap&layers=ms1:lp_anual_250&styles=&bbox=205125.0,3150125.0,234875.0,3199875.0&width=306&height=512&srs=EPSG:4326&format=application/openlayers

El navegador me pide mi autorización para verlo. Si acepto el certificado digital, puedo ver el mapa. Después de eso, y debido a que mi navegador ahora acepta el certificado, puedo ver mi propio mapa desde mi propia aplicación.

Estoy creando la capa así:

activeLayer = new OpenLayers.Layer.WMS(
               layername, layerurl,
               {
                  width: varmap.size.w,
                  srs: varmap.projection,
                  layers: layername,
                  height: varmap.size.h,
                  styles: style,
                  format: 'image/png'
               }
               );
varmap.addLayer(activeLayer);

¿Hay alguna forma de pedir el Certificado Digital manualmente cuando el usuario accede a mi web?

Estoy usando CodeIgniter para cargar las vistas.

6voto

Swinders Puntos 1042

Puedes usar un proxy en tu servidor para que todas las peticiones del cliente se hagan a tu servidor, que se encarga del certificado, recibe la petición y la devuelve al cliente. Para PHP eche un vistazo a http://tr.php.net/manual/en/function.openssl-verify.php

Si también se utiliza un software WMS (MapServer, GeoServer) se podría implementar la misma técnica utilizando un servidor WMS en cascada. Este actuaría como intermediario entre el servidor remoto y los navegadores de los usuarios.

Para más detalles sobre cómo hacer esto en MapServer vea http://geographika.co.uk/setting-up-a-secure-cascading-wms-on-mapserver

Nota: el uso de un proxy de esta manera puede ir en contra de los términos originales del acuerdo de WMS, así que recuerde comprobarlos primero.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X