分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

HTTPS协议

发布时间:2023-09-06 02:03责任编辑:白小东关键词:暂无标签

HTTPS协议原理

  https协议是http协议的一种升级版,具有一定的安全性。在http协议和TCP协议之间有一层安全协议SSL或者STL。在通信之前通过SSL或者STL协议对数据进行加密,HTTPS协议既具有单向认证功能也具有双向认证功能。

SSL/TLS

SSL/TLS协议分为两层协议,一层是记录协议,一层是握手协议。

握手协议步骤如下:

1、客户端发送信息到服务端,信息包含如下内容:协议的版本信息、加密算法、压缩算法、产生的随机数等。

2、服务端在收到信息后,会向客户端发出响应信息,包含:协议的版本信息、加密算法、压缩算法、产生的随机数、数字证书等。

3、客户端在收到信息后对证书进行校验。

4、客户端验证证书合法性后,会对服务端发送经过服务端公钥加密后的预主秘钥,

5、服务端在收到预主秘钥后,通过私钥进行解密,并使用两端的随机数加上预主秘钥来生成主秘钥,然后通过主秘钥生成加密秘钥。

6、客户端也会通过预主秘钥、两端的随机数生成客户端的主秘钥,并通过主秘钥生成加密秘钥。

7、客户端通知服务端未来信息使用加密秘钥加密信息。

8、服务端通知客户端未来信息使用的加密秘钥加密信息。

HTTPS协议实现

HTTPS协议的实现主要分为两步:创建证书和配置nginx。

一、创建证书

配置一个HTTPS服务所需要的证书包括几个部分:

  • Server Key(服务器私钥)
  • CSR(Certificate Signing Request)
  • CRT(X509 Certificate)

创建证书的基本流程是这样:

  • 生成自己的服务端私钥
  • 输入基本信息并用私钥签名生成CSR
  • 提交CSR给证书机构CA(免费或商业证书)签名生成CRT,或自己做CA签名生成CRT(自签名证书)

创建证书的步骤如下:

1、生成服务器私钥:

openssl genrsa 1024 > server.key

说明:这是用128位rsa算法生成密钥,得到server.key文件

2、生成CSR:

openssl req -new -keyserver.key-outcertreq.csr

说明:这是用步骤1的密钥生成证书请求文件server.csr, 这一步提很多问题,一一输入

3、生成证书:

openssl req -x509 -days 365 -key server.key -in server.csr > server.crt

说明:这是用步骤1,2的的密钥和证书请求生成证书server.crt,-days参数指明证书有效期,单位为天。

二、在nginx中配置

1、修改nginx配置文件

server { ???????listen ??????443; ???????server_name ?selfssl.hxkj.vip; ?//此处填写你自己的域名 ???????ssl on; ???????root ????????/usr/share/nginx/html; ???????ssl_certificate "/home/ssl/ssl.crt"; ??//此处填写刚刚生成的ssl.crt文件路径 ???????ssl_certificate_key "/home/ssl/ssl.key"; ???//此处填写刚刚生成的ssl.key文件路径 ???????ssl_session_cache shared:SSL:1m; ???????ssl_session_timeout ?5m; ???????ssl_protocols SSLv2 SSLv3 TLSv1; ???????ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ???????ssl_prefer_server_ciphers on; ???????location / { ???????} ???????error_page 404 /404.html; ???????????location = /40x.html { ???????} ???????error_page 500 502 503 504 /50x.html; ???????????location = /50x.html { ???????} ???}

2、进行热加载

  nginx -s reload

HTTPS协议

原文地址:https://www.cnblogs.com/youzhongmin/p/9260926.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved