学习背景
-
大家在nginx安装(nginx安装教程)后,启动nginx,访问静态页面时,一般都是直接通过
HTTP
协议进行访问页面,如下图所示:
-
但实际应用中,有很多网站基于安全方面上的考虑,都有自己的
SSL证书
,基于HTTPS
协议进行访问,例如:
-
这篇文章主要是介绍
基于openssl生成自颁发证书实现HTTPS协议访问
,进入正文之前,先来复习一下,HTTP
和HTTPS
的区别吧 -
HTTP
全称Hypertext Transfer Proctocol
超文本传输协议,是计算机世界里专门在两点之间传输数据的约定和规范,主要分为Hypertext
、Transfer
、Proctocol
三部分Hypertext
:超文本,两点之间传送的数据,不单单只是本文,它还可以传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转Transfer
:传输就是数据需要经过一系列的物理介质从一个端系统传送到另外一个端系统的过程。通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方Proctocol
:协议指的就是网络中传递、管理信息的一些规范,如同人与人之间相互交流通过语言、肢体动作等规范完成,计算机也需要遵循相应的规则,这些规则称为协议,如TCP/IP
网络模型中,网络层基于IP协议、传输层基于TCP/UDP
协议、应用层基于HTTP/FTP/Telnet
协议等
*HTTP
是不安全的协议,未经过任何加密,传输过程容易被攻击者监听、数据容易被窃取、发送方和接收方容易被伪造HTTP
默认端口HTTP是80
-
HTTPS
并非新协议,相比于HTTP
只是多了个S,表示Secure
安全- 安全的原理是基于
HTTP
+TCL/SSL
协议组合实现的,所以HTTP和HTTPS的主要区别本质在于TCL/SSL安全协议
上的区别 HTTPS
是一种安全的协议,通过密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法确保安全HTTPS
默认443
端口
- 安全的原理是基于
进入正文~
一、SSL证书生成
1.1 检查环境
- 登录Linux服务器,本文使用示例用户
nginx
,检查openssl
是否安装
openssl version
1.2 规划目录
- 创建自颁发证书存放路径
mkdir -p /home/nginx/certificate/