zoukankan      html  css  js  c++  java
  • 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");
  • 相关阅读:
    UVA 11374 Airport Express (最短路)
    UVA Live 3713 Astronauts (2-SAT)
    UVALive 3211 Now or Later (2-SAT)
    UVA 11324 The Largest Clique (强连通分量,dp)
    UVALive 4287 Proving Equivalence (强连通分量)
    UVA1665 Islands (并查集)
    UVA 1664 Conquer a New Region (Kruskal,贪心)
    UVA
    Gym 100342F Move to Front (树状数组动态维护和查询)
    Gym 100342E Minima (暴力,单调队列)
  • 原文地址:https://www.cnblogs.com/linjian/p/4829509.html
Copyright © 2011-2022 走看看