开启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/。