CACert和MyOpenID都是这样做的:它们有一个表单,当提交时,浏览器将生成一个密钥,并将公共部分发送给签名,然后将包含该浏览器绑定的公钥的签名证书在其密钥库中,并在未来用于身份validation。 我知道如何使用SSLVerify和类似的validation客户端证书,一旦用户拥有它,我知道如何生成CA和客户端证书通常使用openssl命令行工具,而不是如何做浏览器交互位来生成钥匙等
我可能使用Apache和Ruby /机架或PHP,如果有帮助:)
您正在寻找keygen标签 。 参见Mozilla的页面 。
让EJBCA做到这一点可能会更好,因为它通过使用它的external-ra组件 (我做:)来处理不同的浏览器怪癖。
本质上,构buildejbca的两个实例。 一个充当你的安全networking后面的ca。 另一个作为前端ra的实例,将用于注册您的用户。 ca通过查询ra的MySQL数据库(externalra.propertiesconfiguration文件)来查询ra,select任何未完成的CSR,对它们签名,然后发回证书。
为了您注册用户:
这是我使用的一个简单的ejbca生成脚本 。 它不能正常工作,但它应该工作。 更新:也看到这个问题和这个链接在Apache的客户端证书的使用