HTTPS基本原理与应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS基本原理与应用相关的知识,希望对你有一定的参考价值。

HTTP存在的问题

1、无法保证访问到受信网站
当我们要访问一个网站时,如何才能保证这个网站就是我们要的?假设场景如下:

2、无法保证数据私密性和完整性
HTTP协议的数据在传输过程中使用明文传输,很容易被抓取和篡改,可使用tcpdump工具进行验证。

HTTPS的解决思路

1、网站受信鉴权
引入第三方授信服务商,由授信服务商提供网站证书签名,保证网站可信。

2、数据私密性和完整性
HTTPS协议利用网站证书签名来生成相应的公钥和密钥,对数据报文进行加解密处理。

HTTPS的流程和原理

以app<- - - ->server为例

前提
向第三方授信服务商购买证书,或在服务器生成本地证书,并将证书放到网站服务器的指定路径下,同时将证书发给客户端app保存在本地。

https的工作流程
1、校验服务器:客户端向CA机构认证服务器信息
2、协商会话密钥:客户端和服务器协商会话加密密钥
3、加密通讯:客户端和服务器使用会话密钥加密数据报文

注:由于非对称加密的算法复杂,占用较多CPU资源,实际使用时会放弃第7、8两步。


HTTPS的配置
以本地自签名证书为例

证书生成
由于没有向第三方申请证书,我们使用openssl生成本地证书来演示https的配置。

nginx配置https端口转发
1、nginx需要安装支持ssl的模块。
2、在nginx配置文件中新增https端口转发配置

证书生成

1、制作证书私钥:
>openssl genrsa -des3 -out test_yunqixin_service.crt 1024

2、使用证书私钥制作解密后的证书私钥:
>openssl rsa -in test_yunqixin_service.crt  -out test_yunqixin_service_nopass.key

3、使用证书私钥生成证书签名:
>openssl req -new -key test_yunqixin_service.crt -out test_yunqixin_service.csr
提示输入证书信息:Common Name (eg, your name or your server‘s hostname) []:
此处我们输入网站域名:test.yunqixin.site,
这很重要,必须输入证书绑定的域名

4、使用证书私钥和签名生成证书crt文件:
>openssl x509 -req -days 10000 -in test_yunqixin_service.csr -signkey test_yunqixin_service_nopass.key -out test_yunqixin_service.crt

证书生成
经过上面四个步骤,得到.crt文件和.key文件,内容如下。
这两个文件也是需要配置到nginx的配置文件里面。



nginx配置https端口转发
1、ssl配置:端口(默认443)、ssl协议及版本、ssl加密方式、证书路径
2、nginx转发配置:与http转发配置一致

https效果

以上是关于HTTPS基本原理与应用的主要内容,如果未能解决你的问题,请参考以下文章

Kafka实战-基本应用与消息处理原理(上)

[激光原理与应用-18]:《激光原理与技术》-4- 粒子数反转与“光”强放大的基本原理

6.支持向量机(SVM)什么是SVM支持向量机基本原理与思想基本原理课程中关于SVM介绍

WebService基本原理和特点?

HDFS基本架构原理与应用场景实践(附ppt)

生成对抗网络 GAN 基本原理与发展历程