Java Tomcat上的证书配置
首先,我知道已经有人问过类似的问题,我尝试按照建议进行故障排除,但没有任何运气。所以,我认为我最好还是发帖子寻求帮助。提前感谢您的帮助 问题:我做错了什么?我应该检查什么/哪里 目标:我正在尝试在Tomcat上设置证书。我有Tomcat 8.5,%JAVA\u HOME%=“C:\Program Files\JAVA\jdk1.8.0\u 121”和我用以下命令生成的证书:Java Tomcat上的证书配置,java,tomcat,ssl-certificate,tomcat8,keytool,Java,Tomcat,Ssl Certificate,Tomcat8,Keytool,首先,我知道已经有人问过类似的问题,我尝试按照建议进行故障排除,但没有任何运气。所以,我认为我最好还是发帖子寻求帮助。提前感谢您的帮助 问题:我做错了什么?我应该检查什么/哪里 目标:我正在尝试在Tomcat上设置证书。我有Tomcat 8.5,%JAVA\u HOME%=“C:\Program Files\JAVA\jdk1.8.0\u 121”和我用以下命令生成的证书: keytool -genkeypair -alias cert -keyalg RSA -keysize 2048 -si
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>
问题就在这里。密钥库类型是JKS,而不是RSA1。密钥对类型为RSA
您可能还必须将密钥对/证书项重命名为“tomcat”或tomcat 8中的默认值,或者告诉tomcat使用别名“cert”(糟糕的选择)
keytool
指定任何其他类型FWIW,我可以让它与HTTP/1.1协议一起工作-更简单 基本上,被取代了
<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>
用这个
<Connector port="443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clienAuth="false" sslProtocol="TLS" keystoreFile="/conf/.keystore" keystorePass="123456" />
继续阅读更多关于Tomcat和商店类型的内容。这里有一条有趣的线索:谢谢@EJP。请在这里耐心等待我-第一次使用Tomcat。您的意思是,既然文件名是cert.jks,type的值应该是jks吗?下面是server.xml模板的示例:文件名与此无关。由于在使用keytool时没有指定备用密钥库类型,因此它生成的默认密钥库类型是JKS。我不知道你为什么要发布与我已经指出的错误相同的摘录。谢谢你的澄清。我第二次发布的只是server.xml中的原始模板。只是想确保我理解正确。抱歉,如果这让你生气了。你应该在第一时间发布,或者当你重新发布时,你应该说明原因。否则就毫无意义了。你已经发布了,我也引用了。再次感谢你的帮助。再次抱歉,你对我所做的感到恼火。虽然投票结果为“-1”,但我发现这个回答很有用
<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>
<Connector port="443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clienAuth="false" sslProtocol="TLS" keystoreFile="/conf/.keystore" keystorePass="123456" />