Android使用NanoHttpd在app内搭建https server(二)

本文档详细介绍了如何将NanoHttpd服务器从HTTP升级到HTTPS,重点在于使用自签名证书以确保安全性。首先,解释了HTTPS的基本工作原理和CA证书的角色。接着,展示了如何创建自签名证书,包括使用KeyStoreExplorer创建BKS-V1密钥库,并在Android项目中应用。最后,演示了在Postman和浏览器中验证自签名证书的过程,以及提供了一个简单的MainActivity代码示例。整个过程旨在确保本地HTTP服务器支持安全的HTTPS连接。

一、场景

由于需求和安全的考虑,需要将上一篇文档,使用NanoHttpd搭建的http server改成https的协议,但由于我们测试没办法正式的CA机构颁发的数字证书,所以就使用自签名的方式来验证https server。

由于查看源码得知,NanoHttpd是支持Https的,Support for HTTPS (SSL)

 二、Https协议相关的基础知识

        HTTPS的基本工作原理想必对于许多开发者来说是非常熟悉的了,我们一起先回忆一下HTTP常见的八股文中的描述:

1.客户端(浏览器)访问 HTTPS 的URL;
2.服务器返回 HTTPS 使用的 CA 证书;
3.客户端(浏览器)验证 CA 证书是否为合法证书;
4.验证通过,证书合法,生成一串随机数并使用公钥(证书中提供的)进行加密;
5.发送公钥加密后的随机数给服务器;
6.服务器拿到密文,通过私钥进行解密,获取到随机数(公钥加密,私钥解密,反之也可以);
7.服务器把要发送给浏览器的内容,使用随机数进行加密后传输给客户端(浏览器);
8.此时客户端(浏览器)可以使用随机数进行解密,获取到服务器的真实传输内容。
 

        那么我们回到我们的主题里,首先需要知道CA证书是什么,CA是证书颁发机构(Certificate Authority)的缩写,那么CA证书就是证书机构颁发的一种数字证书,为什么需要这个机构来颁发证书呢?可以理解为就是一个第三方担保机构,这个担保机构保证了在客户端和服务器的通讯阶段的安全,这样客户端只要是看到证书是这个担保机构担保过的,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值