1、生成伺服器端證照檔案
keytool -genkey -alias tomcat -keyalg RSA -keystore /root/cert/tomcat.keystore -validity 36500
引數簡要說明:“/root/cert/tomcat.keystore”是證照檔名 ;“-validity 36500”含義是證照有效期,36500表示100年,預設值是90天
Enter keystore password: [password]
Re-enter new password: [password]
What is your first and last name?
[Unknown]: test.xxx.cn
What is the name of your organizational unit?
[Unknown]: xxx.cn
What is the name of your organization?
[Unknown]: xxx
What is the name of your City or Locality?
[Unknown]: shanghai
What is the name of your State or Province?
[Unknown]: shanghai
What is the two-letter country code for this unit?
[Unknown]: zh
Is CN=test.xxx.cn, OU=xxx.cn, O=xxx, L=shanghai, ST=shanghai, C=zh correct?
[no]: yes
Enter key password for <[password]>
(RETURN if same as keystore password): 這裡建議不輸入密碼,直接回車
2、配置TOMCAT伺服器
開啟$CATALINA_HOME/conf/server.xml,修改如下,
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改引數=>
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
-->
去掉註釋且修改引數=>
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat.keystore" keystorePass="[password]"/>
註釋:標識為淡藍色的兩個引數,分別是證照檔案的位置和證照密碼,在證照檔案生成過程中做了設定
<!--
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
-->
修改引數=>
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />
(3) 開啟$CATALINA_HOME/conf/web.xml,在該檔案末尾增加:
2.強制https訪問
在tomcat\conf\web.xml中的</welcome-file-list>後面加上這樣一段:
<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>
3、上述配置完成後,重啟TOMCAT後即可以使用SSL。IE位址列中可以直接輸入地址不必輸入“http://” 或者 “https://” ;也可以輸入 “http:// ” 會跳轉成為 “https://” 來登入
4、注意事項:
(1) 生成證照的時間,如果IE客戶端所在機器的時間早於證照生效時間,或者晚於有效時間,IE會提示“該安全證照已到期或還未生效”
(2) 如果IE提示“安全證照上的名稱無效或者與站點名稱不匹配”,則是由生成證照時填寫的伺服器所在主機的域名“您的名字與姓氏是什麼?”/“What is your first and last name?”不正確引起的
--------------------------------------------------------
如果要用於阿里雲的SLB,需要再處理一下。
以對應生成的 tomcat.keystore、密碼tomcat,別名tomcat,test.xxx.cn證照 為例
1、從JKS的keystore中匯出public key (certificate)
keytool -export -alias tomcat -keystore tomcat.keystore -file test.crt
2、轉換成PEM格式
openssl x509 -out wx-dev.crt -outform pem -text -in test-pem.crt -inform der
3、匯出private key
java ExportPriv tomcat.keystore tomcat tomcat > test-pkcs8.key
4、轉成RSA格式的私鑰
openssl rsa -inform PEM -in test-pkcs8.key -out test-pem.key
阿里雲伺服器證照配置,需要 test-pem.crt(公鑰)和test-pem.key(私鑰),在負載均衡(SLB)裡的證照管理介面
5、補充:可以把得到的public key(certificate) 和private key打包在一起,轉換成windows平臺常用的PKCS12格式
openssl pkcs12 -export -out test.pfx -inkey test-pem.key -in wx-dev-pem.crt
密碼 tomcat
如果透過阿里雲SLB配置https,還有更簡單的辦法,參見連結:
http://www.cnblogs.com/lavezhang/p/6277185.html