Tomcat https
基本步骤就2步:
生成证书,配置证书。
E:\my work\Java\jdk1.7.0\bin>keytool -v -genkey -alias tomcat -keyalg RSA -keyst ore e:/tomcat.keystore -validity 36500 输入密钥库口令: 再次输入新口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: localhost 您的组织单位名称是什么? [Unknown]: 您的组织名称是什么? [Unknown]: 您所在的城市或区域名称是什么? [Unknown]: 您所在的省/市/自治区名称是什么? [Unknown]: 该单位的双字母国家/地区代码是什么? [Unknown]: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确? [否]: y 正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 36,50 0 天): CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 输入 <tomcat> 的密钥口令 (如果和密钥库口令相同, 按回车): [正在存储e:/tomcat.keystore] E:\my work\Java\jdk1.7.0\bin>
证书生成后,打开tomcat server.xml下面的以下注释,并增加 keystoreFile和keystorePass属性。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="E:/tomcat.keystore" keystorePass="123456" />
可以在浏览器中试试,成功。
生成用于认证的证书:
E:\my work\Java\jdk1.7.0\bin>keytool -export -alias tomcat -file e:/file.cer -ke ystore e:/tomcat.keystore -validity 36500 输入密钥库口令: 存储在文件 <e:/file.cer> 中的证书 E:\my work\Java\jdk1.7.0\bin>
导入证书:
到jre的security目录输入:
E:\my work\Java\jdk1.7.0\jre\lib\security>keytool -import -alias cacerts -keysto re cacerts -file e:\file.cer -trustcacerts
在web.xml中配置所有的请求都以https的方式处理:
<security-constraint> <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>
然后我们访问:http://localhost:8080/test就会自动转向到https://localhost:8443/test
注:安装证书的时候选择受信任的颁发机构就可以去除红叉
文章参考:http://www.blogjava.net/stevenjohn/archive/2012/09/26/388600.html