如何从网络服务器为FF和IE安装SSL客户端证书?

时间:2011-04-03 17:23:17

标签: javascript .net internet-explorer firefox ssl

登录后,我想要一个网页能够为firefox和MSIE-8 +网站客户端提供下载和安装网站的唯一SSL客户端证书的能力,这样他们就不需要再次登录机。

后端很简单并且已经完成 - 我的linux web服务器上有一个目录 键入“make USER = $ username $ {username} .crt.pkcs12”将创建一个新的 客户端密钥和有效的签名PKCS-12 SSL客户端证书文件。

但是如何最好地提供一种登录(使用密码)的单一方法 MSIE和firefox用户可以下载这些证书并启动 “安装客户端证书”浏览器GUI对话框?

简单地将证书作为mime类型的文件推送是很简单的  ? - 说'application / x-pkcs7-certreqresp'?? 所以提示用户保存文件;但我希望他们被提示 将此网站的证书添加到SSL证书管理器的客户端 证书商店。 Then I found this for firefox

所以这很简单 但我能为MSIE is this找到所有。

因此从javascript调用firefox'x安全管理器API很简单, 但我无法从MSIE的javascript中找到这样做 - 人们需要 调用.NET C#代码来访问.NET API,看起来像X509Store API 不要导出到MSIE javascript。

正如我所看到的,选择是在我的linux上提供单声道.NET Web服务 Web服务器并将来自MSIE客户端的请求重定向到证书 此服务,然后可以下载客户端运行的.NET代码 安装证书?

或者我可以让MSIE客户端下载“Install_Cert.VB”可视化基本脚本 将运行“WinHttpCertCfg.exe”?

或者是否有一些神奇的MSIE安全管理器javascript API,我只是没有找到?

抱歉,自1992年以来,我一直是一个Windows refusnik;我只使用Linux / Solaris / BSD / MacOS,无法访问Windows机器。

之前有人在这里/有任何建议吗? 如果是这样,我将不胜感激! 提前致谢, 杰森

3 个答案:

答案 0 :(得分:1)

可能不是您期望得到的答案,但最简单的方法是创建一个ActiveX,将证书放入IE中的正确证书存储区。由于ActiveX仅由IE处理,因此您将拥有特定于IE的解决方案,并且您将只需要一个版本的ActiveX控件。对于Firefox(以及Chrome和Opera),您需要找到其他解决方案。

答案 1 :(得分:1)

Here's some documentation关于如何安装客户端SSL证书。

正如您所料,每个浏览器都不同,移动设备在许多情况下缺少功能,并且有很多方法可以做同样的事情。看起来很多人正在敲打这些东西。

答案 2 :(得分:0)

你在做什么是根本不安全的。私钥应该是私有的。因此,为其他人生成私钥是一个矛盾。相应的证书也应该唯一地标识客户端。在这种情况下,它可以识别生成代码或它已颁发密钥和证书的任何客户端。

您需要另一种解决方案。