如何使用自签名证书运行Java HTTP服务器并信任浏览器?

时间:2016-08-01 09:07:54

标签: java ssl jks pkcs12

我有一个要求,我需要在SSL上运行基于Java的HTTP服务器并从浏览器连接到该服务器。我还需要确保浏览器不显示自签名证书的安全例外。

我做了以下事情 -

  1. 使用Java keytool -keygen生成JKS密钥库。
  2. 使用keytool -importkeystore将密钥库导入为PKCS12 p12文件。
  3. 将p12文件加载到X509Certificate2对象并将其添加到Root和CertificateAuthority

    X509Store store5 = new X509Store(StoreName.Root, StoreLocation.LocalMachine); store5.Open(OpenFlags.ReadWrite); store5.Add(cert); store5.Close(); X509Store store2 = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine); store2.Open(OpenFlags.ReadWrite); store2.Add(cert); store2.Close();

  4. 从JKS密钥库导出证书文件。

  5. 将.cer文件添加到Java的cacerts。
  6. 现在,当我运行HTTP服务器时,它会选择证书并提供HTTPS请求,但浏览器仍会将该网站显示为不受信任。

2 个答案:

答案 0 :(得分:1)

当然不可能。浏览器错误消息的全部目的是提醒用户该网站使用的是不安全的证书。

将证书申请发送给CA.你应该把CA证书连同一个"捆绑"这是两个或多个链接的证书(concatanated),你将它安装到jks(java密钥库)中,浏览器将接受你的网站为安全

通过您最喜欢的搜索引擎可以获得有关此主题的众多资源...

答案 1 :(得分:1)

Nitin,此处的选项是安装您在浏览器上生成的证书。你没有指定哪个浏览器,我以IE为例。您可以导入证书。

请注意:我将它们导入受信任的商店,因为我知道我创建了它们并且我相信证书的发行者。永远不要为不受信任的第三方网站这样做。此外,您可能希望将该站点添加为具有较低安全性的受信任站点如果您信任它

enter image description here