带有效证书的spring boot https获取ERR_SSL_VERSION_OR_CIPHER_MISMATCH,自签名工作正常

我正在运行Spring Boot 1.4.0.RELEASE。

我从我的IT部门获得了有效的证书。

我使用IT_cert.cer生成了一个tomcat keystore.jks文件

keytool -keystore tomcat-keystore.jks -storepass password -import -alias "tomcat" -file it_issued_cert.cer 

配置我的application.yml打开SSL

 server: context-path: /uaa port: 9999 ssl: enabled: true key-store: classpath:tomcat-keystore.jks key-store-password: password key-password: password enabled-protocols: TLSv1.2 # make sure only to use the latest TLS version 

用于签署证书的算法是

 Signature algorithm name: SHA256withRSA 

当我运行spring-boot应用程序时,它启动并找到我的证书。

当我在我的HTTPS端口上使用chrome时,浏览器不再出现“不受信任”警告。

但现在有一个来自Chrome和IE11的ERR_SSL_VERSION_OR_CIPHER_MISMATCH声称我可能正在使用RC4加密……

我已经尝试指定低于TLSv1.2的非安全协议并采用默认值..但它们都会导致相同的错误。

我相信最新的Chrome / IE11有TLSv1.2所以我对浏览器的错误感到困惑。

此外,如果我使用自签名,一切正常,但我得到关于信任自签名的安全警告。

我的结论是我配置我的证书导致此错误的方式,还是来自我的IT部门的签名算法?

近乎欺骗Java SSLHandshakeException:没有共同的密码套件

HTTPS服务器需要PRIVATE KEY和匹配证书 ,并且根据证书的颁发方式,服务器可能还需要“链”或“中间”证书(有时候不止一个)。 您导入了证书,但这还不够。

首先查看你的文件it_issued_cert.cer以查看它是否是PEM格式:它是否包含分组为行的所有可读字符,至少有一个块以一行开头
-----BEGIN sometype_in_caps-----
然后一些完全由字母,数字,plussign +和斜杠/的行,最后可能等于= ,最后是一行
-----END same_type----

如果PEM并且至少有两个块,其中一个类型为[RSA|DSA|EC|ENCRYPTED] PRIVATE KEY而其他(s)有(有)类型[X.509|maybesomethingelse] CERTIFICATE ,则可以使用OpenSSL进行转换到PKCS12然后keytool转换为JKS。 首先检查是否需要任何“链”或“中间”证书:如果文件已经包含多个证书并且没有通过完整的doofus准备那些多个证书形成所需的chai,那么继续。 如果文件只包含一个证书,请使用openssl x509 -in $file -noout -subject -issuer确保主题是您的服务器并查看颁发者; 如果发行人是您所在环境中信任的CA(例如“我的公司CA”),则继续。 否则,询问IT,如果需要任何链证书,请以PEM格式获取它们,并将它们添加到文件中。 然后做:

 openssl pkcs12 -export -in $file -out temp.p12 -friendlyname alias_you_want keytool -importkeystore -srcstore temp.p12 -srcstoretype pkcs12 -deststore new.jks # and use new.jks as your server keystore 

如果文件是PEM但是只有一个类型为CERTIFICATE的块,或者该文件根本不是PEM,则必须已发出此证书以响应某人的CSR(证书签名请求):

如果您向他们提供了CSR,请提供详细信息(编辑您的问题)生成CSR的方式和位置。 这就是私钥的位置,你需要使用该密钥,复制它,或转换(和复制)它,具体取决于你所做的。

如果你没有给他们CSR,请问他们在哪里得到它。 如果他们自己生成密钥和CSR,请询问他们PEM格式的密钥。 如果他们从其他人那里获得CSR,请向其他人询问PEM格式的密钥。 获得后,将其添加到文件中,然后返回上面的案例。 如果他们坚持给你一些PEM格式以外的东西,请提供详细信息。

如果没有人拥有此证书的私钥,则无法使用证书。 丢弃并重新开始。