轉載:http://www.cnblogs.com/sixiweb/p/3339698.htmlhtml
1.1 生成keystore文件及導出證書web
打開控制檯:windows
運行:tomcat
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
按照要求一步步的輸入信息,問你國家/地區代碼的時候,輸入cn。網站
輸入密碼的時候,這裏使用:changeiturl
最後一步讓你輸入的時候,直接回車。code
具體記錄以下:server
C:\Users\Administrator>%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSAxml
輸入密鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什麼?
[Unknown]: tuhao
您的組織單位名稱是什麼?
[Unknown]: tuhaojia
您的組織名稱是什麼?
[Unknown]: fnic
您所在的城市或區域名稱是什麼?
[Unknown]: didu
您所在的省/市/自治區名稱是什麼?
[Unknown]: didu
該單位的雙字母國家/地區代碼是什麼?
[Unknown]: cn
CN=tuhao, OU=tuhaojia, O=fnic, L=didu, ST=didu, C=cn是否正確?
[否]: yhtm
輸入 <tomcat> 的密鑰口令
(若是和密鑰庫口令相同, 按回車):
這裏你要直接按回車。
完畢後會在當前目錄下,會產生一個:.keystore文件,將它拷貝到tomcat的bin目錄下。
從控制檯進入tomcat的bin目錄,本機環境是:D:\Tomcat7\bin>
導出證書文件:
D:\Tomcat7\bin>keytool -selfcert -alias tomcat -keystore .keystore
輸入密鑰庫口令:(此處爲上面生成證書時輸入的changeit)
D:\Tomcat7\bin>keytool -export -alias tomcat -keystore .keystore -storepass changeit -rfc -file tomcat.cer
存儲在文件 <tomcat.cer> 中的證書
此時會在D:\Tomcat7\bin>下生成tomcat.cer證書文件。將該文件發給使用者,讓他們安裝該證書,並將證書安裝在「受信任的根證書頒發機構」區域中。具體的操做步驟能夠參照鐵道部12306.cn網站證書的安裝步驟。它們是同樣同樣同樣的。
1.2 配置tomcat
打開$CATALINA_BASE/conf/server.xml
找到「SSL HTTP/1.1 Connector」 那一塊,取消註釋並將它改爲:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="bin/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
請注意,這裏我已經將tomcat的端口改爲了80,相應的,https的端口我也改爲了443(即默認的https端口)。
修改windows機器的host文件,增長一行(個人機器的ip是192.168.68.75):
192.168.68.75 tuhao
接下來重啓tomcat,用https://tuhao/訪問網站驗證一下就好了。
在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>