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");
  • 相关阅读:
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31
    知也atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31无涯 - I
  • 原文地址:https://www.cnblogs.com/linjian/p/4829509.html
Copyright © 2011-2022 走看看