Java 與 Tomcat 搭配的加密連線:HTTPS 雙向認證
阿新 • • 發佈:2018-12-27
今天遇到的任務是要讓Tomcat 7 支援ssl, schema 從 http 改走 https.
Step 1: 為伺服器產生簽章庫
keytool -genkey -v -alias tomcat -keyalg RSA -validity 10000 -keystore ./tomcat.keystore -dname "CN=localhost,OU=my,O=my,L=Taipei,ST=Taiwan,c=TW" -storepass changeit -keypass changeit
執行完會多一個檔案。
Step 2:修改 Tomcat 目錄下的 conf/server.xml:
找到 <Connector port=”8443″ … 這部份的設定應該是被註解掉了,把註解拿掉! 並且加上 keystoreFile 及 keystorePass 兩個屬性,內容值當然就依第一步驟產生的填入。
<Connector port=”8443″ protocol=”org.apache.coyote.http11.Http11Protocol”
maxThreads=”150″ SSLEnabled=”true” scheme=”https” secure=”true”
keystoreFile=“/Users/max/Documents/settings/tomcat.keystore” keystorePass=“changeit” keyAlias=“tomcat”
clientAuth=”false” sslProtocol=”TLS” />
醬子就完成了,耶真的連上去了。
我之前試了其他篇文章,發現 keystorePass=“changeit” 的密碼不知道該用 -keypass 還是用 storepass,所以最佳解法就是這2組pass 都設成一樣的,不然會出現下面的Error.
SEVERE: Failed to initialize end point associated with ProtocolHandler [
"http-bio-8443"
]
java.io.IOException: Cannot recover key