android使用ssl与服务端进行通信

本文介绍了如何在Android应用中使用SSL与服务端进行安全通信。详细步骤包括生成JKS和BKS密钥库,服务器和客户端证书的创建,以及在Android客户端中设置SSL上下文。同时提到了Android需要使用Bouncy Castle库来支持BKS格式。
摘要由CSDN通过智能技术生成

前言:

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
而默认情况下,java利用的是TLS和JKS密库,而android则使用规定的BKS密库。

1.生成服务端JKS秘钥与证书指令

  • keytool -genkey -keystore server.jks -storepass 密码 -keyalg RSA -keypass 密码

    服务器导出证书server.crt

  • keytool -exportcert -keystore server.jks -storepass 密码 -file server.crt

2.生成客户端BKS秘钥与证书
在这之前,因为Android 要求要BC证书,而Java的keytool本身不提供BKS格式,因此要自己手动配置。

2.1需要到Bouncy Castle的官网去下载对应JDK的包
http://www.bouncycastle.org/latest_releases.html
我这里用的是bcprov-jdk15on-146.jar。

2.2配置bcprov
把下载的bcprov包放到jdk_home\jre\lib\ext目录下
在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行(数字可以自己定义)
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
客户端指令:

  • keytool -genkey -keystore client.bks -storepass 密码 -keyalg RSA -keypass 密码 -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
  • keytool -exportcert -keystore client.bks -storepass 密码 -storetype BKS -file client.crt -provider org.bouncycastle.jce.provider.BouncyCastleProvider

最后把各自证书导入到信任库

  1. keytool -import -keystore tserver.bks -storetype BKS -storepass 密码 -file server.crt
  2. keytool -import -keystore tclient.jks -store
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值