`
西门吹牛
  • 浏览: 227838 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

cxf证书式安全验证

 
阅读更多
无责任声明:防止原帖消失还是挪过来吧,原帖地址http://my.oschina.net/XYleung/blog/81790

第一步 生成可用的数字证书
使用命令行打开您要生成数字证书的路径

生成证书还是比较麻烦的,要用到jdk的一个工具——keytool
首先,创建客户端KeyStore和公钥
在命令行运行:
1、创建私钥和KeyStore: keytool -genkey -alias clientprivatekey -keypass keypass -keystore Client_KeyStore.jks -storepass storepass -dname "CN=tongtech.com,C=CN" -keyalg RSA 


创建KeyStore,文件名字为Client_KeyStore.jks,里面有个名为clientprivatekey的私钥。
2、给私钥进行自签名: keytool -selfcert -keystore Client_KeyStore.jks -storepass storepass -alias clientprivatekey -keypass keypass 


签名成功,无任何提示。
3、导出私钥
作用是导出的证书将作为公钥保存到TrustStore中。 keytool -export -alias clientprivatekey -file Client_PublicCert.cer -keystore Client_KeyStore.jks -storepass storepass 


如果成功,可以看到提示:
保存在文件中的认证 <Client_PublicCert.cer>
然后创建服务端KeyStore
1、创建私钥和KeyStore
keytool -genkey -alias serverprivatekey -keypass keypass -keystore Server_KeyStore.jks -storepass storepass -dname "CN=tongtech.com,C=CN" -keyalg RSA 


2、给私钥进行自签名
keytool -selfcert -keystore Server_KeyStore.jks -storepass storepass -alias serverprivatekey -keypass keypass 


3、导出私钥
keytool -export -alias serverprivatekey -file Server_PublicCert.cer -keystore Server_KeyStore.jks -storepass storepass 


接下来,将客户端公钥导入到服务端TrustStore中,将服务端公钥导入到客户端TrustStore中。
在命令行中输入:
keytool -import -alias clientpublickey -file Client_PublicCert.cer -keystore Server_TrustStore.jks -storepass storepass 


回车后会提示

引用

所有者:CN=tongtech.com, C=CN
签发人:CN=tongtech.com, C=CN
序列号:4cc7e86c
有效期: Wed Oct 27 16:53:00 CST 2010 至Tue Jan 25 16:53:00 CST 2011
证书指纹:
         MD5:FB:AB:71:9F:56:F3:CB:65:16:DC:52:E0:2D:27:FF:F6
         SHA1:06:A8:B1:B4:E2:42:9D:B2:F7:99:E7:70:34:08:96:52:E1:CD:4A:76
         签名算法名称:SHA1withRSA
         版本: 3
信任这个认证? [否]:


打y即可,然后提示

引用

认证已添加至keystore中


同理,将服务端公钥导入到客户端TrustStore中
keytool -import -alias serverpublickey -file Server_PublicCert.cer -keystore Client_TrustStore.jks -storepass storepass   
同样会出现提示,打y回车,提示成功就可以了。
最终你会在您的文件夹中看到如下的文件


第二步 服务端配置
1.放置证书的位置和属性配置
将上面生成的文件以Server开头的文件放置在src的cert包下
配置Server_Decrypt.properties,内容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=serverprivatekey
org.apache.ws.security.crypto.merlin.file=cert/Server_KeyStore.jks
这里有个问题要注意,要注意去除空格,否则会报org.apache.ws.security.components.crypto.Merlin Not Found的error
配置Server_Verf.properties,内容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=clientpublickey
org.apache.ws.security.crypto.merlin.file=cert/Server_TrustStore.jks
2.设置配置文件(由于在上一篇文章已经有了基本的配置,这里直接给出WSS4JInInterceptor的配置)
<bean id="WSS4JInInterceptorCert"  class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
        <constructor-arg> 
            <map> 
                <entry key="action" value="Signature Encrypt" />  
                <entry key="signaturePropFile" value="Server_SignVerf.properties"/>
                <entry key="decryptionPropFile" value="Server_Decrypt.properties"/>
                <entry key="passwordCallbackClass" value="ws.interceptor.UTPasswordServerCallBack"/>     
            </map> 
        </constructor-arg> 
    </bean>
3.UTPasswordServerCallBack类
import java.io.IOException;                                              
                                                                         
import javax.security.auth.callback.Callback;                            
import javax.security.auth.callback.CallbackHandler;                     
import javax.security.auth.callback.UnsupportedCallbackException;        
                                                                         
import org.apache.ws.security.WSPasswordCallback;                        
                                                                         
public class UTPasswordServerCallBack implements CallbackHandler {       
                                                                         
    public void handle(Callback[] callbacks) throws IOException,         
            UnsupportedCallbackException {                               
        WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];       
        pc.setPassword("keypass");                                       
        System.out.println("Server Identifier=" + pc.getIdentifier());   
        System.out.println("Server Password=" + pc.getPassword());       
    }                                                                    
}                                                                        



第三部 客户端配置
1.放置证书的位置和属性配置
将上面生成的文件以Client开头的文件放置在src的cert包下
配置Client_Encrypt.properties,内容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=serverpublickey
org.apache.ws.security.crypto.merlin.file=cert/Client_TrustStore.jks
配置Client_Sign.properties,内容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=clientprivatekey
org.apache.ws.security.crypto.merlin.file=cert/Client_KeyStore.jks
2.设置配置文件(由于在上一篇文章已经有了基本的配置,这里直接给出WSS4JOutInterceptor的配置)
<bean id="WSS4JOutInterceptorCert" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
         <constructor-arg> 
            <map> 
              <entry key="action" value="Signature Encrypt"/>
              <entry key="user" value="clientprivatekey"/>
              <entry key="signaturePropFile" value="Client_Sign.properties"/>
              <entry key="encryptionUser" value="serverpublickey"/>
                <entry key="encryptionPropFile" value="Client_Encrypt.properties"/>
                <entry key="passwordCallbackClass" value="ws.erp.UTPasswordClientCallBack"/>
              </map> 
          </constructor-arg>   
    </bean>    
3.UTPasswordClientCallBack类
public class UTPasswordClientCallBack implements CallbackHandler {            
                                                                              
    public void handle(Callback[] callbacks) throws IOException,              
            UnsupportedCallbackException {                                    
        WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];            
        pc.setPassword("keypass");                                            
        System.out.println("Client Identifier=" + pc.getIdentifier());        
        System.out.println("Client Password=" + pc.getPassword());            
    }                                                                         
                                                                              
}                                                                             

分享到:
评论

相关推荐

    Web Service开发指南.pdf

    - 应用安全策略,如证书验证、加密传输等,确保服务安全。 通过学习“Web Service开发指南”,开发者将能够熟练掌握这三大框架,从而高效地构建和部署Web服务,实现不同系统之间的无缝连接。无论是在企业内部还是...

    xfire+spring+webservice+client

    7. **安全与认证**:在实际应用中,Web服务可能会涉及到安全问题,如身份验证和授权。Spring和XFire提供了支持WS-Security标准的机制,可以添加证书、用户名/密码等安全配置到Web服务客户端。 8. **测试与调试**:...

    电机控制领域Harnefors观测器的Matlab仿真模型及其在PMSM无感控制中的高效应用

    内容概要:本文详细介绍了Harnefors观测器在永磁同步电机(PMSM)无感控制中的应用,特别是其在Matlab 2020b环境下的仿真模型。Harnefors观测器以其简洁的十行核心代码实现了对电机角度的精确估算,仅需调整单一参数lambda即可应对各种工况。文中展示了该观测器在初始角度误差极大情况下的优异收敛性能,以及在带载启动和多种速度指令下的稳定性。此外,模型中引入的有效磁链概念使得同一观测器能够兼容表贴式和内嵌式电机,进一步提升了其实用性和灵活性。仿真结果显示,该观测器不仅能在极端条件下迅速收敛,还能在不同电机参数下保持稳定的性能表现。 适合人群:从事电机控制系统设计与开发的技术人员,尤其是关注无感FOC技术和观测器优化的研究人员。 使用场景及目标:①用于研究和开发高性能无感FOC系统;②评估和改进现有电机控制系统的观测器设计;③为初学者提供一个简洁而高效的观测器实现案例,帮助理解和掌握相关技术。 其他说明:文章提供了详细的代码片段和实验数据,便于读者进行复现和进一步探索。同时,强调了模型的扩展性和实用性,特别是在不同类型的永磁同步电机中的应用。

    COMSOL相场法在水力压裂模拟中的应用:从单一裂缝到复杂多簇裂缝的数值实现

    内容概要:本文详细介绍了使用COMSOL软件中的相场法进行水力压裂模拟的技术细节。首先探讨了单一裂缝的扩展机制,包括相场参数的选择如界面厚度参数(epsilon)、断裂能(Gc),以及各向异性分散设置的影响。接着逐步深入到多个裂缝簇的竞争扩展,特别是两簇和三簇裂缝之间的应力阴影效应及其对裂缝形态的影响。文中还讨论了水力裂缝与天然裂缝相交时的特殊处理方法,如接触条件设定、摩擦系数调整等。此外,文章强调了网格划分、时间步长设置等数值模拟的关键技巧,并展示了如何利用相场变量的动态可视化来直观地观察裂缝的生长过程。 适合人群:从事石油工程、地质力学、计算力学等领域研究的专业人士和技术人员。 使用场景及目标:适用于希望深入了解水力压裂过程中裂缝形成机理的研究人员,以及希望通过数值模拟优化压裂作业的设计工程师。主要目标是掌握相场法的基本原理及其在COMSOL平台上的具体实现方式,从而更好地理解和预测实际工程中的裂缝行为。 其他说明:文章不仅提供了详细的MATLAB代码片段用于指导具体的建模步骤,还分享了许多实用的经验和技巧,帮助读者规避常见的数值发散等问题。同时,通过对不同工况的对比分析,揭示了相场法在处理复杂裂缝网络方面的优势。

    管道清污机器人sw16可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

    管道清污机器人sw16可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

    keras-3.3.2.tar.gz

    该资源为keras-3.3.2.tar.gz,欢迎下载使用哦!

    C语言课程设计的一些经典项目以及源码.zip

    C语言课程设计的一些经典项目以及源码.zip

    水果采摘机器人sw22_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

    水果采摘机器人sw22_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

    爬百度文库ppt(1).py

    爬百度文库ppt(1)

    新能源电机sw22可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

    新能源电机sw22可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

    基于CNN-LSTM的锂离子电池健康状态SOH估计方法及其Python实现

    内容概要:本文详细介绍了利用CNN-LSTM混合模型进行锂离子电池健康状态(SOH)估计的方法。首先,通过对NASA公开数据集的分析,提取了三个关键特征:放电电压最低点时间、平均放电电压和平均放电温度。接着,构建了一个由卷积神经网络(CNN)和长短时记忆网络(LSTM)组成的混合模型,用于捕捉电池数据的局部特征和时序依赖。模型经过精心调参和优化,在NASA B0005和B0006电池数据集上取得了优异的表现,RMSE低于1.5%,MAPE控制在1.5%左右。此外,文中提供了完整的Python代码实现,包括数据预处理、模型搭建、训练和结果可视化的具体步骤。 适合人群:从事电池管理系统的研发人员、机器学习工程师以及对深度学习应用于电池健康管理感兴趣的科研工作者。 使用场景及目标:适用于需要精确评估锂离子电池健康状态的应用场合,如电动汽车、储能系统等领域。主要目标是提高电池使用寿命预测的准确性,从而优化电池维护计划并延长设备使用寿命。 其他说明:文中强调了特征选择的重要性,并指出合理的特征工程可以显著提升模型性能。同时提醒使用者在实际应用中结合电池管理系统的实时数据进行在线校准,以获得更好的预测效果。

    三相不平衡电压下T型NPC三电平并网逆变器的控制策略与实现

    内容概要:本文详细探讨了在三相不平衡电压条件下,T型NPC三电平并网逆变器的控制策略及其具体实现方法。首先介绍了正负序分离技术,利用复数旋转因子和双二阶广义积分器(DSOGI)进行坐标变换,将三相电压分解为正序和负序分量。接着讨论了中点电位平衡问题,采用零序电压注入的方法并通过PI调节器来稳定中点电位。随后阐述了空间矢量脉宽调制(SVPWM)的具体实现步骤,包括矢量选择逻辑和作用时间计算。此外,文章还涉及电流环参数的设计,提供了基于电网阻抗特性的PI参数调整方法。最后展示了仿真实验结果,验证了所提出控制策略的有效性和优越性能。 适合人群:电力电子工程师、从事逆变器研究的技术人员以及相关领域的研究生。 使用场景及目标:适用于需要解决三相不平衡电压问题的并网逆变器控制系统设计,旨在提高系统的稳定性、可靠性和效率。 其他说明:文中提供的代码片段和仿真模型有助于读者更好地理解和应用这些控制策略。建议读者结合实际硬件条件进行适当调整,并参考相关文献深入学习。

    GEE教学-个快快版-共28讲.rar

    GEE教学-个快快版-共28讲.rar

    电路仿真:射频电路仿真.zip

    电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。

    thai-scalable-tlwgtypewriter-fonts-0.6.5-1.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统thai-scalable-tlwgtypewriter-fonts-0.6.5-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf thai-scalable-tlwgtypewriter-fonts-0.6.5-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

    永磁同步电机5次7次电流谐波抑制的Simulink仿真建模与实现

    内容概要:本文详细介绍了如何利用Simulink搭建永磁同步电机(PMSM)的谐波注入补偿模型,重点在于抑制5次和7次电流谐波。文中解释了谐波产生的原因及其危害,如电机发热、振动增加等问题。随后逐步讲解了如何使用Simulink中的各个模块(如PMSM模块、Universal Bridge、PI Controller、FFT模块等),并通过协调这些模块实现了谐波的有效抑制。此外,还探讨了谐波提取、谐振控制器设计、补偿信号发生器的设计细节,以及如何应对转速突变工况下的挑战。通过实验验证,该模型能够显著降低5次和7次谐波含量,提高电机性能。 适合人群:从事电机控制系统设计的研究人员和技术工程师,尤其是对永磁同步电机谐波抑制感兴趣的读者。 使用场景及目标:适用于需要深入理解和掌握永磁同步电机谐波抑制技术的研发人员,旨在帮助他们构建高效的谐波抑制系统,提升电机运行效率和稳定性。 其他说明:文中提供了详细的Matlab/Simulink代码片段和配置建议,有助于读者快速上手实践。同时,强调了实际应用中的注意事项,如选择合适的求解器、设置合理的参数等,确保仿真的准确性。

    T型三电平逆变器VSG控制与LCL滤波器的双闭环设计及优化

    内容概要:本文详细介绍了基于T型三电平逆变器的虚拟同步机(VSG)控制技术,涵盖VSG的核心算法、中点电位平衡策略以及LCL滤波器的双闭环控制设计。首先探讨了VSG控制的基本原理,包括虚拟惯量和阻尼特性的模拟,以及有功-频率和无功-电压下垂控制的具体实现。针对T型三电平拓扑特有的中点电位漂移问题,提出了多种平衡控制方法。对于LCL滤波器,讨论了其参数设计和双闭环控制策略,特别是电流环PI参数的选择和避免谐振的方法。文中还提供了多个实用的经验公式和调试技巧,并引用了相关领域的权威文献作为理论支持。 适合人群:从事电力电子、新能源并网系统研究和开发的技术人员,尤其是有一定电力电子基础的研发人员。 使用场景及目标:适用于需要深入了解和掌握VSG控制技术和LCL滤波器设计的研究人员和技术开发者。主要目标是帮助读者理解和实现T型三电平逆变器的VSG控制,提高系统的稳定性和性能。 其他说明:文中不仅提供了详细的理论解释,还有具体的代码实现和调试建议,便于读者进行实际操作和验证。同时强调了调试过程中需要注意的安全事项和常见问题的解决方案。

    【数学建模竞赛】美国大学生数学建模竞赛(MCM/ICM)简介:竞赛规则与意义综述

    内容概要:美国大学生数学建模竞赛(MCM/ICM)由美国数学及其应用联合会主办,旨在提高学生运用数学知识和计算机技术解决实际问题的能力,培养团队合作精神和创新思维。竞赛始于1985年,至今已有近40年历史,是全球最具影响力的数学建模竞赛之一。竞赛分为MCM和ICM两部分,涵盖多个领域,参赛队伍需在4天内完成题目的分析、建模、求解和论文撰写。竞赛面向全球在校大学生,设有多个奖项,获奖对学生的升学和就业有积极影响。参赛队伍应提前学习数学建模知识,掌握常用软件工具,如MATLAB、Python等,同时加强团队协作和时间管理能力。; 适合人群:全球范围内的在校大学生,特别是对数学建模感兴趣的学生。; 使用场景及目标:①提高学生运用数学知识和计算机技术解决实际问题的能力;②培养团队合作精神和创新思维;③为升学和就业积累宝贵经验。; 阅读建议:参赛队伍应提前做好充分准备,学习相关数学建模知识,熟悉常用软件工具,加强团队协作和时间管理能力,以应对竞赛的挑战。

    动态测试技术:振动试验.zip

    电子电力仿真教程 ,15篇,5000字,从入门到精通,案例为主。

    汽车横梁拧螺丝设备sw22可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

    汽车横梁拧螺丝设备sw22可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip

Global site tag (gtag.js) - Google Analytics