我正在编写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相关推荐

  1. 服务器客户端证书,客户端如何验证HTTPS服务端证书信息

    通过一个例子说明客户端如何验证HTTPS服务端的证书信息. 类型浏览器如何验证WEB服务器的证书信息. 生成服务器端证书,以及CA证书 # generate ca certificate $ open ...

  2. 客户端证书与服务器证书有什么区别?

    客户或用户身份 对某些人来说,提及PKI或"客户证书"可能会让人想起保护和完成客户在线交易的企业形象,但这些证书在我们的日常生活中以各种口味发现; 当我们登录VPN时; 在自动柜员 ...

  3. OpenSSL创建生成CA证书、服务器、客户端证书及密钥

    使用OpenSSL创建生成CA证书.服务器.客户端证书及密钥 目录 使用OpenSSL创建生成CA证书.服务器.客户端证书及密钥 (一)生成CA证书 (二)生成服务器证书 (三)生成客户端证书 (四) ...

  4. 趋势修改服务器地址,趋势客户端修改连接服务器

    趋势客户端修改连接服务器 内容精选 换一换 GaussDB(DWS) 支持SSL认证方式的连接,以加密GaussDB(DWS) 客户端与数据库之间传输的数据.SSL连接方式的安全性高于普通模式,集群默 ...

  5. 通过网页查看服务器算法,服务器使用国密(SM2/SM3/SM4)证书,通过浏览器访问

    1. Apache + Gmssl Apache 本身不支持国密,需要修改代码支持GMTLS 下载解压: wget http://archive.apache.org/dist/httpd/httpd ...

  6. 使用证书保护网站--兼谈证书服务器吊销列表的使用

    现在许多企业与个人,都拥有属于自己的网站,并且发布在Internet供朋友.合作伙伴或其他人所访问,但是,在许多情况下,某些发布到Internet的网站,只想让指定的用户或指定的人来访问,那么应该怎么 ...

  7. curl+个人证书(又叫客户端证书)访问https站点

    目前,大公司的OA管理系统(俗称内网),安全性要求较高,通常采用https的双向 认证模式. 首先,什么是https,简单的说就是在SSL协议之上实现的http协议(get.post等操作).更多的介 ...

  8. ssl/tls服务器瞬时_SSL / TLS REST服务器–带有Spring和TomEE的客户端

    ssl/tls服务器瞬时 在构建系统时,开发人员通常会忽略安全性方面. 安全一直是令人担忧的重要问题,但是它比以前吸引了更高的关注. 就在今年,我们发生了像Heartbleed Bug或Celebri ...

  9. SSL / TLS REST服务器–带有Spring和TomEE的客户端

    在构建系统时,开发人员通常会忽略安全性方面. 安全一直是令人担忧的重要问题,但是它比以前吸引了更高的关注. 就在今年,我们发生了像Heartbleed Bug或CelebrityGate丑闻这样的案件 ...

  10. ifix怎么装服务器系统上,ifix服务器和客户端配置

    ifix服务器和客户端配置 内容精选 换一换 准备好服务端和客户端,根据组网规划完成物理服务器的物理组网.本文档中以3台客户端和3台TaiShan服务器作为服务端为例.本次部署流程中以3台客户端节点和 ...

最新文章

  1. python vars 的用法
  2. ev3dev:设置自动登录wifi
  3. python中的Lock与RLock
  4. android功能导航布局,安卓9.0新功能 屏幕旋转将与导航栏同窗
  5. 个人工作总结05(第二次冲刺)
  6. zabbix-2.0.8日常巡检-检测项目状态
  7. Arrays工具类和二维数组
  8. spring配置文件约束
  9. fatal error: highgui.h: No such file or directory
  10. shell脚本小程序之特洛伊木马示例
  11. JPA报 Error executing DDL
  12. 扫雷c语言完整源代码,C语言扫雷源码
  13. Java中如何不用中间变量来使两个变量交换值
  14. java项目开发实战入门电子书,java项目开发实战入门全彩版
  15. ERP开发的一些闲话—之一
  16. 九月总结:快速成长的一个月
  17. HTML5——监听手机的一些事件:手机加速度devicemotion、设备方向变化deviceorientation、手机摇一摇、指南针
  18. 修改3389端口的方法?
  19. Rhcsa第四次课堂练习
  20. Hello World | 每个被生活暴击的成年人,都要学会按重启键

热门文章

  1. 阿宁的linux学习---vi/vim
  2. 金融计量模型(一):引言
  3. 5G新型调制技术FBMC【5G】
  4. 一个链接搞定源码下载
  5. 线性规划问题的目标函数灵敏度分析
  6. 高中计算机工作要点,高中信息技术工作计划
  7. 计算机行业的最新技术,计算机行业发展空间巨大 三大必然趋势引领发展
  8. 大数据战略对企业生存有多重要?
  9. git文件没有绿色红色小图标
  10. 解决mac按键精灵鼠标位置不准(连点器)