Android HTTPS 自制证书实现双向认证(OkHttp + Retrofit + Rxjava)(2)

本文详细介绍了在Android中使用OkHttp + Retrofit + Rxjava实现HTTPS双向认证的过程,包括JKS、P12、CER、BKS证书格式的解释,以及客户端和服务器端证书的生成、交换和配置。重点讲解了如何将证书转换为BKS格式供Android使用,以及如何在Tomcat服务器和Android应用中配置SSL。最后,提供了Android App获取SSLFactory实例进行网络访问的代码示例。
摘要由CSDN通过智能技术生成

***JKS:***数字证书库。JKS里有KeyEntry和CertEntry,在库里的每个Entry都是靠别名(alias)来识别的。

P12:是PKCS12的缩写。同样是一个存储私钥的证书库__,由.jks**文件导出的,用户在PC平台安装,用于标示用户的身份

***CER:***俗称数字证书,目的就是用于存储公钥证书,任何人都可以获取这个文件 。

BKS:由于Android平台不识别.keystore__和.jks**格式的证书库文件,因此Android平台引入一种的证书库格式,BKS。

有些人可能有疑问,为什么Tomcat只有一个server.keystore文件,而客户端需要两个库文件?

因为有时客户端可能需要访问过个服务,而服务器的证书都不相同,因此客户端需要制作一个truststore来存储受信任的服务器的证书列表。因此为了规范创建一个truststore.jks用于存储受信任的服务器证书,创建一个client.jks来存储客户端自己的私钥。对于只涉及与一个服务端进行双向认证的应用,将server.cer导入到client.jks中也可。

具体步骤如下:


1.生成客户端keystore

keytool -genkeypair -alias client -keyalg RSA -validity 3650 -keypass 123456 -storepass 123456 -keystore client.jks

2.生成服务端keystore

keytool -genkeypair -alias server -keyalg RSA -validity 3650 -keypass 123456 -storepass 123456 -keystore server.keystore

//注意:CN必须与IP地址匹配,否则需要修改host

3.导出客户端证书

keytool -export -alias client -file client.cer -keystore client.jks -storepass 123456

4.导出服务端证书

keytool -export -alias server -file server.c

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值