`
lvjun106
  • 浏览: 436889 次
  • 性别: Icon_minigender_1
  • 来自: 芜湖
社区版块
存档分类
最新评论

java调用OPENSSL生成双向SSL的WEB-SERVICE

 
阅读更多

上一篇提到在NGINX中配置了双向SSL的验证, 签名信息及公私钥对都是用OPENSSL生成. 并且用生成的CLIENT端证书放在浏览器上可正常调用,但WEB-SERVICE方式调用却没有试过. 平常WEB-SERVICE的双向SSL都是用KEYTOOL工具生成公私钥信息及签名信息,所以这次同样试一下用KEYTOOL来处理OPENSSL的证书.

很感谢这篇博文:http://wenku.baidu.com/view/a00daa2a3169a4517723a351.html 给我带来的灵感.

 

接着上一篇http://lvjun106.iteye.com/blog/1892533 , 我用OPENSSL生成了ca根证书的私钥ca.crt和客户端client.crt.

接着我用KEYTOOL工具把这两个私钥都同时导入到信任库中client.keystore

keytool -import -v -trustcacerts  -alias ca_root -file ca.crt -storepass 1111 -keystore client.keystore

keytool -import -v -alias ipclient_private_key -file client.crt -keypass 1111 -storepass 1111 -keystore client.keystore

接着,可以查看一下这个keystore 的详细信息keytool -list -v -keystore client.keystore

 

JAVA客户端调用SSL WEB SERVICE

System.setProperty("javax.net.ssl.keyStore", "F:/workspace/TemporaryProgram/cert/client02.p12");
		System.setProperty("javax.net.ssl.keyStorePassword","client02");
		System.setProperty("javax.net.ssl.keyStoreType","PKCS12");
		System.setProperty("javax.net.ssl.trustStore", "F:/workspace/TemporaryProgram/cert/client.keystore");
		System.setProperty("javax.net.ssl.trustStorePassword","client02");
		System.setProperty("javax.net.ssl.trustStoreType", "jks");
		
		
		String endpointURL = "https://192.168.40.129:8443/XXXX/services/supplier?wsdl";//
		// Web服务端点地址            
		Service service = new Service();
		Call call = (Call) service.createCall();
		call.setTargetEndpointAddress(new java.net.URL(endpointURL));
		call.setOperationName(new QName("http://test.com", "getSupplierByCode"));// 设置操作的名称。
		call.addParameter("systemSecurityCode", XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
		call.addParameter("code", XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
		call.setReturnType(XMLType.XSD_STRING);// 返回的数据类型
		Double ret = (Double) call.invoke(new Object[] { "fdsaf","fdsafdas"});// 执行调用
		System.out.println("使用HTTP协议来作为Web服务的传输协议!");
		System.out.println("已经成功调用。请参看服务端的输出!");

 

 

 

分享到:
评论

相关推荐

    java调用openssl生成证书

    此外,`openssljava.jar`可能是封装了上述调用OpenSSL功能的Java库,这样可以更方便地在Java代码中生成和管理证书,而不需要直接操作系统命令。使用这样的库可以简化代码,降低安全风险,并提供更好的跨平台兼容性。...

    解决OpenSSL "SSL-Death-Alert" 拒绝服务漏洞(CVE-2016-8610)安全漏洞,升级OpenSSL到OpenSSL 1.1.0k

    最近放开了https服务,安全组扫描出新的漏洞,现对原OpenSSL 1.0.1g版本升级到OpenSSL 1.1.0k,同时重新编译OpenSSH及nginx,在此提供升级脚本,仅供参考

    OpenSSL生成的ssl证书

    **OpenSSL生成的ssl证书** 在互联网安全领域,SSL(Secure Socket Layer)证书是保障网站数据传输安全的重要工具。OpenSSL是一个开源的库,包含了各种加密算法,它提供了生成SSL证书的功能。本教程将详细介绍如何...

    前端开源库-openssl-self-signed-certificate

    本主题将深入探讨"前端开源库-openssl-self-signed-certificate",并讲解如何使用OpenSSL生成自签名证书。 自签名证书在开发环境中非常常见,因为它们允许开发者在没有权威证书颁发机构(CA)认证的情况下测试HTTPS...

    openssl生成证书

    1. 从官方网站下载OpenSSL源代码,例如openssl-1.0.1g版本。 2. 安装Perl解释器,如ActivePerl,确保其正常运行。 3. 解压缩OpenSSL源代码到指定目录。 4. 安装NASM(Netwide Assembler),并将安装路径添加到系统...

    openssl-1.1.1-stable-SNAP-20190915.tar.gz

    在本文中,我们将聚焦于OpenSSL的1.1.1稳定版——"openssl-1.1.1-stable-SNAP-20190915",探讨其特点、改进和实际应用。 OpenSSL 1.1.1版本是该项目的一个重要里程碑,它在安全性、性能和功能上都进行了显著提升。...

    Win64OpenSSL-3-1-0.exe

    标题中的"Win64OpenSSL-3-1-0.exe"是一个特定版本的OpenSSL软件,用于64位Windows操作系统。OpenSSL是一个开源的库,它提供了加密算法、SSL/TLS协议以及常用的证书处理功能。在开发环境中,尤其是涉及到网络通信、...

    使用openssl生成单向ssl证书

    本文将详细介绍如何使用openssl工具生成单向SSL证书,以及如何将其应用于基于Boost.Asio库的SSL通讯测试。 首先,让我们了解什么是单向SSL认证。在单向SSL认证中,服务器验证其身份给客户端,但客户端无需向服务器...

    openssl和openssl-devel离线rpm安装包.zip_OPENSSL 库_openssl_openssl-deve

    这时,离线安装包如`openssl-1.0.1e-57.el6.x86_64.rpm` 和 `openssl-devel-1.0.1e-57.el6.x86_64.rpm` 就显得非常有用。这两个RPM(Red Hat Package Manager)包是专门为Red Hat Enterprise Linux 6(RHEL 6)设计...

    免费openssl 生成ssl证书[ssl证书生成]

    使用OpenSSL工具可以生成SSL证书。具体步骤如下: 1. 生成私钥(Key):使用OpenSSL的genrsa命令,可以生成RSA私钥。例如: ``` openssl genrsa -des3 -out server.key 2048 ``` 这条命令会生成一个2048位的RSA...

    compat-openssl10-1.0.2o-3.el8.x86_64.rpm

    openssl10

    安装openssl和openssl-develd 的依赖包

    这里我们关注的是“openssl”和“openssl-devel”这两个关键组件,它们是实现安全套接字层(SSL)和传输层安全(TLS)协议的基础。SSL/TLS协议用于加密网络通信,确保数据在传输过程中不被窃取或篡改。 **openssl**...

    Win64OpenSSL-1-1-1w.exe

    Win64OpenSSL-1-1-1w.exe

    Win64OpenSSL-Light-3-1-4安装包

    标题中的“Win64OpenSSL-Light-3-1-4安装包”指的是OpenSSL的轻量级版本,适用于64位Windows操作系统的一个版本。OpenSSL是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现,它包含了各种加密算法、常用的...

    OpenSSL-for-iPhone-master.zip_OpenSSL-for-iPhone_openssl_openssl

    在这个案例中,文件名"OpenSSL-for-iPhone-master.zip"表明我们下载的是一个专门为iPhone优化过的OpenSSL分支。 2. **准备编译环境**:确保你已经安装了Xcode和Command Line Tools,这些工具包含了编译所需的gcc或...

    win64openssl_light-1-0-2.exe

    win64openssl_light-1-0-2.exe OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

    CentOS7 nginx离线安装gcc/pcre-devel/openssl-devel/zlib-devel包

    本教程将详细介绍如何在CentOS 7上离线安装GCC、PCRE-devel、OpenSSL-devel和Zlib-devel这些重要的开发工具包,这些都是构建和编译Nginx web服务器所必需的依赖。以下是一个详细的步骤指南。 首先,`CentOS7 nginx...

    Win64OpenSSL-Light-1-1-1d.exe

    总之,"Win64 OpenSSL-Light-1-1-1d.exe"是64位Windows系统上一个轻便且强大的SSL解决方案,对于开发者和用户而言,它提供了安全的网络通信基础,确保了数据的私密性和完整性。理解其功能和使用方法,对于维护网络...

    Java如何基于command调用openssl生成私钥证书

    Java基于command调用openssl生成私钥证书 Java是一种广泛使用的编程语言,而openssl是一种加密工具。今天,我们将介绍如何使用Java基于command调用openssl生成私钥证书。 什么是私钥证书? 私钥证书是一种数字...

    openssl-net-0.4.4-win32.rar_managedOpenssl.dll_openssl-net-0.4-w

    本文将围绕"openssl-net-0.4.4-win32.rar"这个压缩包中的"managedopenssl.dll",探讨如何在Windows平台上使用OpenSSL .NET接口。 1. **Managed OpenSSL库介绍** Managed OpenSSL是.NET平台上的一个开源项目,它为...

Global site tag (gtag.js) - Google Analytics