webservice ssl双向认证配置
1、在tomcat中安装axis2插件
2、生成证书,用jdk自带的keytool
服务端
keytool -genkey -alias Server -dname "CN=192.168.10.100, OU=JH, O=JH, L=HangZhou, S=ZheJiang, C=CN" -keystore server.keystore -keyalg RSA
keytool -export -alias Server -file server.cer -storepass -keystore server.keystore
keytool -import -file server.cer -storepass -keystore client.truststore -alias serverkey -noprompt 客户端
keytool -genkey -alias Client -dname "CN=192.168.10.101, OU=JH, O=JH, L=HangZhou, S=ZheJiang, C=CN" -keystore client.keystore -keyalg RSA
keytool -export -alias Client -file client.cer -storepass -keystore client.keystore
keytool -import -file client.cer -storepass -keystore server.truststore -alias clientkey -noprompt
keytool命令记录
、生成服务器端私钥kserver.keystore文件
、根据私钥,导出服务器端安全证书
、将服务器端证书,导入到客户端的Trust KeyStore中 、生成客户端私钥kclient.keystore文件
、根据私钥,导出客户端安全证书
、将客户端证书,导入到服务器端的Trust KeyStore中
CN--ip或者域名
3、修改tomcat-->conf-->server.xml配置,添加
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="C:\\tomcat\\keystore\\server.keystore"
keystorePass="123456"
truststoreFile="C:\\tomcat\\keystore\\server.truststore"
truststorePass="123456"
clientAuth="true" sslProtocol="TLS" />
port-->https端口
SSLEnabled="true"启用SSL认证
keystoreFile-->keystore文件存储的位置 keystorePass-->keystore文件密码
truststoreFile-->truststore文件存储的位置 truststorePass-->truststore文件存储的位置
clientAuth="true" 双向认证 "false"单向认证
4、如果有需求对所有的请求都适用https访问的话,需要修改tomcat-->conf-->web.xml配置,添加
<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-pattern根据自己的需求进行修改,也可以在axis2中的web.xml进行相同配置
5、对Axis2进行配置,修改tomcat-->webapps-->axis2-->WEB-INF-->conf-->web.xml,添加
<transportReceiver name="https" class="org.apache.axis2.transport.http.AxisServletListener">
<parameter name="port">8443</parameter>
</transportReceiver>
<transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding">chunked</parameter>
</transportSender>
6、在程序中添加代码指定证书位置,在xxxxFactory类的getXXXStub方法中调用客户端的代码之前加上:
System.setProperty("javax.net.ssl.keyStore","/Users/linjian/Desktop/keystores/test/client.keyStore");
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
System.setProperty("javax.net.ssl.trustStore","/Users/linjian/Desktop/keystores/test/client.truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "123456");
webservice ssl双向认证配置的更多相关文章
- nginx支持ssl双向认证配置
nginx支持ssl双向认证配置 listen 443; server_name test.com; ssl on; ssl_certificate server.crt; //server端公钥 s ...
- apache用户认证,ssl双向认证配置
安装环境: OS:contos 6.4 httpd:httpd-2.2.15-59.el6.centos.i686.rpm openssl:openssl-1.0.1e-57.el6.i686.rpm ...
- Apache服务器SSL双向认证配置
以Win32版Apache与OpenSSL为例,介绍从创建数字证书到Apache配置的整个过程,希望对读者有所帮助. Apache是目前最流行的WEB服务器之一,借助OpenSSL库,我们可以在Apa ...
- Nginx、SSL双向认证、PHP、SOAP、Webservice、https
本文是1:1模式,N:1模式请参见新的一篇博客<SSL双向认证(高清版)> ----------------------------------------------------- 我是 ...
- tomcat配置SSL双向认证
一.SSL简单介绍 SSL(Secure Sockets Layer 安全套接层)就是一种协议(规范),用于保障客户端和服务器端通信的安全,以免通信时传输的信息被窃取或者修改. 怎样保障数据传输安全? ...
- NGINX 配置 SSL 双向认证
对于 NGINX 的 HTTPS 配置,通常情况下我们只需要实现服务端认证就行,因为浏览器内置了一些受信任的证书颁发机构(CA),服务器端只需要拿到这些机构颁发的证书并配置好,浏览器会自己校验证书的可 ...
- Nginx配置客户端SSL双向认证
对于 NGINX 的 HTTPS 配置,通常情况下我们只需要实现服务端认证就行,因为浏览器内置了一些受信任的证书颁发机构(CA),服务器端只需要拿到这些机构颁发的证书并配置好,浏览器会自己校验证书的可 ...
- SSL双向认证(高清版)
介绍了SSL双向认证的一些基本问题,以及使用Nginx+PHP基于它搭建https的Webservice. 之前的方式只是实现1:1的模式,昨天同事继续实现了n:1的模式,这里我再整理记录下. 由于n ...
- ssl双向认证
ssl双向认证 一.背景知识 1.名词解释 ca.key: 根证书的私钥 , ca.crt: 根证书的签名证书 server.key, server.crt client.key, client.cr ...
随机推荐
- tmux下vim颜色不正常问题
在解决了tmux下,make menuconfig颜色不正常问题https://www.cnblogs.com/zqb-all/p/9702582.html后,引入了新的问题,vim颜色错乱. 尝试了 ...
- python几个重要的函数(lambda,filter,reduce,map,zip)
一.匿名函数lambda lambda argument1,argument2,...argumentN :expression using arguments 1.lambda是一个表达式,而不是一 ...
- centos7.3安装caffe出现错误:/bin/ld: cannot find -lcblas /bin/ld: cannot find -latlas
安装caffe时需要依赖库atlas,可使用yum -y install atlas-devel 安装,但是安装之后还是有可能出现错误: /bin/ld: cannot find -lcblas / ...
- mvvm command的使用案例
主界面如下: 前台代码: <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.mic ...
- django日志的设置
关于django的日志设置详细可以看下官方文档:https://yiyibooks.cn/xx/Django_1.11.6/topics/logging.html 示例: # 日志文件配置 LOGGI ...
- python中的三元表达式
if B = True: return A else: return C 用三元表达式可以写成: return A if B else C
- 磁盘挂载MOUNT 445问题集
挂载磁盘mount -t cifs -o username="Administrator",password="123@qq" //192.168.100.4/ ...
- (3)python 列表和元组
列表 元组 字段 等都是一种数据结构.其中列表和元组比较相似都是顺序保存的,都可以通过索引来找到元素. 列表和元组的主要区别:列表是可以修改的,元组不可以修改.列表用[]表示,元组用()表示 一.列表 ...
- 组合数学+错排问题【p4071】[SDOI2016]排列计数
Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是 ...
- Milk Pails(BFS)
Milk Pails 时间限制: 1 Sec 内存限制: 64 MB提交: 16 解决: 4[提交][状态][讨论版] 题目描述 Farmer John has received an order ...