`

SSL多线程安全问题

 
阅读更多

项目原因,代码实现证书控制,网上很多介绍使用System.setProt。。。等方法,后突然想到应该会有多线程安全问题,应为我方系统可能多个证书,故在iteye咨询大牛帮忙,详细见:

 http://www.iteye.com/problems/94392

后按照一个那个朋友介绍,使用代码读取文件方式加载ssl,详细见:

SSLContext ctx = httpsMap.get(prjcodVal.getCPDPRJCOD().toUpperCase());
		if(ctx == null){
			//SSL设置,使用文件方式,如果使用system赋值方式会有多线程问题
			ctx = SSLContext.getInstance("SSL");
			KeyManagerFactory kmf = KeyManagerFactory
					.getInstance("SunX509");
			TrustManagerFactory tmf = TrustManagerFactory
					.getInstance("SunX509");
			KeyStore ks = KeyStore.getInstance("JKS");
			KeyStore tks = KeyStore.getInstance("JKS");
			ks.load(new FileInputStream(Constants
					.getConstants().getStrCertFilePath()
					+ prjcodVal.getCPDPRJCOD().toUpperCase() + ".jks"),
					Constants.getConstants().getStrHTTPSCERPWD().toCharArray());
			tks.load(new FileInputStream(Constants
					.getConstants().getStrCertFilePath()
					+ prjcodVal.getCPDPRJCOD().toUpperCase() + ".jks"),
					Constants.getConstants().getStrHTTPSCERPWD().toCharArray());
			kmf.init(ks, Constants.getConstants().getStrHTTPSCERPWD().toCharArray());
			tmf.init(tks);
			ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(),
					null);
			httpsMap.put(prjcodVal.getCPDPRJCOD().toUpperCase(), ctx);
		} 
		((HttpsURLConnection)httpUrlConnection).setSSLSocketFactory(ctx.getSocketFactory());
		((HttpsURLConnection) httpUrlConnection)
			.setHostnameVerifier(new HostnameVerifier() {
				//让JRE相信所有的证书和对系统的域名和证书域名
				public boolean verify(String urlHostName,
						SSLSession session) {
					return true;
				}
			});

 读取之前从静态属性map中读取一下,如果不存在,则获取,然后放入map中,这样也可以提高效率。

分享到:
评论

相关推荐

    PowerTCP_SSL_Tool_2_0_4_keygen

    用来自动验证和加密/解密通过Internet传输的数据。PowerTCP SSL Tool集成了Microsoft CryptoAPI、Security ... · 可用于多线程的环境。 · 包含免费版权。 · 包含封装类,可以方便地集成到Visual C++中。

    网络传送带(Net Transport) v2.72a Build 437 多国语言版(ANSI)

    一个高效稳定功能强大的下载工具,下载速度一流,CPU占用率低,尤其在宽带上特别明显,内建易于使用的文件管理器,轻松实现按类别存放下载的文件,而且只要站点支持,这些协议均支持多线程断点续传,RTSP同样支持多...

    PowerTCP SSL Tool – 用于解密网络传输数据的控件

    用来自动验证和加密/解密通过Internet传输的数据。PowerTCP SSL Tool集成了Microsoft CryptoAPI、Security ...· 可用于多线程的环境。 · 包含免费版权。 · 包含封装类,可以方便地集成到Visual C++中。

    Ngnix SSL证书部署指南

    Ngnix服务以其优越的多线程以及轻量级著称,如何增加网络的安全性,本文档提供了SSl证书的部署方法。

    免费开源!!高级 Java Redis 客户端,用于线程安全同步、异步和反应式使用 支持集群、哨兵、管道和编解码器

    Lettuce 是一个可扩展的线程安全 Redis 客户端,适用于同步、异步和反应式使用。如果多个线程避免阻塞和事务性操作(例如BLPOP和 MULTI/ ) ,则它们可以共享一个连接EXEC。Lettuce是用netty构建的。支持高级 Redis ...

    java多线程tcpsocketserver源码-netty-learning:网络学习

    java多线程tcp socket server源码@Netty 笔记 1. 内蒂 网络应用框架 特征 设计 支持多种传输类型 事件模型 高度可定制的线程模型 表现 高吞吐量,低延迟 更少的资源消耗 最小化内存拷贝 安全SSL/TLS 支持 建筑学 核 ...

    urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。-python

    urllib3 带来了 Python 标准库中缺少的许多关键特性:线程安全。 连接池。 客户端 SSL/TLS 验证。 使用多部分编码上传文件。 重试请求和处理 HTTP 重定向的帮助程序。 支持 gzip 和 deflate 编码。 代理支持 ...

    计算机网络安全web漏洞扫描工具

    码变很容易 广泛的报告设施,包括签证的PCI遵守情况报告 多线程快速扫描,抓取数以十万计的网页,十分方便 智能扫描器检测网络服务器类型和应用语言 Acunetix检索和分析网站的内容包括闪存,AJAX通过产品简介了解...

    https:通过SSL固定本机脚本的安全HTTP客户端-iOSAndroid

    轻松地将最可靠的本机网络库与...产品特点现代化的TLS和SSL安全功能共享连接池减少了请求延迟从常见的连接问题中静默恢复一切都在本地后台线程上运行透明GZIP HTTP / 2支持多功能零件快取基本的Cookie支持常问问题SSL

    nginx v1.5.9 for windows

    3 增加Windows和Linux平台下的多线程支持(Unix下尚未实现) 多线程可支持select epoll wsa和iocp网络IO模型 并支持SSL连接 通过上述改进 Nginx在Windows平台下的性能得到大幅提高 其并发连接数一般情况下可达到...

    nginx v1.5.9 for windows 源程序

    3 增加Windows和Linux平台下的多线程支持(Unix下尚未实现) 多线程可支持select epoll wsa和iocp网络IO模型 并支持SSL连接 通过上述改进 Nginx在Windows平台下的性能得到大幅提高 其并发连接数一般情况下可达到...

    Java实现C/S模式的模拟ATM取款机,满分程序设计,新手必看!

    网络计算课学期项目,包括ATM机端提供的登录,存取款,转账,打印凭条功能,配套的银行业务系统和用户业务数据库等,考虑了多线程处理,服务中途出错的业务回滚处理以及安全验证问题。 语言和工具:Java,SQL,...

    影音传送带(Net Transport) v2.01.304 简体中文版

    影音传送带是一个高效稳定功能强大的下载工具,下载速度一流,CPU占用率低,尤其在宽带上特别...FTP同样支持SSL,可以有效地保护传输的数据安全。可以说,影音传送带支持的协议之多,功能之全是世上少见,可谓极品。

    影音传送带(Net Transport) v2.02(UNICODE)

    影音传送带是一个高效稳定功能强大的下载工具,下载速度一流,CPU占用率低,尤其在宽带上特别...FTP同样支持SSL,可以有效地保护传输的数据安全。可以说,影音传送带支持的协议之多,功能之全是世上少见,可谓极品。

    Skybase 是一个极其快速、安全和可靠的实时 NoSQL 数据库,具有自动快照和 SSL

    扩展到每个节点每秒数百万次查询键/值存储:GET 、SET 、UPDATE和所有这些东西快照:用于无压力备份的自动(和可调)快照安全:使用 SSL/TLS 将安全连接内置到 Skybase 中多线程:旨在利用所有 CPU 内核资源友好:数

    Appweb嵌入式HTTP Web服务器

    它迅速( 每秒处理3500多要求)而紧凑 ,其中包括支持动态网页制作,服务器端嵌入式脚本过程中的CGI ,可加载模块的SSL ,摘要式身份验证,虚拟主机, Apache样式配置,日志记录,单和多线程应用程序。它提供了大量...

    超级弱口令检查工具

    超级弱口令检查工具是一款Windows平台的弱口令审计工具,支持批量多线程检查,可快速发现弱密码、弱口令账号,密码支持和用户名结合进行检查,大大提高成功率,支持自定义服务端口和字典。 工具采用C#开发,需要安装...

    sparkmail火花邮电子邮件系统 v1.5 Build 015505.zip

    支持邮件自动转发 支持邮件自动答复 支持WebMail 支持多域名,可以一台服务器上架设多个域的邮件服务器富客户端技术 支持ESMTP验证, 发信更安全 多线程设计,满足大量用户的同时访问 SQLite数据库存储数据 支持多级...

    B3LOG Solo v1.0.0 for MySQL.zip

    169 DateFormat 线程安全问题 170 登录页面底部链接问题 172 GAE 版配额消耗过快问题 177 泄漏用户密码安全问题 129 摘要编辑器添加源码功能 132 Markdown 编辑器显示问题 154 使用密文存储密码 155 邮件 SSL...

    C++基于线程池技术实现大并发网络IO框架,一个基于C++11的轻量级网络框架

    网络库 tcp/udp客户端,接口简单易用并且是线程安全的,用户不必关心具体的socket api操作。...简单易用的ssl加解密黑盒,支持多线程。 其他一些有用的工具。 命令行解析工具,可以很便捷的实现可配置应用程序

Global site tag (gtag.js) - Google Analytics