Tomcat8 配置:
1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源
2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址
如果只是加密,我感觉单向就行了。
如果想要用系统的人没有证书就访问不了系统的话,就采用双向
单向配置:
第一步:为服务器生成证书
使用 jdk 的 keytool 为 Tomcat 生成证书,假定目标机器的域名是" localhost ", keystore 文件存放在" C:\tomcat.keystore ",口令为" password ",使用如下命令生成:
sh
keytool -genkey -v -alias tomcat -keyalg RSA -validity 3650 -keystore c:\tomcat.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,c=cn"
-storepass password -keypass password
保存证书到tomcat.cer
sh
keytool -export -alias tomcat -keystore c:\tomcat.keystore -file c:\tomcat.cer -storepass password
第二步:配置Tomcat 服务器
打开Tomcat 根目录下的 /conf/server.xml ,找到如下配置段,修改如下:
xml
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="C:/tomcat.keystore" keystorePass="password" />
将默认http转换为https
应用程序的web.xml 可以加上这句话: 具体web系统 (也可是Tomcat下的conf/web.xml)
xml
<!-- Authorization setting for SSL -->
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<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>
将 URL 映射设为 /* ,这样你的整个应用都要求是 HTTPS 访问,而 transport-guarantee 标签设置为 CONFIDENTIAL 以便使应用支持 SSL。
如果你希望关闭 SSL ,只需要将 CONFIDENTIAL 改为 NONE 即可
参考博客:
http://blog.csdn.net/keketrtr/article/details/52869173
http://blog.csdn.net/zhangxing52077/article/details/72827770