服务器客户端证书,使用服务器和客户端证书以及私钥创建SSLContext
我正在编写Android应用程序。它通过TLS连接到服务器。我从服务器作者那里收到了3个文件供使用(以检查通信,以后将生成密钥):
-服务器证书(cacrt.crt)
-客户端证书(clientcrt.crt)
-客户端私钥(clientkey.key)
我正在尝试使用这些键创建SSLContext,但遇到一些问题。我无法以.crt和.key文件的格式加载它们,因此我将它们转换为BKS格式(client.bks用于客户端,server.bks用于服务器密钥)。但是在创建KeyStore KeyStoreException: KeyStore was not initialized时出现异常。
这是我的代码:
val clientCrt = CertificateFactory.getInstance("X.509").generateCertificate(resources.openRawResource(R.raw.clientcrt))
val keyManagerFactory = KeyManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
val keyStore = KeyStore.getInstance("BKS")
val keyInputClient = resources.openRawResource(R.raw.client)
keyStore.load(keyInputClient, "123456".toCharArray())
keyStore.setCertificateEntry("ca", clientCrt)
keyInputClient.close()
keyManagerFactory.init(keyStore, "123456".toCharArray())
val inputStream2 =
val serverCrt = CertificateFactory.getInstance("X.509").generateCertificate(resources.openRawResource(R.raw.cacrt))
val keyStore2 = KeyStore.getInstance("BKS")
val keyInputServer = resources.openRawResource(R.raw.server)
keyStore.load(keyInputServer, "123456".toCharArray())
keyStore2.setCertificateEntry("ca", serverCrt) //
keyInputServer.close()
val trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
trustManagerFactory.init(keyStore2);
val sslContext = SSLContext.getInstance("TLS")
sslContext.init(keyManagerFactory.keyManagers, trustManagerFactory.trustManagers, SecureRandom())
您能帮我解决吗?我不知道我在做什么错。
服务器客户端证书,使用服务器和客户端证书以及私钥创建SSLContext相关推荐
- 服务器客户端证书,客户端如何验证HTTPS服务端证书信息
通过一个例子说明客户端如何验证HTTPS服务端的证书信息. 类型浏览器如何验证WEB服务器的证书信息. 生成服务器端证书,以及CA证书 # generate ca certificate $ open ...
- 客户端证书与服务器证书有什么区别?
客户或用户身份 对某些人来说,提及PKI或"客户证书"可能会让人想起保护和完成客户在线交易的企业形象,但这些证书在我们的日常生活中以各种口味发现; 当我们登录VPN时; 在自动柜员 ...
- OpenSSL创建生成CA证书、服务器、客户端证书及密钥
使用OpenSSL创建生成CA证书.服务器.客户端证书及密钥 目录 使用OpenSSL创建生成CA证书.服务器.客户端证书及密钥 (一)生成CA证书 (二)生成服务器证书 (三)生成客户端证书 (四) ...
- 趋势修改服务器地址,趋势客户端修改连接服务器
趋势客户端修改连接服务器 内容精选 换一换 GaussDB(DWS) 支持SSL认证方式的连接,以加密GaussDB(DWS) 客户端与数据库之间传输的数据.SSL连接方式的安全性高于普通模式,集群默 ...
- 通过网页查看服务器算法,服务器使用国密(SM2/SM3/SM4)证书,通过浏览器访问
1. Apache + Gmssl Apache 本身不支持国密,需要修改代码支持GMTLS 下载解压: wget http://archive.apache.org/dist/httpd/httpd ...
- 使用证书保护网站--兼谈证书服务器吊销列表的使用
现在许多企业与个人,都拥有属于自己的网站,并且发布在Internet供朋友.合作伙伴或其他人所访问,但是,在许多情况下,某些发布到Internet的网站,只想让指定的用户或指定的人来访问,那么应该怎么 ...
- curl+个人证书(又叫客户端证书)访问https站点
目前,大公司的OA管理系统(俗称内网),安全性要求较高,通常采用https的双向 认证模式. 首先,什么是https,简单的说就是在SSL协议之上实现的http协议(get.post等操作).更多的介 ...
- ssl/tls服务器瞬时_SSL / TLS REST服务器–带有Spring和TomEE的客户端
ssl/tls服务器瞬时 在构建系统时,开发人员通常会忽略安全性方面. 安全一直是令人担忧的重要问题,但是它比以前吸引了更高的关注. 就在今年,我们发生了像Heartbleed Bug或Celebri ...
- SSL / TLS REST服务器–带有Spring和TomEE的客户端
在构建系统时,开发人员通常会忽略安全性方面. 安全一直是令人担忧的重要问题,但是它比以前吸引了更高的关注. 就在今年,我们发生了像Heartbleed Bug或CelebrityGate丑闻这样的案件 ...
- ifix怎么装服务器系统上,ifix服务器和客户端配置
ifix服务器和客户端配置 内容精选 换一换 准备好服务端和客户端,根据组网规划完成物理服务器的物理组网.本文档中以3台客户端和3台TaiShan服务器作为服务端为例.本次部署流程中以3台客户端节点和 ...
最新文章
- python vars 的用法
- ev3dev:设置自动登录wifi
- python中的Lock与RLock
- android功能导航布局,安卓9.0新功能 屏幕旋转将与导航栏同窗
- 个人工作总结05(第二次冲刺)
- zabbix-2.0.8日常巡检-检测项目状态
- Arrays工具类和二维数组
- spring配置文件约束
- fatal error: highgui.h: No such file or directory
- shell脚本小程序之特洛伊木马示例
- JPA报 Error executing DDL
- 扫雷c语言完整源代码,C语言扫雷源码
- Java中如何不用中间变量来使两个变量交换值
- java项目开发实战入门电子书,java项目开发实战入门全彩版
- ERP开发的一些闲话—之一
- 九月总结:快速成长的一个月
- HTML5——监听手机的一些事件:手机加速度devicemotion、设备方向变化deviceorientation、手机摇一摇、指南针
- 修改3389端口的方法?
- Rhcsa第四次课堂练习
- Hello World | 每个被生活暴击的成年人,都要学会按重启键