Android HTTPS之自签名证书认证(一)

Android HTTPS单向认证实践:自签名证书配置
本文详细介绍了在Android应用中使用okhttp框架实现HTTPS单向认证的过程,包括自签名证书的生成、Tomcat服务器配置以及Android端的代码实现。通过设置信任自签名证书,解决因未验证的证书导致的安全问题。

使用okhttp框架 单向认证

鉴于技术或者框架的不断更新,网上介绍的Android客户端访问自签名证书的网站的博客很多已无法使用,故本博文将详细介绍一下Android SSL/TLS HTTPS请求。

开发环境:

  • JDK 1.8

  • Tomcat 8.0

  • IDE: Android Studio 2.3.3

1.1 生成自签名证书

  • 生成server端证书库
keytool -genkey -alias server -keyalg RSA -storetype PKCS12 -keysize 2048 -keystore E:/ssl/server.p12 -validity 3650 -storepass 123456 -keypass 123456

C:\Users\liting.wang>keytool -genkey -alias server -keyalg RSA -storetype PKCS12-keysize 2048 -keystore E:/ssl/server.p12 -validity 3650 -storepass 123456 -keypass 123456

您的名字与姓氏是什么?

[Unknown]: Liting Wang

您的组织单位名称是什么?

[Unknown]: Onroad

您的组织名称是什么?

[Unknown]: Onroad

您所在的城市或区域名称是什么?

[Unknown]: Xiamen

您所在的省/市/自治区名称是什么?

[Unknown]: Fujian

该单位的双字母国家/地区代码是什么?

[Unknown]: CN

CN=Liting Wang, OU=Onroad, O=Onroad, L=Xiamen, ST=Fujian, C=CN是否正确?

[否]: y

填入各类信息,也可以放空,最后输入y, 即可在E:/ssl/目录下生成server.p12证书库

当然了,如果你觉得一个个的输入比较麻烦,也可以用命令行的方式表达,如下

keytool -genkey -alias server -keyalg RSA -storetype PKCS12 -keysize 2048 -keystore E:/ssl/server.p12 -dname "CN=Liting Wang,OU=onroad,O=onroad,L=Xiamen,ST=Fujian,c=cn" -validity 3650 -storepass 123456 -keypass 123456

解释:

-genkey:生成key

-alias:别名,独一无二,通常不区分大小写

-keyalg: 指定密钥的算法(如 RSA, DSA(如果不指定默认采用DSA))

-storetype:指定密钥仓库类型,无指定默认为JKS,但oracle建议使用PKCS12

-keysize :指定证书大小

-keystore:指定密钥库的名称,可指定路径,例如:E:/ssl/ 需要注意的是运行该命令之前需要先创建好该目录。

-validity:证书的有效期,单位:天。

  • 利用Server.p12来签发证书
keytool -export -alias server -file E:/ssl/server.cer -keystore E:/ssl/server.p12 -storepass 123456 

生成的server.cer证书是给客户端使用的。

1.2 Tomcat 配置

找到Tomcat安装目录的tomcat 8.0/conf/下找到server.xml配置文件,并以文本形式打开

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值