我正在尝试使用SSL配置Tomcat 6并提供给我们的证书(由某人)。我的SSL体验只持续了几天,但我还是要配置这个糟糕的事情。
我以DER格式提供了证书(从IE下载)。
接下来我创建了一个密钥库:
keytool -import -alias btIEgen -file MyCompany.der -keystore b2b.keystore
假设我使用“密码”作为密码
我在SSL部分的Tomcat的server.xml中配置了它:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="webapps/b2b.keystore" keystorePass="password" keyAlias="btIEgen"
clientAuth="false" sslProtocol="TLS" />
启动Tomcat后,我得到了错误。
然后我在b2b.keystore上做了一个keytool -list,并注意到别名是全部小写的,所以在更新server.xml并重新启动之后,我仍然得到相同的错误,但对于小写别名。
然后我可能我需要一个根CA.所以我重新创建了b2b.keystore,如下所示:
keytool -import -alias root -file myCA.cer -keystore b2b.keystore
然后我针对MyCompany.der重新执行了我的keytool命令
但是我仍然得到相同的错误,别名不能识别密钥条目。
我想知道我是否在配置tomcat时遇到了一些根本性的错误,或者这件事是否有效?我只是犯了一个愚蠢的粗心错误?
非常感谢任何指导。
答案 0 :(得分:34)
Tomcat需要的是证书及其私钥。证书是您的任何用户都可以看到的公共信息,但私钥应该只属于您自己:这是阻止他人使用您的证书运行网站的原因。通过导入MyCompany.der
,您只需导入证书。
您需要先找到私钥的位置。 (通常情况下,即使向您颁发证书的人也不应该知道其私钥。)
在证书申请过程中,您的浏览器中可能已生成私钥。尝试查看是否可以以.p12
/ .pfx
(PKCS#12)格式导出:如果存在,则应将私钥捆绑在一起。如果是这样,您应该能够使用PKCS12
商店类型直接将生成的文件用作密钥库:keystoreFile="store.pfx" keystorePass="password" keystoreType="PKCS12"
(您可能不需要密钥别名,因为只有一个密钥条目)。