推荐的方式成为我自己的证书颁发机构

时间:2017-03-22 04:47:59

标签: javascript ssl csr

我们正在创建自己的CA,但我不确定如何正确签署csrs。

  1. Chrome支持keygen HTML标记,但不会安装下载的证书(无用)。
  2. Firefox使用keygen标记,但它使用自己的商店,这意味着用户必须导出证书并将其重新导入Windows才能与其他浏览器一起使用。
  3. IE需要一个特殊的MS专用javascript对象,但是,运行Windows 10,我们的客户甚至不知道如何打开IE。
  4. Edge不会解释与csr相关的任何内容。
  5. 我正在考虑在服务器中生成csr和cert(并让用户下载p12或安装程序)或创建Windows应用程序并让用户下载它以便工作,但这当然是将他们的私钥暴露给我的应用程序。

    你会推荐什么?

1 个答案:

答案 0 :(得分:1)

似乎Keygen标记已deprecated in chrome,并且没有标准方法可以从浏览器请求证书。实际上,CA需要创建您自己的密钥对+ csr,例如使用openssl,或者提供一个表单来自动生成并复制和粘贴到您计算机中的文件。

不要在服务器中生成证书并将其发送到客户端。这是一个关键且高风险的过程。如果流程不安全,您的CA将无效,并且不会获得认证(假设您需要)。

选项:

  • 在客户端生成密钥对和CSR,将CSR发送到服务器并接收签名证书:您可以使用openssl,本地应用程序,HTML表单或使用自动化流程WebCryptographyApi(或其他javascript库)

  • 在服务器中生成证书并远程使用:证书必须方便安全,主要使用HSM(在欧盟,对于想要存储用户的可信CA必须证书),证书的使用被凭证锁定。通常使用双因素身份验证。例如用户名/密码+短信