我们碰巧运行一个REST API Web服务,它公开了http://和https://端点。 https://端点后面有一个SSL证书,需要偶尔更新一次。每隔一次我们更新SSL证书一些运行Java程序的用户与我们的服务投诉接口,他的程序不再有效,他必须在Java证书信任库中更改某些内容。我们的用户使用任何东西开发的程序 - PHP,C#,Ruby,以及其他任何东西 - 当我们更改证书时,他们都没有抱怨,但是有些Java用户每隔一段时间就会遇到问题。
Java运行时在这方面有何特殊之处?我们应该怎样做才能改善用户体验?
答案 0 :(得分:2)
我们的用户使用任何东西开发的程序 - PHP,C#,Ruby,以及其他任何东西 - 当我们更改证书时,他们都没有抱怨,但是有些Java用户每隔一段时间就会遇到问题。
Java提供了自己的CA存储,其中包含的CA通常随系统一起提供。它还取决于Java版本。因此,您使用的根CA可能不是客户端使用的Java版本所知。此外,较旧的Java版本不执行SNI。他们遇到弱DH密钥的问题,不支持更大的RSA密钥等。由于有许多旧的和不支持的Java安装,所以选择了影响你的应用程序的问题。