我的同事和我在使用Firefox 3.0.6访问我们正在开发的Java 1.6.0 ___ 11 Web应用程序时遇到了问题。在1-30分钟到会话的任何地方都可以正常工作......但最终,连接失败并出现以下错误:
Secure Connection Failed
An error occurred during a connection to 10.x.x.x.
Cannot communicate securely with peer: no common encryption algorithm(s).
(Error code: ssl_error_no_cypher_overlap)
IE工作正常。 Firefox会在Windows和Fedora中引发错误,因此问题似乎与操作系统无关。 Java EE应用程序在Tomcat 6.0.16服务器上运行。所有页面都使用TLS 1.0通过带有mod_nss的Apache 2.2.8 HTTP服务器进行加密。
我们的Apache服务器配置为拒绝SSL 3.0连接。我们有一个假设是Firefox可能正在尝试建立SSL 3.0连接......但为什么呢?
基于一些谷歌搜索,我们尝试了以下方法,但没有成功:
使用Firefox 2.x(有些人报告了2.x工作但3.x没有的情况):
启用SSL2
禁用SSL3
禁用OCSP(工具>选项>高级>加密>验证)
确保客户端计算机的防病毒/防火墙没有阻塞或扫描端口443(https端口)
有什么想法吗?
答案 0 :(得分:7)
我在www.tpsynergy.com上为我们的服务器更新证书时遇到了同样的问题。导入新服务器证书并重新启动tomcat后,我们得到的错误是ERR_SSL_VERSION_OR_CIPHER_MISMATCH。经过大量研究,我使用此链接https://www.sslshopper.com/certificate-key-matcher.html来比较csr(证书签名请求与实际证书)。他们俩都不匹配。所以我创建了一个新的csr并获得了一个新的证书并安装了相同的。它奏效了。
因此,该过程的完整步骤是
keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tpsynergy.keystore (根据需要更改域名)
创建此内容时,会询问名字和姓氏。不要提供您的姓名,但请使用域名。例如,我把它作为www.tpsynergy.com
2.keytool -certreq -keyalg RSA -alias tomcat -file csr.csr -keystore tpsynergy.keystore
这将在同一文件夹中创建一个csr.csr文件。将其内容复制到godaddy站点并创建新证书。
下载的证书zip文件将包含三个文件 gd_bundle-G2-g1.crt gdig2.crt youractualcert.crt
您需要从godaddy存储库下载root cert gdroot-g2.crt。
将所有这些文件复制到您创建CSR文件的目录以及密钥库文件所在的目录。
现在逐个运行以下命令,将证书导入密钥库
keytool -import -trustcacerts -alias root -file gd_bundle-g2-g1.crt -keystore tpsynergy.keystore
keytool -import -trustcacerts -alias root2 -file gdroot-g2.crt -keystore tpsynergy.keystore
keytool -import -trustcacerts -alias intermediate -file gdig2.crt -keystore tpsynergy.keystore
keytool -import -trustcacerts -alias tomcat -file yourdomainfile.crt -keystore tpsynergy.keystore
确保conf文件夹中的server.xml文件具有此条目
重启tomcat
答案 1 :(得分:5)
鉴于您尝试过的内容和错误消息,我会说这更多地与使用的确切密码算法而不是TLS / SSL版本有关。您是否通过任何机会使用非Sun JRE,或者使用其他供应商的安全实施?如果可以,尝试使用其他JRE / OS来测试服务器。如果失败,你可能只能看到Wireshark发生的事情(过滤器'tcp.port == 443')。
答案 2 :(得分:3)
如果您查看维基百科上的SSL协商过程,您将会知道在开始时,会在浏览器和服务器之间发送ClientHello和ServerHello消息。
仅当ClientHello中提供的密码在服务器上有重叠项时,ServerHello消息才会包含双方都支持的密码。否则,将不会启动SSL连接,因为没有共同的密码。
要解决此问题,您需要安装密码(通常在操作系统级别),而不是在浏览器上努力(通常浏览器依赖于操作系统)。我熟悉Windows和IE,但我对Linux和Firefox知之甚少,所以我只能指出错误但无法为您提供解决方案。
答案 3 :(得分:1)
在使用Burp时,我在浏览安全网站时遇到了类似的问题(https://)(或至少在搜索Google时会将您带到此页面的问题):
ssl_error_no_cypher_overlap
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
using Java 8结果证明这是一个问题。当我切换到Java 7时,问题就停止了。
答案 4 :(得分:0)
在Firefox的高级设置下,您应该能够设置加密。默认情况下应该检查SSL3.0和TLS1.0,因此如果firefox尝试创建ssl 3.0连接,请尝试取消选中ssl 3.0s设置。
如果不起作用,请尝试在about:config页面搜索“ssl2” 我的Firefox默认设置为ssl2设置为false ...
答案 5 :(得分:0)
我要检查的第一件事是mod_nss的配置。这是奇怪的,因为它是你的,世界上没有像它一样:-)然而,如果Firefox或mod_nss本身有一些巨大的错误,我猜你现在已经发现了它谷歌任务。您摆弄配置(例如禁用SSL3以及其他各种随机调整)的事实也是可疑的。
我会回到一个非常香草的mod_nss配置,看看是否有效。然后系统地更改当前配置,直到您可以重现问题。通过它的声音,错误的来源在mod_nss的密码规范配置和相关的协议协商内容中的某处。所以也许你在试图关闭SSLv3时无意中改变了一些东西(顺便说一下,为什么禁用SSL3?通常人们禁用V2?)。
要检查的另一件事是你使用的是最新的mod_nss并且它不是一个已知的bug。它设法启动会话然后失败的事实很有意思 - 它表明它可能正在尝试重新协商会话并且在那时未能协商密码。所以它可能是对称密码。或者它可能只是你的mod_nss版本中的一个实现错误,它以某种方式使协议变得混乱。
另一个想法,这是一个疯狂的猜测,是浏览器尝试恢复在禁用它之前与SSLv3协商的会话,并且当V3关闭时尝试恢复该会话时会出现问题,或者可能mod_nss只是没有正确实现它。
java / tomcat的东西看起来像是一个红色的鲱鱼,除非我误解了你的描述,否则这些都不涉及SSL握手/协议。
答案 6 :(得分:0)
我在一个非常旧的本地路由器上也遇到了同样的问题,并且由于自签名证书而无法打开其WebGUI。解决方案是安装old Firefox Portable version。我测试了以下版本:
这很奇怪,因为它应该仅为a problem since version 59,但是只要有效,对我来说就可以了。
答案 7 :(得分:-1)
如果你在firefox上得到无密码重叠错误,并且你已经将它保留为默认设置,那么你正在使用一个非常不安全的站点,试图使用一个非常弱的“导出等级”密码。这些天不鼓励使用这些密码,我个人会停止使用试图使用这种弱密码的网站。
答案 8 :(得分:-2)
我遇到了同样的问题;解决就足以在“about:config”中启用所有SSL模式。我是通过使用ssl过滤来找到它们的。首先,我允许所有选项后悔禁用不必要的选项。
答案 9 :(得分:-2)
"错误代码:ssl_error_no_cypher_overlap"登录后的错误消息,当预期欢迎屏幕时 - 使用Firefox浏览器
解决方案
在Firefox浏览器中启用对40位RSA加密的支持: 1:输入' about:config'在浏览器地址栏中 2:查找/选择" security.ssl3.rsa_rc4_40_md5" 3:将布尔值设置为TRUE
答案 10 :(得分:-2)
对我有用的是我:
关于重启Firefox的注意事项:当我关闭它后很快启动它, 它经常有文件访问问题,这需要我删除 places.sqlite 和 places.sqlite-journal 在 C:\ WINDOWS \ Application Data \ Mozilla \ Firefox \ Profiles \ n18091xv.default 中。这导致我失去了我的历史,加上书签必须 每次发生这种情况时都会从备份中恢复。我等了五到十分钟 更多是为了避免这种麻烦。
在WinMe上运行Firefox v3.5.1
答案 11 :(得分:-4)
“错误代码:ssl_error_no_cypher_overlap”登录后,当预期欢迎屏幕时出现错误消息 - 使用Firefox浏览器 解 1:在浏览器地址栏中输入'about:config' 2:查找/选择“security.ssl3.rsa_rc4_40_md5” 3:将布尔值设置为TRUE