• 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 123456 -keystore server.keystore 
    keytool -import -file server.cer -storepass 123456 -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 123456 -keystore client.keystore 
    keytool -import -file client.cer -storepass 123456 -keystore server.truststore -alias clientkey -noprompt
    keytool命令记录
    1、生成服务器端私钥kserver.keystore文件 2、根据私钥,导出服务器端安全证书 3、将服务器端证书,导入到客户端的Trust KeyStore中 4、生成客户端私钥kclient.keystore文件 5、根据私钥,导出客户端安全证书 6、将客户端证书,导入到服务器端的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");
  • 相关阅读:
    echarts二维坐标这样写出立体柱状图
    echarts中使图表循环显示tooltip-封装tooltip的方法轮询显示图表数据
    webpack--运行npm run dev自动打开浏览器以及热加载
    exports、module.exports和export、export default到底是咋回事,区别在哪里
    H5页面判断客户端是iOS或是Android并跳转对应链接唤起APP
    关于页面锚点跳转以及万能锚点跳转插件
    echarts Map 省份文字居中,即对应地图中心位置
    Moment.js 常见用法,常见API
    Tomcat 不加载图片验证码
    Cglib 动态代理
  • 原文地址:https://www.cnblogs.com/linjian/p/4829509.html
Copyright © 2020-2023  润新知