首先,我知道有类似的问题已经提出,我试图按照建议排除故障,但没有运气。所以,我认为我最好只是发布求助信息。预先感谢您的帮助。Tomcat上的证书配置
问题:我在做什么错?我应该检查什么/在哪里?
目的:我试图在Tomcat上设置证书。我已经在使用Tomcat 8.5,%JAVA_HOME%= “C:\ Program Files文件\的Java \ jdk1.8.0_121” 我用下面的命令生成的证书:
keytool -genkeypair -alias cert -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keypass 123456 -storepass 123456 -keystore d:\cert.jks
,充满了我的名字和其他信息等。生成密钥对。
我看到很多YouTube视频和其他说明提到“genkey”而不是“genkeypair”,但此选项在此计算机上不可用。无论如何,我通过添加以下修改server.xml文件:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="D:\cert.jks" type="RSA" keystorePass="123456" />
</SSLHostConfig>
</Connector>
执行卡塔利娜configtest给了我这个:
04-Apr-2017 19:28:16.271 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["https-jsse-nio-443"]
java.lang.IllegalArgumentException: java.io.IOException: Keystore was tampered with, or password was incorrect
谢谢@EJP。请耐心等待我 - 第一次使用Tomcat。你的意思是,由于文件名是cert.jks,type的值应该是JKS?下面是来自server.xml模板的示例: SSLHostConfig> –
nh39
文件名与它无关。由于您在使用keytool时未指定备用密钥库类型,因此其生成的缺省值为JKS。我不知道为什么你重新发布了与我已经指出的相同的错误。 – EJP
感谢您的澄清。我发布的第二个只是server.xml中的原始模板。试图确保我正确理解它。对不起,如果它让你烦恼。 – nh39