我们部署了两台服务器,一切都相同,但主机特定证书不同。两个服务器都有自己的 Java 密钥存储 (jks),其中导入了主机特定的证书、intrim 和根证书。
主机特定的证书表示,host-1 和 host-2 具有相同的信任链,直到 root,但在 host-2 中,所有证书直到 root 都具有更长的有效性。要获取新证书,这是一个耗时的过程,因此为了使事情正常进行,我从 server-2 复制 jks 并将其替换为 host-1,从 jks 中删除与 host-2 相关的证书/别名并导入主机-1 在相同的 jks 中。现在我尝试启动我的网络应用程序。它开始是绿色的。 (早期的应用程序没有使用过期的链)。但是当我尝试访问 REST API 时,出现以下错误。
2016-08-02 15:29:23,969 DEBUG nio.ssl (SslConnection.java:wrap(475)) - SCEP@fe16e5{l(/IP1:35840)<->r(/IP2:8444),s=1,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=1r}-{SslConnection@4ddce8ac SSL NEED_WRAP i/o/u=0/0/0 ishut=false oshut=false {AsyncHttpConnection@20993ce7,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-14,l=0,c=0},r=0}}
javax.net.ssl.SSLHandshakeException: no cipher suites in common
at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1431)
at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535)
at sun.security.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1214)
at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1186)
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:469)
这是我用来在 jks 中导入主机特定证书的命令。以下所有内容均已尝试,但我收到相同的错误。
keytool -import -alias gateway-identity -keyalg RSA -keystore gateway.jks -trustcacerts -file /etc/pki/tls/certs/Prod-A-HostFQDN.cer -storepass JKSP@ssword
keytool -import -alias gateway-identity -keyalg RSA -keystore gateway.jks -file /etc/pki/tls/certs/Prod-A-HostFQDN.cer -storepass JKSP@ssword
keytool -import -alias gateway-identity -keystore gateway.jks -file /etc/pki/tls/certs/Prod-A-HostFQDN.cer -storepass JKSP@ssword
谁能说出问题是什么以及如何解决这个问题?
流行性乙型脑炎