開啓Tomcat https服務java
發佈企業級應用的時候遇到一個問題,就是IOS7.1以後app的下載地址URL必須是https開頭的協議,因此服務器必須支持https協議。web
實驗環境:Mac OSX 或者 win7,Tomcat 7.0,JDK 1.7redis
一.環境搭建
1. 安裝tomcat
a.下載地址:http://tomcat.apache.org/download-70.cgiapache
b.下載你機器的Tomcat版本
2. 安裝JDK瀏覽器
tomcat須要安裝與其配套的JDK不然沒法運行。tomcat
2、製做自簽名 CA 證書(根證書)服務器
CA 證書的製做有兩個步驟:app
一、建立一個私鑰文件:測試
openssl genrsa -out myCA.key 2048server
私鑰文件名爲 myCA.key。
二、而後建立根證書:
openssl req -x509 -new -key myCA.key -out myCA.cer -days 730 -subj /CN="My CustomCA"
根證書文件名爲 myCA.cer,機構名稱爲 My Custom CA。
3、製做自簽名 SSL 證書(葉證書)
一、首先建立一個私鑰:
openssl genrsa -out server.key 2048
私鑰文件名爲 server.key。
二、而後建立 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。
三、而後用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(撤銷證書時使用)。
四、將 .key 和 .cer 文件導出爲 .p12 證書:
openssl pkcs12 -export -in server.cer -inkey server.key -out server.p12 -name "server"
根據命令提示,須要輸入兩次證書密碼。這裏咱們假設密碼爲 keypass。輸出文件名爲 server.p12。
五、將 .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。
4、使用 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/。