【发布时间】:2014-05-29 11:23:34
【问题描述】:
我在 tomcat 7 (7.0.10) 上配置 SSL 时遇到问题,我正在使用 Thawte SGC 证书,请仔细阅读下面的描述帮助我。 我已经按照以下步骤进行了
1)使用以下命令生成密钥
keytool -genkey -keysize 2048 -alias test_self_certificate -keyalg RSA -keystore test_self_certificate.jks -validity 730
此命令在当前文件夹中生成“test_self_certificate.jks”文件
2) 使用以下命令生成 CSR
keytool -certreq -alias test_self_certificate -file my_application.csr -keystore test_self_certificate.jks
此命令在当前文件夹中生成“my_application.csr”文件
3) 然后我已将此 CSR 提交给 Thawte 并从他们那里获得 PKCS#7 格式的证书,我已将该证书文本复制到记事本中并将该文件保存为“signed_certificate.p7b”
4)然后我使用以下命令创建了新的 JKS 密钥库并导入了从 Thawte 收到的证书
keytool -import -alias signed_cert -trustcacerts -file signed_certificate.p7b -keystore tomcat_application.jks
此命令在当前文件夹中生成“tomcat_application.jks”文件
5)我已更新 tomcat server.xml 如下(我提供了正确的 .jks 文件路径和密钥库密码)
<Connector port="8001" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/export/home/parsupport/Tomcat_certs/ tomcat_application.jks " keystorePass="parlive" clientAuth="false" sslProtocol="TLS" />
6)在我启动 Tomcat 时进行此更改后,我得到以下异常并且 tomcat 不以 SSL 启动
Caused by: javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:310)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:255)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.checkConfig(JSSESocketFactory.java:774)
重要提示: 但是如果我在密钥库中导入从 Thawte 收到的证书(test_self_certificate.jks -- 上面提到的第一步),我创建该证书以生成 KeyPair 和CSR ,并使用该密钥库来配置 tomcat(如上述步骤 6 中所述),然后 Tomcat 以 SSL 模式启动,但是当尝试启动 HTTPS URL 时,我收到不受信任的证书警告。
【问题讨论】:
-
2014年使用SGC证书有什么好的理由吗?
-
...rt/Tomcat_certs/ tomcat_application.jks: 这些空格是故意的,还是只是复制/粘贴的错字? -
您好 Bruno,感谢您的回复,使用 SGC 证书是公司政策。并且该空间只是复制粘贴 server.xml 文件中的实际路径是正确的
标签: ssl certificate tomcat7 thawte