有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

我做了以下几件事-

  1. 使用JavaKeyTool-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

现在,当我运行HTTP服务器时,它会选择证书并提供HTTPS请求,但浏览器仍然显示该站点不受信任


共 (1) 个答案

  1. # 1 楼答案

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

    请注意:我正在将它们导入受信任的存储,因为我知道我创建了它们,并且我信任证书的颁发者。千万不要对不受信任的第三方网站这样做。此外,如果您信任该网站,您可能希望将其添加为安全性较低的受信任网站

    enter image description here