我收到了来自供应商的ssl文件--2个crt文件和一个pem文件。有人可以给出如何在Tomcat 7中使用这些文件实现ssl的步骤吗?
我实现了以下步骤将ssl文件存储到keystore
keytool -import -alias root -keystore tomcat.jks -trustcacerts -file tomcat.pem
keytool -import -alias comodo1 -keystore tomcat.jks -trustcacerts -file root.crt
keytool -import -alias comodo2 -keystore tomcat.jks -trustcacerts -file int.crt
在Tomcat中的行下面配置
<Connector port="443" protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS" keystoreFile="/opt/tomcat.jks"
keystorePass="password"/>
还尝试用 org.apache.coyote.http11.Http11NioProtocol 替换上述协议,但仍然没有在浏览器上工作我得到以下错误消息。有人可以帮我这个。
An error occurred during a connection to XXXX:8443. Cannot communicate securely with peer: no common encryption algorithm(s). Error code: SSL_ERROR_NO_CYPHER_OVERLAP
答案 0 :(得分:2)
请运行以下命令并确认密钥库中是否存在 privatekeyEntry 。
keytool -list -v -keystore&lt;密钥库文件路径&gt;
如果此条目不可用,则密钥库文件不能用于SSL加密。
答案 1 :(得分:0)
安装根证书时,应使用root.crt而不是tomcat.pem(我认为这是您的中间证书)。
我已按照以下步骤在tomcat 8上安装和配置SSL。
生成的密钥库运行命令:
keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
通过运行命令生成csr文件:
keytool -certreq -keyalg RSA -alias tomcat -file yourCSR.csr -keystore tomcat.keystore
在www.godaddy.com上提交CSR请求
一旦我的请求获得批准,goDaddy就会颁发证书。我已按照以下步骤操作(goDaddy将此指令与cert文件一起发送)。 通过运行以下命令安装根证书:
<强> keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file [name of the root certificate]
强>
运行以下命令安装中间证书:
keytool -import -alias intermed -keystore tomcat.keystore -trustcacerts -file [name of the intermediate certificate]
我的中级证书以.pem
通过运行以下命令将已颁发的证书安装到密钥库中:
<强> keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file [name of the certificate]
强>
最后,我将以下内容添加/修改为server.xml并重新启动tomcat服务器。 **
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile=".mykeystore" keystorePass="xxxxxx"
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" />
**
答案 2 :(得分:0)
我需要对tomcat.keystore文件有所了解。
1.在生成CSR密钥之前,我看到tomcat.keystore中的内容列表,它包含具有所有者和发行者详细信息的PrivateKeyEntry条目。(所有者和发行者包含信息CN,OU,L,ST等我在创建时输入的相同细节tomcat.keystore。现在,如果我在tomcat配置,直到这里将工作,因为自签名证书将显示在我的浏览器发行人详细信息中。我同意这一点。
2.将所有证书(godaddy)导入我的tomcat.keystore之后,如果我看到列表,我可以看到其他条目,例如:来自godaddy的所有者和发行者的trustedCertEntry。但是在该列表中,PrivateKeyEntry显示Issuer为“XXX”,在创建tomcat.keystore时输入。我不认为发行人的名字是Godaddy.i我不确定我在哪里做错了。
现在配置并从浏览器启动tomcat后,问题名称显示“XXX”与我在创建密钥时输入的内容相同。即使导入所有godaddy证书后也不知道为什么它没有显示问题作为godaddy in brower ?