tomcat之https配置(生成證書)
升級https需要購買SSL證書之類的,但是在公司開發環境下沒有自己的域名,所以只能在本地使用java的Keytool命令生成一個。
生成ssl證書
1. 管理員打開cmd窗口,輸入
keytool -genkey -alias tomcat -keyalg RSA -keystore Z:\WorkSpace\Plugins\Tomcat\ssl\tomcat.keystore -validity 36500
keytool 是jdk中的工具,位置在D:\tools\jdk\bin中。若未配置環境變量,可在bin文件夾中啟動cmd,運行該代碼。
“Z:\WorkSpace\Plugins\Tomcat\ssl\tomcat.keystore” 含義是證書文件保存位置,證書文件名稱是tomcat.keystore ;
“-validity 36500” 含義是證書有效期,36500表示100年,默認值是90天。
2. 輸入密鑰庫口令
輸入密鑰庫密碼:此處需要輸入大於6個字符的字符串,例如abc123
3. 輸入兩次通過后,彈出以下問題:
"您的名字與姓氏是什么?" 這是必填項,並且必須是TOMCAT部署主機的域名或者IP [如:baidu.com 或者 127.0.0.1],就是你將來要在瀏覽器中輸入的訪問地址;
其他得問題可填可不填,最后對照信息正確則輸入y,不正確打算重來則輸入n。
4. 輸入密鑰口令
密鑰庫口令,這里我理解的是tomcat的主密碼,會在tomcat配置文件中使用,建議輸入與keystore的密碼一致,設置其它密碼也可以生成完成,可在指定目錄下找到證書文件。
配置tomcat
1. 修改server.xml
a. 打開tomcat目錄下conf/server.xml文件,修改如下
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="800" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="D:/tools/tomcat-8.0/ssl/tomcat.keystore" keystorePass="123456"/>
在這里我是新增加了443的Connector,也可以取消8443的Connector,增加“keystoreFile”和“keystorePass”。
其中keystoreFile是證書存放的路徑,keystorePass為生成證書時輸入的密碼。
b. 修改需要重定向的端口,我這里用的是8080。
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="200000" redirectPort="443" URIEncoding="utf-8" compression="on" compressionMinSize="1024" maxPostSize="-1" disableUploadTimeout="false" />
例子:
2. 修改web.xml
a. 打開conf/web.xml
在最后增加以下代碼:
<login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection> <web-resource-name>SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
至此tomcat配置完成,啟動tomcat即可使用ssl,在瀏覽器輸入localhost:8080
Tomcat配置完成后,使用Https訪問,Chrome會提示安全警告,點擊“高級”,繼續訪問即可,之后再https下使用ip地址訪問是沒有問題的。
注意:若端口443被占用頁面會出現403報錯,可改為8443測試
注意:tomcat無法配置代理,可在前端寫死路徑訪問后端,但建議需要代理使用nginx
參考自:https://blog.csdn.net/qq_31832209/article/details/111309586 @強
鑽研不易,轉載請注明出處。。。。。。