2010-01-04 206 views
7

我想知道您是否有人知道在javascript或php中是否可以测试客户端是否在浏览器中安装了特定的客户端证书。测试客户端浏览器中是否安装了客户端证书

问题是我们已经安装了服务器证书,但要被客户端识别,他们需要2个客户端证书,使他们能够识别我们服务器证书颁发者的权限。我们想测试浏览器这2个证书,如果不存在,我们希望建议客户端在进入https模式之前下载它们...

任何人都可以提供帮助吗?如果你知道的话,请详细说明你的答案。

+1

您应该只需要在客户端测试一个证书即根证书。 – 2010-01-04 14:26:22

+0

是的,问题是我们的新服务器证书取决于新的权限,并且所有浏览器都不知道。我们需要像Firefox这样的浏览器来下载新的根CA,以便他们可以识别我们的服务器证书。但我不知道如何测试浏览器是否已经拥有根CA或是否需要下载它。只要你通过https连接到我们的服务器,你就会发现我们的服务器证书是不可信的,因为权限是未知的。除非您为根CA安装客户端证书。 – Fabien 2010-01-04 14:52:55

+0

这不是'客户证书'的含义。您想知道客户端是否信任特定的根证书。那不一样。 – 2010-01-04 14:55:49

回答

-1

强迫您的用户下载并安装本地CA证书是丑陋和可恶的。相反,向他们展示爱,并支付30美元以获得由信誉良好,已经信任的CA签署的SSL证书。

+0

呃...我们正在使用一个可信的证书,但是公司最近更换了他们的CA,并且我们已经向他们支付了这个服务器证书,所以我们想要使用它。就像他们有一个新的ROOT CA权限证书一样,浏览器不是最新的,不知道他们。我们都知道人们不会经常更新他们的浏览器......并且safari,firefox不会通过windows更新工作......所以我们试图找到一个解决方案。但是可以肯定的是,我们对SSL证书提供商的这种改变并不满意。太糟糕了,这是正确的价格,并在开始时被所有浏览器所认可... – Fabien 2010-01-04 15:25:51

+0

我们的服务器certificat是一个wildcart certificat,并且远远超过30美元:) – Fabien 2010-01-04 15:27:05

+0

但我同意你的看法,这是一个让人下载并安装ROOT CA权威认证...这不应该发生。我们不幸运。 – Fabien 2010-01-04 15:28:40

0

怎么样一个警告信息,将被隐藏的JavaScript将从您的https站点加载。

在警告消息中,您可以链接Windows Update站点或更新的根证书可以下载到浏览器的任何地方。

0

PHP是一种服务器端语言。如果你真的想测试这个,那么你需要用JavaScript来完成,然后发送一个AJAX请求到PHP。

但我认为你的问题还有另一种解决方案。通常,当CA更改他们的名字等时,他们通常会使用新的“中间证书”。 (如果你有一个apache httpd服务器,那么你也可以在他们的网站上搜索“ca bundle”)。通过这个包,你可以发送新的CA证书和你的证书。

3

您可以通过使用javascript从安全(https)源请求已知文件来完成客户端。如果请求失败,则表示客户端拒绝接受您的证书(或其他网络错误),此时您可以弹出一条消息,要求用户安装带有根证书链接的根证书。

这必须从非安全页面完成。否则用户可能会拒绝你的证书,并且从不加载页面,因此你的javascript永远不会运行

它不能在PHP中完成,因为php(它是服务器端)无法确定客户端浏览器是否具有特定root ca安装

但我不会这样做。改为取得适当的证书。

您似乎对SSL的工作方式一般不了解。我建议花一些时间了解SSL如何工作以及如何使用证书。

DC

了解的JavaScript阅读此页发送和接收HTTP响应..

http://www.w3schools.com/XML/xml_http.asp

它可以用来发送和接收任何文本数据,而不仅仅是XML。这很容易实现,但您必须了解浏览器版本问题。

DC

+0

我确认我对SSL作品有不了解。互联网上有这么多的技术你不知道,并专注于为什么我要求帮助的一切。 从那时起,我们决定将解决方案作为一项解决方案,在我们的网站上放置一个非https页面,解释在继续下一个安全页面之前需要安装新的证书。它不是很好,但它是我们发现解决我们的问题的唯一方法... 关于您的解决方案,我想知道您是如何通过javascript请求文件的。是否有任何下载功能?你使用document.location?问题仅仅是为了非正式的目的。 – Fabien 2010-02-22 11:16:33

+0

我已更新我的答案,以包含使用JavaScript从服务器加载文件的链接。这是大多数ajax功能的基础 – DeveloperChris 2010-02-22 22:20:56

相关问题