Java SSL 握手中客户端证书遗漏
SSL 握手期间 Java 的行为有时会导致客户端证书遗漏,从而导致握手失败。当服务器请求由某个 CA(在本例中为“RootCA”)签名的客户端证书时,就会出现此问题,而 Java 只能在 Keystore 中找到由下级 CA(“SubCA”)签名的客户端证书。
密钥库配置注意事项:
服务器配置注意事项:
解决方案:
要纠正此问题,客户端证书及其证书链(包括“SubCA”证书)应合并为单个文件(例如,bundle.pem)。然后可以使用 keytool -importcert -keystore store.jks -alias myalias -file bundle.pem 将这个捆绑的 PEM 文件导入到保存客户端私钥的 Keystore 别名中。通过这样做,Java 将识别完整的证书链并在 SSL 握手期间发送适当的证书。
以上是当服务器请求不同 CA 签名的客户端证书时,为什么我的 Java SSL 握手失败?的详细内容。更多信息请关注PHP中文网其他相关文章!