tomcat配置https访问chrome提示ERR_SSL_VERSION_OR_CIPHER_MISMATCH
2018-03-08 10:20
861 查看
今天配完tomcat ssl后,发现页面无法访问。chrome提示以下:
问题是其他服务器上一样的配置完全没问题。
百度了一圈没找到解决方案,对tomcat配置ssl的原理也不甚了解。后面谷歌找到了解决方案,在ssl的那个connector配置指定加密协议集:
具体connector配置如下:
配置完后,就可以访问页面了。
具体原因不足,后面有机会深入了解tomcat机制原理再来探讨。
以下是找问题中看到的一些资料:
tomcat的ssl有两种实现,一种是使用apr,一种是JSSE。tomcat会自动选择使用哪种实现。如果服务器安装了apr,好像会自动选择使用apr(本人推测上面的错误可能和apr有关系,因为唯独那台服务器装了apr,就不行了)。可以通过指定protocol来让tomcat选择JSSE实现。
tomcat对SSL的实现有两种,JSSE和APR
(1)JDK 从1.4版本就实现JSSE,APR使用OpenSSL引擎,所以想使用APR实现的话,必须配置OpenSSL引擎。
(2)JSSE分为BIO实现和NIO实现,BIO实现的protocol值为org.apache.coyote.http11.Http11Protocol,NIO实现的protocol值org.apache.coyote.http11.Http11NioProtocol。
据我试验,tomcat6中必须使用BIO实现方式。使用NIO实现方式会出错。
如果想使用APR方式则必须安装Tomcat本地库。
(3)大部分tomcat中默认的连接器就是BIO连接器
经试验tomcat6是BIO连接器,不支持NIO,因此connect连接器的protocol值应该写为org.apache.coyote.http11.Http11Protocol
问题是其他服务器上一样的配置完全没问题。
百度了一圈没找到解决方案,对tomcat配置ssl的原理也不甚了解。后面谷歌找到了解决方案,在ssl的那个connector配置指定加密协议集:
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"
具体connector配置如下:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" URIEncoding="UTF-8"
keystoreFile="conf/chinanetcenter.tomcat" keystorePass="2013111"
clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12"
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"
compression="on" compressionMinSize="50" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/>
配置完后,就可以访问页面了。
具体原因不足,后面有机会深入了解tomcat机制原理再来探讨。
以下是找问题中看到的一些资料:
tomcat的ssl有两种实现,一种是使用apr,一种是JSSE。tomcat会自动选择使用哪种实现。如果服务器安装了apr,好像会自动选择使用apr(本人推测上面的错误可能和apr有关系,因为唯独那台服务器装了apr,就不行了)。可以通过指定protocol来让tomcat选择JSSE实现。
tomcat对SSL的实现有两种,JSSE和APR
(1)JDK 从1.4版本就实现JSSE,APR使用OpenSSL引擎,所以想使用APR实现的话,必须配置OpenSSL引擎。
(2)JSSE分为BIO实现和NIO实现,BIO实现的protocol值为org.apache.coyote.http11.Http11Protocol,NIO实现的protocol值org.apache.coyote.http11.Http11NioProtocol。
据我试验,tomcat6中必须使用BIO实现方式。使用NIO实现方式会出错。
如果想使用APR方式则必须安装Tomcat本地库。
(3)大部分tomcat中默认的连接器就是BIO连接器
经试验tomcat6是BIO连接器,不支持NIO,因此connect连接器的protocol值应该写为org.apache.coyote.http11.Http11Protocol
相关文章推荐
- ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误
- SSL踩坑ERR_SSL_VERSION_OR_CIPHER_MISMATCH
- nginx 配置后网站图片或js 加载出来一半或者不出来刷新才可以,chrome 浏览器访问项目时加载大文件失败 ERR_CONTENT_LENGTH_MISMATCH:
- 浏览器低版本chrome内核(<50)访问不了某https网站,nginx配置ssl_ciphers加密选项
- 本地Tomcat配置ssl 实现https访问
- Tomcat配置https与http自动跳转和tomcat单双向SSL配置及IE访问HTTPS下载文件失败
- 本地Tomcat配置ssl 实现https访问
- 如何配置https访问tomcat
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
- Linux Tomcat Https 访问配置!
- Tomcat配置https及访问http自动跳转至https
- SSL配置tomcat时出现 Keystore was tampered with, or password was incorrect错误的解决办法
- Nginx + Tomcat + HTTPS 配置原来不需要在 Tomcat 上启用 SSL 支持
- Tomcat配置https单向双向认证,iOS加密解密验证,iOS访问HTTPS
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
- Tomcat 配置设置https访问(单向验证)
- tomcat配置https及访问
- SSL-HTTPS与Java-Tomcat配置
- TOMCAT HTTPS访问配置应用
- TOMCAT HTTPS访问配置应用