開啟Tomcat https服務
發布企業級應用的時候遇到一個問題,就是IOS7.1之後app的下載地址URL必須是https開頭的協議,所以服務器必須支持https協議。
實驗環境:Mac OSX 或者 win7,Tomcat 7.0,JDK 1.7
一.環境搭建
1.安裝tomcat
a.下載地址:http://tomcat.apache.org/download-70.cgi
b.下載你機器的Tomcat版本
2.安裝JDK
tomcat需要安裝與其配套的JDK否則無法運行。
配置tomcatJDK路徑
4運行測試tomcat
浏覽器中輸入:http://localhost:8080
如果出現了tomcat的歡迎頁面說明配置正確了,如果浏覽器為空白說明你配置錯誤,你應該檢查控制台輸出的錯誤或警告信息,然後進行改正。
5、安裝vcredist_x86
這個的東西是安裝openssl的環境,安裝oenssl前需安裝此環境。
6、安裝openssL
a網上搜索Win32OpenSSL-1_0_1g.exe,下載一個。
一路下一步,選擇安裝路徑進行安裝 (我選擇的是D:\OpenSSL-Win32\)
二、制作自簽名 CA 證書(根證書)
CA 證書的制作有兩個步驟:
1、創建一個私鑰文件:
openssl genrsa -out myCA.key 2048
私鑰文件名為 myCA.key。
2、然後創建根證書:
openssl req -x509 -new -key myCA.key -out myCA.cer -days 730 -subj /CN="My CustomCA"
根證書文件名為 myCA.cer,機構名稱為 My Custom CA。
三、制作自簽名 SSL 證書(葉證書)
1、首先創建一個私鑰:
openssl genrsa -out server.key 2048
私鑰文件名為 server.key。
2、然後創建 CSR:
openssl req -new -out server.req -key server.key -subj /CN=127.0.0.1/CN=192.168.31.128/CN=localhost
這裡假設服務器的IP 為192.168.2.1。輸出文件為 server.req。
3、然後用CSR 去創建 SSL 證書:
openssl x509 -req -in server.req -out server.cer -CAkey myCA.key -CA myCA.cer -days 36500 -CAcreateserial -CAserial server.serial
這裡我們假設有效期為100年,輸出文件為 server.cer,序號文件為 server.serial(撤銷證書時使用)。
4、將 .key 和 .cer 文件導出為 .p12 證書:
openssl pkcs12 -export -in server.cer -inkey server.key -out server.p12 -name "server"
根據命令提示,需要輸入兩次證書密碼。這裡我們假設密碼為 keypass。輸出文件名為 server.p12。
5、將 .p12 文件導入到 java keystore 中:
keytool -importkeystore -v -srckeystore server.p12 -srcstoretype pkcs12 -srcstorepass keypass -destkeystore server.keystore -deststoretype jks -deststorepass keypass
這裡我們假設 keystore 文件名為 server.keystore,keystore 密碼為 keypass。
四、使用 SSL 證書
將最後得到的 keystore 文件 (server.keystore) 放在 web 服務器上。例如 Tomcat 目錄的 conf 目錄下。
然後修改 server.xml:
<Connectorport="8443" protocol="org.apache.coyote.http11.Http11Protocol"SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="D:/CA/server.keystore" keystorePass=" keypass "
clientAuth="false" sslProtocol="TLS" />
重啟 Tomcat,通過以下地址訪問 https 服務:
https://localhost:8443/ 或者 https://192.168.2.1:8443/。