ssl如何使用自签名证书运行Java HTTP服务器,并信任浏览器?
我需要在SSL上运行基于Java的HTTP服务器,并从浏览器连接到该服务器。我还需要确保浏览器不会显示自签名证书的安全异常
我做了以下几件事-
- 使用JavaKeyTool-keygen生成了一个JKS密钥库李>
- 使用keytool-importkeystore将该密钥库作为PKCS12 p12文件导入李>
将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();
已从JKS密钥库导出证书文件
- 他补充道。cer文件到Java的cacerts李>
现在,当我运行HTTP服务器时,它会选择证书并提供HTTPS请求,但浏览器仍然显示该站点不受信任
# 1 楼答案
Nitin,这里的选项是安装您在浏览器上生成的证书。你还没有指定哪个浏览器,我以IE为例。您可以导入证书
请注意:我正在将它们导入受信任的存储,因为我知道我创建了它们,并且我信任证书的颁发者。千万不要对不受信任的第三方网站这样做。此外,如果您信任该网站,您可能希望将其添加为安全性较低的受信任网站