gpt4 book ai didi

java - 从 java 建立连接时,我们是否需要在 VM TrustStore 中添加经过验证的 CA?

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:43 25 4
gpt4 key购买 nike

我正在从一个应用程序 sayApp1 调用另一个应用程序(比如 App2),该应用程序由经过验证的 CA(如 Verisign 或 Thawte)授权

String urlStr="https://myApp2/welcome"
HttpsURLConnection conn1 = (HttpsURLConnection) url.openConnection();
conn1.getInputStream()

我需要在某处导入 App2 颁发的证书吗?app1 的虚拟机信任库?当它们位于不同的 tomcat 服务器(所以不同的虚拟机)上时就是这种情况。

如果它们在同一个 tomcat 服务器上(我的意思是同一个虚拟机),那么相同的场景呢?

我知道在浏览器的情况下不需要导入由 CA 签署的证书,如 verisign、thawte 等,但是从 java 建立连接时呢?

编辑:-

正如您所说,无论安装在哪个服务器上,这都是一样的

这意味着网络服务器会检查 Java 1.6.0_30 附带的 cacerts 文件。因此,如果客户端 jvm 具有这些证书,我们无需执行任何操作。

仅当我们从 java 代码建立 url 连接时,才会执行此 cacerts 文件检查。如果是浏览器,它只会检查浏览器信任库。对吗?

要将我的网站移动到 https,我遵循了以下步骤

C:\Program Files\Java\jdk1.6.0_23>keytool -genkey -alias tomcat -keyalg RSA 生成.keystore 文件最后我在 server.xml 中进行了更改并且它起作用了 keystoreFile="c:/.keystore"keystorePass="changeit"

在网上浏览了太多资料后,我对我刚刚采用的方法有点困惑(我是创建了自己的 CA 还是刚刚创建了需要的自签名证书出现在客户端)?

最佳答案

这取决于。 Java 1.6.0_30 附带的 cacerts 文件有 76 个条目。如果其他应用程序使用的证书由使用这些证书之一的供应商之一验证,则无需导入。如果使用的协议(protocol)是 HTTPS,则无论它们安装在哪个服务器上,这都是相同的。有时供应商有新证书,需要更新 cacerts。这通常由 JVM 升级修复。如果用于验证其他应用程序的证书的公钥不在 cacerts 中,则需要导入它以建立信任。

关于java - 从 java 建立连接时,我们是否需要在 VM TrustStore 中添加经过验证的 CA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9700859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com