Nginx详解二十:Nginx深度学习篇之HTTPS的原理和作用、配置及优化

 

一、HTTPS原理和作用:

1、为什么需要HTTPS?
原因:HTTP不安全
1.传输数据被中间人盗用、信息泄露
2.数据内容劫持、篡改

 

2、HTTPS协议的实现
对传输内容进行加密以及身份验证

对称加密:加密秘钥和解密秘钥是对等的,一样的

 

非对称加密:

 

HTTPS加密协议原理:

中间人伪造客户端和服务端:

HTTPS的CA签名证书:

 

二、证书签名生成CA证书

 

先确认环境:已经安装openssl和nginx已经编译ssl的模块

 

生成秘钥和CA证书步骤:

步骤1、生成key秘钥

步骤2、生成证书签名请求文件(csr文件)

步骤3、生成证书签名文件(CA文件)

 

三、证书签名生成和Nginx的HTTPS服务场景演示

 1、生成key秘钥

先创建一个用来放秘钥的文件夹

 

输入加密算法:openssl genrsa -idea -out jesonc.key 1024

回车,会让输入密码,这里设置为123456,完成后会生成一个.key的文件

 

2、生成证书签名请求文件(csr文件):openssl req -new -key jesonc.key -out jesonc.csr

 

3、生成证书签名文件(CA文件)

打包:openssl x509 -req -days 3650 -in jesonc.csr -signkey jesonc.key -out jesonc.crt

 -days 3650:证书过期时间,10年

 

Nginx的HTTPS语法配置

ssl开关
配置语法:ssl on|off;
默认状态:ssl off;
配置方法:http、server

ssl证书文件
配置语法:ssl_certificate file;
默认状态:-
配置方法:http、server

ssl密码文件
配置语法:ssl_certificate_key file;
默认状态:ssl off;
配置方法:http、server

 

进入/etc/nginx/conf.d/

server
{
listen 443;
server_name 192.168.1.141 jeson.t.imooc.io;
ssl on;
ssl_certificate /etc/nginx/ssl_key/jesonc.crt;
ssl_certificate_key /etc/nginx/ssl_key/jesonc.key;
#ssl_certificate_key /etc/nginx/ssl_key/jesonc_nopass.key;

index index.html index.htm;
location / {
root /opt/app/code;
}
}

 

配置好之后,关闭和启动,都需要数之前设置的密码

关闭:nginx -s stop -c /etc/nginx/nginx.conf

启动:nginx -c /etc/nginx/nginx.conf 

确认已启用443的监听:netstat -luntp|grep 443

浏览器访问

 

 

HTTPS服务优化

方法一:激活keepalive长连接

方法二:设置ssl session缓存

 检查并重载:

 

posted @ 2019-03-14 23:05  向前走。  阅读(3517)  评论(0编辑  收藏  举报