我跟着official tutorial在tomcat8上安装ssl,但我的浏览器给我一个ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误。Tomcat8 SSL连接器
首先我给大家介绍一下服务器的信息:
- IP:10.1.5.55
- Tomcat的端口:8200
- Java版本:1.8.0_121
- 的Tomcat版本:阿帕奇Tomcat/8.5.11
- Servlet规范版本:3.1
- JSP版本:2.3
我用https://10.1.5.55:8200/
作为URL连接到我的服务器(这正与HTTP协议)
这让我感到困惑的是,所有的教程都在谈论像连接器的事实的第一件事:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" .../>
但配置文件server.xml中基本为我提供这个模板:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
certificateFile="conf/localhost-rsa-cert.pem"
certificateChainFile="conf/localhost-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
反正我跟进的教程,并生成密钥库我未DER E:\键:
keytool -genkey -alias myapp -keystore myapp-keystore
在名字和姓氏我打字:10.1.5.55:8200 密码:的changeit 我按下回报以获取密钥的密码相同。
然后我写我的连接器喜欢它(我修改了HTTP端口上运行8199):
<Connector
port="8200"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
maxThreads="300"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="E:\keys\myapp-keystore"
keystorePass="changeit"
/>
但我在这一点上得到了错误。
现在有所有的解决方案我想:
- 尝试一个个都TLS协议(V1,V1.1,V1.2,在SSLv3)
- 变化第一和10.1密钥库的姓氏.5.55寂寞
- 试协议= “HTTP/1.1”,协议组织... Http11Nio2Protocol
最后,我想补充的密码。下面是我用的列表:
ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
TLS_ECDH_RSA_WITH_RC4_128_SHA,
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_EMPTY_RENEGOTIATION_INFO_SCSVF
"
我得到这个列表from here这里我了解到,Tomcat7 w ^/java7目录的工作方式不同于Tomcat8 W/Java8。我试着去掉“sslProtocol”并添加“useServerCipherSuitesOrder”,但没有任何工作,总是和我的浏览器一样。
请有人告诉我如何解决这个问题?
替换此命令
? – pedrofb
感谢您的回答。我用我提供的基本配置添加了+密码,但它不起作用 –
尝试从证书的公用名称中删除端口号。设置只有您的IP 10.1.5.55(我不知道这是否可能是问题,通常使用域的名称) – pedrofb