Java “如何修复”;ssl“错误”无“密码重叠”;在Tomcat7服务器上?

Java “如何修复”;ssl“错误”无“密码重叠”;在Tomcat7服务器上?,java,tomcat,ssl,Java,Tomcat,Ssl,最新版本的Chrome和Firefox在默认情况下禁用了SSLv3.0,原因是。当我试图打开一个我已经设置好的站点(并且运行正常)时,这会导致以下错误: 镀铬: A secure connection cannot be established because this site uses an unsupported protocol. Error code: ERR_SSL_VERSION_OR_CIPHER_MISMATCH 使用Firefox: Cannot communicate s

最新版本的Chrome和Firefox在默认情况下禁用了SSLv3.0,原因是。当我试图打开一个我已经设置好的站点(并且运行正常)时,这会导致以下错误:

镀铬:

A secure connection cannot be established because this site uses an unsupported protocol.
Error code: ERR_SSL_VERSION_OR_CIPHER_MISMATCH
使用Firefox:

Cannot communicate securely with peer: no common encryption algorithm(s). (Error code: ssl_error_no_cypher_overlap) 
我已经研究过这个问题,并且。我理解这个问题,但我找不到文档来配置Tomcat7,使其只使用现在安全的TLS密码和协议。我不确定是否需要创建新的证书/密钥对、更改我的server.xml或安装新版本的Tomcat等等。我甚至不确定这些浏览器现在认为什么版本的密码/协议是“可接受的”。有人能给我指一下文档或示例设置吗

我在Ubuntu 14.04和Tomcat7上使用OpenJDK1.7

这是我的证书文件(已编辑):

下面是我的
server.xml
HTTPS支持条目:

<Connector port="8484" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           keystoreFile="/path/mykeystore"  
           keystorePass="password"
           clientAuth="false" 
           sslProtocol="TLS"
           sslEnabledProtocols="TLS" />

根据您的Java版本,您需要扩展
sslEnabledProtocols
以包括TLSv1和ff

您可以使用指定密码


与证书无关

我在使用Tomcat 8.0.23和Java 8 build 1.8.045的新安装中遇到了问题。我最终发现,在使用Java keytool实用程序创建自签名证书时,我没有指定-keyalg RSA选项。我删除了旧的密钥存储,并确保在创建新密钥存储时包含该选项。这解决了问题。

完整的Tomcat server.xml连接器元素:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="conf/keystore.jks" keystorePass="changeit"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA" />


这对我很有用,我也在使用JRE1.7和Tomcat7服务器。但是设置
sslEnabledProtocols
对我不起作用,这里使用sslProtocol=“TLS”,并明确指定加密算法。

感谢您的回答-但是每个字段需要的实际值是多少?例如,对于
sslEnabledProtocols
我尝试了“TLS”、“TLSv1”、“TLSv1.1”、“TLSv1.2”和“TLSv1.1、TLSv1.2”,但没有成功。我在Tomcat日志中没有收到任何错误消息,但浏览器仍然无法连接。请尝试
sslEnabledProtocols=“TLSv1.2,TLSv1.1,TLSv1”
,如中所述,我实际上生成了一个新的自签名证书,从而解决了问题。我不知道为什么旧的停止工作,但谢谢你,我正在标记你的答案正确。有同样的问题。这里没有提到我应该在ciphers属性中提到哪些密码。仅添加sslEnabledProtocols属性(使用指定的值)是不够的。谢谢。我在chrome中遇到了这个错误,直到我添加了RSA标志,看起来像这样:keytool-genkey-alias tomcat-keypass localhost-keystore certificates.keystore-storepass localhost-keyalg rsasthanker@MrZcxfph您的修复程序使我在经历了半天的挫折之后,能够让TLS在Fedora 24+tomcat 8.0.36+Java1.8.0111上工作在网上试了一天,这对我很有帮助。同样以tnx@false_记忆为例,谢谢@例如,false_memories+1
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="conf/keystore.jks" keystorePass="changeit"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA" />