我的同事和我在使用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端口)
有任何想法吗?
在www.tpsynergy.com上更新我们服务器的证书时遇到了同样的问题.导入新服务器证书并重新启动tomcat后,我们得到的错误是ERR_SSL_VERSION_OR_CIPHER_MISMATCH.经过大量研究后,我使用此链接https://www.sslshopper.com/certificate-key-matcher.html来比较csr(证书签名请求与实际证书).他们俩都不匹配.所以我创建了一个新的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
鉴于您尝试过的内容和错误消息,我会说这更多地与使用的确切密码算法而不是TLS/SSL版本有关.您是否通过任何机会使用非Sun JRE,或者使用其他供应商的安全实施?如果可以,尝试使用其他JRE/OS来测试服务器.如果你失败了,你可能只能看到Wireshark发生了什么(使用'tcp.port == 443'的过滤器).