我有 2 個由 CA 簽署的憑證。我想使用這些憑證在 tomcat 上啟用 ssl。
我運行以下命令來建立 jks 檔案並將憑證匯入到該 jks 檔案中。
1. keytool -genkey -alias bmark.com -keyalg RSA -keystore keystore.jks
2. keytool -import -alias root -keystore keystore.jks -trustcacerts -file b32dasd75493.crt
3. keytool -import -alias intermed -keystore keystore.jks -trustcacerts -file sf_bundle-g2-g1.crt
並在tomcat的server.xml中啟用https
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/Users/test/Desktop/keystore.jks" keystorePass="changeme"/>
啟動tomcat並開啟urlhttps://bmark.com:8080在 Chrome 中,但它聲稱 CA 簽署的 SSL 憑證不受信任,聲稱它是自簽署的。除了這些文件之外我還需要其他文件嗎?我該如何解決這個問題?
答案1
若要檢查 CA 回應是否已正確安裝,請執行:
keytool -list -keystore /Users/test/Desktop/keystore.jks -alias bmark.com -v
它應該向您顯示從葉到根的證書鏈。
在您的連接器定義中,您沒有指定鍵別名,因此使用找到的第一個憑證。將其更改為:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/Users/test/Desktop/keystore.jks"
keystorePass="changeme"
keyAlias="bmark.com" />
或者,如果您正在使用雄貓8.5(你不應該使用Tomcat 8.0),切換到新的 SSL 配置:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" scheme="https" secure="true" SSLEnabled="true">
<SSLHostConfig protocols="TLS">
<Certificate certificateKeystoreFile="/Users/test/Desktop/keystore.jks"
certificateKeystorePassword="changeme"
certificateKeyAlias="bmark.com" />
</SSLHostConfig>
</Connector>
編輯:要安裝所有三個證書,您只需要一個包含證書和中間體的文件(按從乾燥到根的順序)並運行:
keytool -importcert -keystore /Users/test/Desktop/keystore.jks\
-alias bmark.com -file <chain_file> -trustcacerts
或者您可以從根到莖分開插入。