java p12证书验证_Java s2s通过p12证书和基本授权连接到https
我尝试通过使用p12证书和'基本授权'来实现将通过Java类连接到https服务器。你能概述一下如何将两者结合起来,包括安装p12证书吗?
更新。以下是我使用的课程:
public static void main(String[] args) {
try {
KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream("d:\\certs\\api\\xx.p12"), "W*53as_G".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(clientStore, "W*53as_G".toCharArray());
KeyManager[] kms = kmf.getKeyManagers();
KeyStore trustStore = KeyStore.getInstance("JKS");
trustStore.load(new FileInputStream("c:\\jdk1.8.0_51\\jre\\lib\\security\\cacerts"), "changeit".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(trustStore);
TrustManager[] tms = tmf.getTrustManagers();
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(kms, tms, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
URL url = new URL("https://apis2s.ee/test");
HttpsURLConnection urlConn = (HttpsURLConnection) url.openConnection();
urlConn.setRequestProperty("Authorization", "Basic " + Base64.encode("andrey:pass_1".getBytes()));
urlConn.setUseCaches(false);
urlConn.setAllowUserInteraction(true);
urlConn.setRequestProperty("Pragma", "no-cache");
urlConn.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
urlConn.setRequestProperty("Content-length", Integer.toString("id=1288210&ip=127.0.0.1".length()));
StringBuilder builder = new StringBuilder();
builder.append(urlConn.getResponseCode())
.append(" ")
.append(urlConn.getResponseMessage())
.append("\n");
System.out.println(builder);
} catch (Exception e) {
e.printStackTrace();
}
}}
结果是
SunCertPathBuilderException:无法找到要求的目标的有效证书路径
并通过SSL调试
%% Invalidated: [Session-1, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]
pool-2-thread-1, SEND TLSv1 ALERT: fatal, description = certificate_unknown
pool-2-thread-1, WRITE: TLSv1 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 01 00 02 02 2E .......
pool-2-thread-1, called closeSocket()
pool-2-thread-1, handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification另外我安装了p12证书。和命令
keytool -list -v -keystore c:\ jdk1.8.0_51 \ jre \ lib \ security \ cacerts
显示证书。信息:
Alias name: 1
Creation date: 28.02.2017
Entry type: PrivateKeyEntry
Certificate chain length: 2
Certificate[1]:
Owner: CN=xx, O=APIs2s Sandbox Api
Issuer: CN=apis2s.ee
Serial number: 12
Valid from: Thu Feb 23 18:57:05 CST 2017 until: Fri Feb 23 18:57:05 CST 2018
Certificate fingerprints:
MD5: E0:E0:1E:8F:09:R3:82:6C:D9:A0:7C:FD:B3:D7:7B:76
SHA1: A0:8A:87:03:7A:14:CD:3A:C6:48:4B:98:8C:89:EK:EB:73:B7:BC:BD
SHA256: 31:1B:2E:98:66:8C:F3:53:6C:FA:4E:BC:48:67:C1:DE:02:4D:71:E8:46:CE:2B:7C:B1:9F:EA :86:69:D6:97:15 Signature algorithm name: MD5withRSA
Version: 1
Certificate[2]:
Owner: CN=apis2s.ee
Issuer: CN=apis2s.ee
Serial number: bc7428f41765c74e
Valid from: Fri Jun 24 14:52:01 CST 2016 until: Sat Jun 24 14:52:01 CST 2017
Certificate fingerprints:
MD5: 21:F3:46:A8:30:B2:1B:D6:0C:2D:E6:2F:4F:4F:8G:B SHA1: 1C:F0:FE:4E:94:70:5E:6E:2C:5D:E6:B1:24:77:2H:0F:72:DB:F6:01
SHA256: 51:14:82:5B:80:63:57:5B:B7:6B:CB:C9:EC:FB:C3:96:07:89:A0:4E:B5:51:B7:6D:34:08:CA :B4:B3:2F:E6
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 89 A1 81 25 17 41 EB E6 DD 7A B6 D2 23 2E 4B 40 ...%.A...z..#.K@
0010: 54 50 58 58 TXXX
]
]
#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:true
PathLen:2147483646
]
#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 89 A2 81 25 17 41 EB E6 DD 7A B6 D2 23 2E 4B 40 ...%.A...z..#.K@
0010: 54 51 58 58 TXXX
]
]
*******************************************
java p12证书验证_Java s2s通过p12证书和基本授权连接到https相关推荐
- java p12证书验证_p12格式的安全证书在Java项目中使用
前一段时间因为需要别人给的p12格式的安全证书才能获取相关数据,但是p12格式的证书无法导入到jdk的证书库,但是又需要在Java项目中使用p12格式的证书,找了很久,最后在别人的帮助下找到方法. 因 ...
- python ssl连接 证书验证失败_python foursquare – SSL3证书验证失败
我正在尝试使用Mike Lewis的 Python包装器( https://github.com/mLewisLogic/foursquare)向Foursquare API发出无用的请求: clie ...
- java web 手机验证_Java 手机Web开发 身份验证
Java web和手机端开发 遇到比较麻烦的就是身份验证 目前为止觉得最好的解决方案是 Java 中使用jwt 为什么要使用jwt,让网络数据更加安全,以防其他一些人无意恶搞 在这里简单说下:jwt是 ...
- java webservice用户验证_java webservice 用户验证 (服务端 + 客户端)
说明:在网上找了一堆 handler验证的东东,试验了一下,没成功. 现在换了一种方式:在 tomcat的配置文件中添加用户角色和用户信息 然后在 webservice的项目配置文件中增加对应的角色. ...
- java证书验证失败_使用certbot证书验证失败
这是我的情况 . 我在Debian Jessie上运行Apache服务器 . 我在那里有3个域,3个月前,我运行Certbot以使用此命令安装ssl证书 sudo certbot --authenti ...
- java微信token验证_JAVA折腾微信公众平台(Token验证)
最近微信的公众平台比较火,于是我也想弄个微信来玩玩.如何注册微信公众号?点击之后就可以看到官方的答案了(额,比较坑爹). 注册之后,可以选择编辑模式和开发模式,这里要说的是开发模式. 首先要开启开发模 ...
- java微信token验证_JAVA折腾微信公众平台(Token验证)[转]
BAE的JAVA还在内测的时候,抱着好奇的态度发邮件申请了内测权限,当时折腾了一天,然后就没折腾了.现在BAE的JAVA都已经正式开放使用了,我又蛋疼的想写点什么,否则每天仅仅只是工作上的使用,是得不 ...
- java xml格式验证_Java中对XML文件的校验
Java中使用dtd校验xml文件: 1.定义一个校验类CheckXML类: import org.w3c.dom.Document; import org.xml.sax.EntityResolve ...
- java密码安全验证_java安全编码指南之:输入校验
简介 为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验. 本文将带领大家探讨一下用户输入校验的一些场景.一起来看看吧. 在字符 ...
- java手机号码格式验证_java 校验手机号格式
主要用到这两个包: import java.util.regex.Matcher; import java.util.regex.Pattern; Pattern类用于创建一个正则表达式,生成一个Pa ...
最新文章
- 三大运营商3G无线上网套餐资费对比
- Android开发之触摸事件处理机制详解
- 机器人学习--扩展卡尔曼滤波算法用于机器人定位
- cocos2d-lua ARPG手机游戏《烈焰遮天》(客户端+服务端+数据库)发布说明
- Python清理微信被好友删除的人
- python文本分类评价指标 top1如何计算_推荐算法评价指标
- 【优化算法】爬虫搜索算法(RSA)【含Matlab源码 1838期】
- 17. 装箱、拆箱的最小化
- jpype了解,获取,安装
- 接口 常见视频接口详解
- 【数学】几何在线画图
- Linux —进程间的五种通信方式—(半双工管道、命名管道、消息队列、信号、共享内存),外加信号量。直接上代码:
- 只要你懂得人性,就不怕没钱赚!
- ReactJS Start/build内存溢出
- java垃圾回收代码
- aspose-words 解决Linux word转pdf 乱码和出现小方块问题
- 与IBM谈判搁浅 Sun及其CEO前景存疑
- Python小记——创建空集
- Neo4j数据库知识图谱查询关联人物关系和cypher查询
- 某餐馆有n张桌子,每张桌子有一个参数a表示 可容纳的最大人数,有m批客人,每批客人有两个参数,b表示人数,c为预计消费金额。