我正在研究在 Java 服务器上配置两个证书(一个用 SHA1 签名,另一个用 SHA256 签名)的可能性。具体来说,我创建了一个 keystore ,其中导入了两个证书。然后将此 keystore 设置为由我的简单 Java 服务器应用程序使用,语法如下:
System.setProperty("javax.net.ssl.keyStore","key.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "myPassword");
这是我发现的问题。当使用 openSSL 工具列出我的安全套接字上打开的端口使用的证书时(在服务器运行并监听连接时运行命令),我可以看到只使用了一个证书,另一个被忽略了。
问题是:有什么方法可以告诉我的服务器同时使用两个证书吗?这是必需的,因为我还有两个应该能够与服务器通信的 Java 客户端应用程序。其中一个信任 SHA1 签名证书,另一个信任 SHA2 证书。
谢谢!
最佳答案
她指的是过渡阶段。由于客户端不受服务器所有者的控制,因此无法强制执行它们的升级。在有限的时间内,只知道并信任新 SHA256 证书的新客户端将连接到服务器,而只知道并信任旧 SHA1 签名证书的旧客户端也必须仍然能够连接到服务器。这就是为什么需要这个过渡期。
关于java - 在 Java 服务器应用程序上同时配置两个 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43919085/