tomcat 完美配置Tomcat的HTTPS
1創建證書
囉嗦幾句:證書是單點登錄認證系統中很重要的一把鑰匙,客戶端於服務器的交互安全靠的就是證書;本教程由於是演示所以就自己用JDK自帶的keytool工具生成證書;如果以後真正在產品環境中使用肯定要去證書提供商去購買。
記住 cmd一定要用管理員運行
第一步:用JDK自帶的keytool工具生成證書:
cmd命令:keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/chlkey
您的名字與姓氏這裡寫域名或者lcoalhost
然後配置tomcat的server.xml
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystorefile="D:\keys\chlkey" keystorepass="changeit"/>
此時啟動tomcat會報錯 如下 發生的原因是 即使配置了 keystorefile ,C盤下也還需要一個 .keystore 文件
嚴重: Failed to load keystore type JKS with path C:\Users\HONGLINCHEN/.keystore
due to Illegal character in opaque part at index 2: C:\Users\HONGLINCHEN/.keysto
re
java.lang.IllegalArgumentException: Illegal character in opaque part at index 2:
C:\Users\HONGLINCHEN/.keystore
解覺錯誤 看第二步
第二步:
cmd命令 keytool -genkey -alias wsria -keyalg RSA
wsria 是上一個命令中的別名
如要輸入密碼:輸入: changeit
剩下的就填填就好了(有建議說名子和姓氏不要用 IP ,要用域名),完成後 C:\Documents and Settings\Administrator 下面就會生成
.keystore 文件。
此時 已經可以訪問了 不過請繼續往下面看:
第三步、導出crt證書
keytool -export -file d:/keys/chl.crt -alias wsria -keystore d:/keys/chlkey
特別提示:如果提示:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
那麼請輸入密碼:changeit
至此導出證書完成,可以分發給應用的JDK使用了
第四步為客戶端的JVM導入證書(其實不導入這個也可以,只要上面1,2步就可以https訪問) 這一步一定要用管理員cmd運行 否則會報錯 拒絕訪問 因為jdk在c盤
導入jdk 庫中 keytool -import -keystore "C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\cacerts" -file D:/keys/chl.crt -alias wsria
注意jdk的位置 是jdk下面的jre 下面的lib 後面wsria是剛剛第一步起的別名 成功如下
然後就是不需要了 就可以刪除這個證書了 刪除命令是:
刪除證書 keytool -delete -alias wsria -keystore "C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\cacerts" -storepass changeit
changeit是上面設置的密碼
tomcat啟用SSL 443端口是默認端口 訪問不用帶端口號類似於https://www.sincerain.com/
如果用的是8443則需要這樣https://www.sincerain.com:8443
如果tomcat設置是443啟動報443端口已被佔用,可以查找進程
netstat -ano 列出所有端口情況。
netstat -aon|findstr "443" 查看443端口。
找到443端口對應的應用程序pid為15964
然後
tasklist|findstr "15964"
taskkill /f /t /im VisualSVNServer.exe 殺掉重啟tomcat就可以了
大功告成 !!!