Java程序避开SSL证书问题访问https网站

部分原创,参考:参考:http://tanyongbing.iteye.com/blog/1855132

在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢? 
其实很简单,方法如下:

每一步:使用Firefox浏览器,进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来, 
点击浏览器导航栏左边的锁,查看安全链接的更多信息,点击查看证书,点击详细信息,点击导出,
保存类型“X.509证书(PEM)(*.crt; *.pem)
    例如:保存为abc.cer,放在C盘下

第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里? 
    方法如下 
    假设你的jdk安装在C:\jdk1.5这个目录, 
    开始 >> 运行 >> 输入cmd 进入dos命令行 >> (某些Windows系统,需要 以管理员身份运行,
    再用cd进入到C:\jdk1.5\jre\lib\security这个目录下 
    敲入如下命令回车执行 
    keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer 
    此时命令行会提示你输入cacerts证书库的密码, 
    你敲入changeit就行了,这是java中cacerts证书库的默认密码, 
    你自已也可以修改的。

导入后用-list查看(没有使用-alias指定别名,所以是mykey),其中md5会和证书的md5对应上。 
mykey, 2012-10-26, trustedCertEntry, 
认证指纹 (MD5): 8D:A2:89:9A:E4:17:07:0B:BD:B0:0C:36:11:39:D0:3D

自定义文件和密码路径,还没有验证: 
Define the TrustStore using the JAVA_OPTS variable on the Stash Server: 
You will have to do the following: 
    On Windows: 
    JAVA_OPTS = -Djavax.net.ssl.trustStore="%JAVA_HOME%\jre\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword="changeit" 
    On Linux: 
    JAVA_OPTS = -Djavax.net.ssl.trustStore="$JAVA_HOME/jre/lib/security/cacerts" -Djavax.net.ssl.trustStorePassword="changeit" 
(info) On my local instance trustStore password is changeit so I belive, if you didn′t changed it, your is changeit as well.

tomcat、junit运行时会从默认路径加载cacerts文件,如果main函数直接运行需要指定javax.net.ssl.trustStore文件路径,比如: 
java -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -jar XXX.jar &

注意JAVA_HOME设置中如果有空格,会java执行错误,可以把环境变量JAVA_HOME中C:\Program Files缩写为C:\Progra~1

参考:http://tanyongbing.iteye.com/blog/1855132

时间: 2024-10-11 20:20:14

Java程序避开SSL证书问题访问https网站的相关文章

如何监听第三方应用程序(SOAP or RESTful 客户端)访问HTTPS网站时的数据?

随着互联网的应用越来越多,在我们的日常开发和调试当中(比如调试SOAP和RESTFul的时候),我们常常需要访问用第三方的工具访问HTTPS的网站,为了简化描述,本文使用IE浏览器访问Google 提供的https://www.googleapis.com/discovery/v1/apis RESTful服务为例,注意这个是基于https协议的访问,如果用第三方的嗅探工具,比如wiresharp,即使我们能把http的数据包抓到,显示出来的内容也是乱码,因为传送的内容经过了加密,而加密的私钥就

CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问(http跳转到https) 5.nginx ssl 107 (net::ERR_SSL_PROTOCOL_ERROR) 无法与服务器建立安全连接 解决方法 配置过程如下: 我的nginx是 yum 安装 具体安装过程参考:[转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡 一.安

StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全

StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全 一.StartSSL个人证书登录申请 1.StartSSL官网: 1.官方首页:http://www.startssl.com/ 2.控制面板:http://www.startssl.com/?app=12 2.第一次用StartSSL,先进入控制面板,先点击注册. 3.然后是填写你的个人基本信息,以部落的经验,主要地址填写详细,StartSSL会根据你的IP自动填入你所在的地址. 4.提交后你的邮箱会收到一个验证码. 5.用这

微信小程序 免费SSL证书https、TLS版本问题的解决办法

这篇文章主要介绍了微信小程序 免费SSL证书https.TLS版本问题的解决办法的相关资料,需要的朋友可以参考下 微信小程序 免费SSL证书https.TLS版本问题的解决办法 微信小程序与第三方服务器通讯的域名5个必要条件 1.一个已备案的域名,不是localhost.也不是127.0.0.1,域名不能加端口 2.加ssl证书,也就是https://~~~ 4.HTTPS 服务器的 TLS 版本支持1.2及以下版本,一般就是1.0.1.1.1.2要同时支持这三个版本,一个也不能少,要不然就会出

用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)--生成SSL证书请求

在上个章节中,我们提到了如何安装XCA(X Certificate and key management)程序,这个章节我们开始正式介绍如何用XCA生成证书请求.如果大家用过java的话,肯定知道jdk默认提供了一个工具叫做:keytool,这个工具我们能够从java的安装目录下找到,比如我本机就在:C:\Program Files (x86)\Java\jre7\bin: 但是这个工具因为使用的是命令行,不是特别的直观,所以我在本章节给大家演示一下如何用XCA来生成证书请求.具体步骤如下: 步

八大免费SSL证书-给你的网站免费添加Https安全加密

评论? https://www.freehao123.com/top-8-free-ssl-cert/ 文章目录 Let's Encrypt StartSSL SSL CloudFlare SSL Wosign沃通SSL 腾讯云DV SSL 免费SSL总结 SSL证书,用于加密HTTP协议,也就是HTTPS.随着淘宝.百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,站长们给网站添加SSL证书似乎成为了一种趋势. 给自己的网站添加SS

用XCA(X Certificate and key management)可视化程序管理SSL 证书(3)--创建自定义的凭证管理中心(Certificate Authority)

在第"用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)---创建证书请求"章节中,我们介绍了如何用XCA创建SSL证书请求(Certificate Request),在一章节中,同时提到了如何对证书请求,用我们自己的创建的凭证管理中心(Certificate Authority)进行签名:但是在做这一步之前,我们首先需要知道如何创建一个属于咱们自己的凭证管理中心(Certificate Authority). 步骤很简单,具体

用XCA(X Certificate and key management)可视化程序管理SSL 证书(4)--用自定义的凭证管理中心(Certificate Authority)签名证书请求

在用XCA(X Certificate and key management)可视化程序管理SSL 证书一系列文章的(2)和(3)中,我们学习了如何用XCA(X Certificate and key management)生成证书请,已经如何生成自定义的凭证管理中心(Certificate Authority),如果说前两篇文章是铺垫,那么这篇文章就是最终的目的:用自定义的凭证管理中心(Certificate Authority)签名证书请求.签名的过程非常的简单,具体步骤,请见下面的操作.

AFNetworking 原作者都无法解决的问题: 如何使用ip直接访问https网站?

背景 最近App似乎有报异常是DNS无法解析,尝试解决此问题.搜集到的资料很少,甚至连AFN原作者都判定这可能是一个无解的问题,参见: https://github.com/AFNetworking/AFNetworking/issues/2954,不过最终还是靠着stackoverflow上的一丁点提示,顺利找到并汇集成了一个可用的解决方案.大喜,与君共享! 问题描述 通过IP直接访问网站,可以解决DNS劫持问题.DNS劫持,可以通过修改电脑的host文件模拟.如果是HTTP请求,使用ip地址