android请求https(一)生成BKS

本文介绍如何在Android中处理HTTPS请求,重点是将证书转换为BKS格式。首先,通过keytool生成证书,然后由于Android不支持JKS格式,需要下载bcprov.jar并添加BouncyCastleProvider。提供了两种将证书转换为BKS格式的方法,尽管作者遇到了一些环境问题,但最终成功生成BKS文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文乃博主方便以后忘记可以快速拾起而撰写的,不喜勿喷。

最近公司的项目要用到https请求,负责服务器的同事给了我证书,搞了一天都没成功,老是挂掉。(如果不太清楚可以先搜索下SSL握手)

后来在网上才看到,android不支持jdk默认编译的“JKS”格式,只支持“BKS”、"P12"!博主周末花了一个下午的时间终于生成了“BKS”格式的key。(有图有真相)

首先你必须搭建好JDK运行环境。

一:生成证书

1:创建证书

<span style="white-space:pre">	</span>keytool -genkey -alias "ca" -keyalg "RSA" -keystore "suma.keystore" 

ca是密匙对的别名,是公开的

RSA是加密算法,默认是DSA


2.--查看证书

<span style="white-space:pre">	</span>keytool -list -keystore test.keystore 

别名ca是可见的

3--导出证书

<span style="white-space:pre">	</span>keytool -export -alias ca -file suma.crt -keystore suma.keystore

4--查看导出的证书

keytool -printcert -file "suma.crt"

后面几种我就不上图了,博主亲测是可以的

--导入证书
keytool -import -keystore suma.keystore  -file suma.crt 

--删除证书条目
keytool -delete -keystore suma.keystore -alias ca

--修改证书条目,交互式
keytool -keypasswd -alias ca -keystore suma.keystore 

--非交互式
keytool -keypasswd -alias ca -keypass 123456 -new 654321 -storepass 123456 -keystore suma.keystore  



-------------------重点分割线---------------------

二:转换BKS

前面说了这么多都是为了后面的处理做铺垫

首先BKS类型JDK是不自带的,需要下载bcprov的jar包,可以到官网下载。 

1:

接下来把jar包放到C:\Program Files\Java\jdk1.6.0_43\jre\lib\ext

在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行(数字可以自己定义)

security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

keytool -importcert -keystore suma.bks -file suma.crt -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

------------如果报org.bouncycastle.jce.provider.BouncyCastleProvider 这个文件找不到的话,就是jar放错位置了

----------------如果死活都不行的话请看方法2

2:

keytool -importcert -v -trustcacerts -file suma.crt -alias ca -keystore suma.bks -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath h:/bcprov-ext-jdk15on-152.jar  -storetype BKS -storepass storepass


------------------------分割线----------------------------

博主使用第2种方法做出来的下午,死活都报错,估计环境有点问题,翻阅了大量网页资料,最后使用绝对地址方式做出来。晚上写博文的时候居然第一种也可以成功,也是醉了,白白多弄了几个小时。


到目前位置BKS已经生成好了,这篇就先写到这,下一篇写请求代码



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值