tomcat 完美配置Tomcat的HTTPS

編程語言 Tomcat Java Java虛擬機 專注JavaWeb開發 專注JavaWeb開發 2017-09-11

1創建證書

囉嗦幾句:證書是單點登錄認證系統中很重要的一把鑰匙,客戶端於服務器的交互安全靠的就是證書;本教程由於是演示所以就自己用JDK自帶的keytool工具生成證書;如果以後真正在產品環境中使用肯定要去證書提供商去購買。

tomcat 完美配置Tomcat的HTTPS

記住 cmd一定要用管理員運行

第一步:用JDK自帶的keytool工具生成證書:

cmd命令:keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/chlkey

您的名字與姓氏這裡寫域名或者lcoalhost

tomcat 完美配置Tomcat的HTTPS

然後配置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 文件。

此時 已經可以訪問了 不過請繼續往下面看:

tomcat 完美配置Tomcat的HTTPS

第三步、導出crt證書

keytool -export -file d:/keys/chl.crt -alias wsria -keystore d:/keys/chlkey

tomcat 完美配置Tomcat的HTTPS

特別提示:如果提示:

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是剛剛第一步起的別名 成功如下

tomcat 完美配置Tomcat的HTTPS

然後就是不需要了 就可以刪除這個證書了 刪除命令是:

刪除證書 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就可以了

大功告成 !!!

相關推薦

推薦中...