首先,我知道有類似的問題已經提出,我試圖按照建議排除故障,但沒有運氣。所以,我認爲我最好只是發佈求助信息。預先感謝您的幫助。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