tomcat实现SSL单、双向认证 学习笔记(2)双向认证
来源:互联网 发布:微型云计算设备 编辑:程序博客网 时间:2024/04/29 16:00
背景: 本笔记用于记录项目开发中,利用SSL 双向认证,的方式加密webservice 服务.
系统环境: Win7 | SUN JDK1.7.0_40| Tomcat7.0.42
浏览器: IE9, Firefox27.0.1
1. 生成证书
1.1生成服务端证书
keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.keystore-validity 365
1.2 生成客户端证书
keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystoreclient.p12 -validity 365
1.3 导出客户端证书
keytool -export -alias client-keystore client.p12 -storetype PKCS12 -storepass client -rfc -fileclient.cer
1.4 把客户端证书加入服务端证书信任列表
keytool -import -alias client -v -file client.cer -keystoretomcat.keystore
说明:
参数说明。这里提供的密码是服务端证书的存取密码。
1.5 导出服务端证书
keytool -export alias tomcat -keystore tomcat.keystore -storepass server-rfc -file tomcat.cer
说明:
把服务端证书导出。这里提供的密码也是服务端证书的密码。
1.6 生成客户端信任列表
keytool -import -file tomcat.cer -storepass server -keystoreclient.truststore -alias tomcat -noprompt
说明:
让客户端信任服务端证书
2. 配置服务端为只允许HTTPS连接
2.1 配置Tomcat 目录下的/conf/server.xml
<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150"scheme="https" secure="true" clientAuth="true" sslProtocol="TLS"keystoreFile="E:/tomcat.keystore" keystorePass="server"truststoreFile="E:/tomcat.keystore" truststorePass="server"/>
说明:
这段内容在server.xml里面,如果想使用https的默认端口443,请修改这里的port参数。其中的clientAuth="true"指定了双向证书认证。keystorePass为服务器端证书密码, keystoreFile为服务器端证书。
2.2 配置服务端项目web.xml
在
<login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <!-- Authorization setting for SSL --> <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>
说明:
这里限制了WEB service服务地址的访问必须为https连接。<url-pattern>要根据你的web service服务地址配置。
3、配置浏览器,安装证书,使其不再提示证书错误
3.1 安装客户端证书
双击1.2生成的client.p12文件,弹出如下窗口:
单击“下一步”,
单击“下一步”,
选择证书存放位置
单击完成,
单击“是(Y)”,证书导入成功。
这样tomcat 的SSL 双向认证就完成了。
4、调用webservice
4、1 设置环境,调用webservice.
System.setProperty("javax.net.ssl.trustStore","E:/client.truststore");
System.setProperty("javax.net.ssl.trustStorePassword","server");
System.setProperty("javax.net.ssl.keyStoreType","PKCS12");
System.setProperty("javax.net.ssl.keyStore","E:/client.p12");
System.setProperty("javax.net.ssl.keyStorePassword","client");
//info.acmr.com
URLurl = new URL("https://info.acmr.com:8443/infoapi/queryData?wsdl");
QName qname = newQName("http://infoapi.info.acmr.com/","InfoDataApiImplService");
Service service =Service.create(url, qname);
InfoDataApi client = service.getPort(InfoDataApi.class);
说明: InfoDataApi 和 InfoDataApiImplService 是用wsimport生成的WEB service客户端。
- tomcat实现SSL单、双向认证 学习笔记(2)双向认证
- tomcat实现SSL单、双向认证 学习笔记(1)单向认证
- SSL双向认证学习笔记
- SSL单双向认证
- SSL单双向认证
- tomcat 双向ssl认证
- tomcat+ssl双向认证
- eclipse实现SSL单/双向认证
- eclipse实现SSL单/双向认证
- tomcat实现SSL配置(双向认证)
- SSL双向认证Java实现 Tomcat篇
- SSL双向认证Java实现 Tomcat篇
- SSL双向认证Java实现 Tomcat篇
- SSL/TLS双向认证实现(JAVA、TOMCAT)
- TOMCAT SSL 双向认证配置(HTTPS)
- Tomcat配置SSL双向认证
- SSL双向认证Tomcat配置
- Nginx、Tomcat、SSL、双向认证
- SVN基本操作
- usb_modeswitch 中文README
- Web前端学习笔记:Bootstrap框架
- Ubuntu 12.04 下安装Apache 2.4.2
- web.xml 中主要元素及context-param --> listener --> filter --> servlet加载顺序
- tomcat实现SSL单、双向认证 学习笔记(2)双向认证
- css常用标签大全
- ld-linux.so.2
- 新站网站怎么做才能让百度秒收
- 如何选择不同的Hadoop发行版
- 微机课设——交通信号灯自动控制模拟指示系统
- 1、几种进程间的通信方式
- Hadoop发行版的比较与选择
- XML基础知识