数字证书使用OpenLayers和Javascript的问题

问题描述:

我正在开发一个使用Javascript,PHP和OpenLayers的项目。许多地图使用和HTTPS连接加载到外部OGC服务器上。数字证书使用OpenLayers和Javascript的问题

当我尝试使用HTTPS加载地图时,它们不加载(而不是,它们向我显示“加载地图时出错,稍后再试”)。

我认为问题是因为数字证书。如果我直接从服务器加载(使用WMS调用)这样的(看最后一个参数):

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

浏览器问我的授权,才能看到它。如果我接受数字证书,我可以看到地图。之后,由于我的浏览器现在接受证书,我可以从我自己的应用程序中看到自己的地图。

所以,问题是:当用户访问我的网站时,有什么办法可以要求数字证书吗?

在此先感谢!

PS:使用PHP的解决方案也欢迎,因为我用笨加载意见

我想引用来自gis.stackexchange的另一个用户(geographika)。我希望能帮助别人与我的问题:

您可以将您的服务器,以便 所有客户机请求您 服务器,它与 证书涉及制造上使用代理服务器,获取该请求,并 其传递回到客户端。对于PHP 看看 http://tr.php.net/manual/en/function.openssl-verify.php

如果您还使用WMS软件 (地图服务器,GeoServer的),你可以 实现使用 级联WMS服​​务器相同的技术。

以了解如何做到这一点的 地图服务器看到 http://geographika.co.uk/setting-up-a-secure-cascading-wms-on-mapserver

你可以尝试在一个div或者一个隐藏的iframe打开WMS URL - 这可能会导致浏览器弹出其'未知证书'对话。

+0

谢谢您的回答Spacedman。可能,我要为我的网络添加一个新选项('使用安全连接'),以允许用户使用HTTPS获取地图。因此,用户可以选择是否要使用数字证书。谢谢! – 2011-01-31 12:23:33