我尝试通过使用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相关推荐

  1. java p12证书验证_p12格式的安全证书在Java项目中使用

    前一段时间因为需要别人给的p12格式的安全证书才能获取相关数据,但是p12格式的证书无法导入到jdk的证书库,但是又需要在Java项目中使用p12格式的证书,找了很久,最后在别人的帮助下找到方法. 因 ...

  2. python ssl连接 证书验证失败_python foursquare – SSL3证书验证失败

    我正在尝试使用Mike Lewis的 Python包装器( https://github.com/mLewisLogic/foursquare)向Foursquare API发出无用的请求: clie ...

  3. java web 手机验证_Java 手机Web开发 身份验证

    Java web和手机端开发 遇到比较麻烦的就是身份验证 目前为止觉得最好的解决方案是 Java 中使用jwt 为什么要使用jwt,让网络数据更加安全,以防其他一些人无意恶搞 在这里简单说下:jwt是 ...

  4. java webservice用户验证_java webservice 用户验证 (服务端 + 客户端)

    说明:在网上找了一堆 handler验证的东东,试验了一下,没成功. 现在换了一种方式:在 tomcat的配置文件中添加用户角色和用户信息 然后在 webservice的项目配置文件中增加对应的角色. ...

  5. java证书验证失败_使用certbot证书验证失败

    这是我的情况 . 我在Debian Jessie上运行Apache服务器 . 我在那里有3个域,3个月前,我运行Certbot以使用此命令安装ssl证书 sudo certbot --authenti ...

  6. java微信token验证_JAVA折腾微信公众平台(Token验证)

    最近微信的公众平台比较火,于是我也想弄个微信来玩玩.如何注册微信公众号?点击之后就可以看到官方的答案了(额,比较坑爹). 注册之后,可以选择编辑模式和开发模式,这里要说的是开发模式. 首先要开启开发模 ...

  7. java微信token验证_JAVA折腾微信公众平台(Token验证)[转]

    BAE的JAVA还在内测的时候,抱着好奇的态度发邮件申请了内测权限,当时折腾了一天,然后就没折腾了.现在BAE的JAVA都已经正式开放使用了,我又蛋疼的想写点什么,否则每天仅仅只是工作上的使用,是得不 ...

  8. java xml格式验证_Java中对XML文件的校验

    Java中使用dtd校验xml文件: 1.定义一个校验类CheckXML类: import org.w3c.dom.Document; import org.xml.sax.EntityResolve ...

  9. java密码安全验证_java安全编码指南之:输入校验

    简介 为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验. 本文将带领大家探讨一下用户输入校验的一些场景.一起来看看吧. 在字符 ...

  10. java手机号码格式验证_java 校验手机号格式

    主要用到这两个包: import java.util.regex.Matcher; import java.util.regex.Pattern; Pattern类用于创建一个正则表达式,生成一个Pa ...

最新文章

  1. 三大运营商3G无线上网套餐资费对比
  2. Android开发之触摸事件处理机制详解
  3. 机器人学习--扩展卡尔曼滤波算法用于机器人定位
  4. cocos2d-lua ARPG手机游戏《烈焰遮天》(客户端+服务端+数据库)发布说明
  5. Python清理微信被好友删除的人
  6. python文本分类评价指标 top1如何计算_推荐算法评价指标
  7. 【优化算法】爬虫搜索算法(RSA)【含Matlab源码 1838期】
  8. 17. 装箱、拆箱的最小化
  9. jpype了解,获取,安装
  10. 接口 常见视频接口详解
  11. 【数学】几何在线画图
  12. Linux —进程间的五种通信方式—(半双工管道、命名管道、消息队列、信号、共享内存),外加信号量。直接上代码:
  13. 只要你懂得人性,就不怕没钱赚!
  14. ReactJS Start/build内存溢出
  15. java垃圾回收代码
  16. aspose-words 解决Linux word转pdf 乱码和出现小方块问题
  17. 与IBM谈判搁浅 Sun及其CEO前景存疑
  18. Python小记——创建空集
  19. Neo4j数据库知识图谱查询关联人物关系和cypher查询
  20. 某餐馆有n张桌子,每张桌子有一个参数a表示 可容纳的最大人数,有m批客人,每批客人有两个参数,b表示人数,c为预计消费金额。

热门文章

  1. Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子
  2. 华为顶级黑客整理的399本编程电子书,整整16个G,你想学的都有
  3. 4万字长篇,详解平安集团全生态布局及大数据业务应用研究
  4. 新手学Java编程语言怎么入门?知识点都帮你整理好了
  5. 计算机课flash课件,flash动画制作获奖课件
  6. HTML页面日历插件
  7. Flash存储的故事
  8. 游戏服务器架构通识 BigWorlds丨skynet
  9. 谷歌电子市场开发记录(2)-框架搭建
  10. 查计算机硬盘序列号6,Win7电脑查看硬盘序列号的方法