一、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缓存

检查并重载:

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

  1. Nginx详解二十四:Nginx深度学习篇之灰度发布

    实战场景 - 灰度发布 灰度发布的作用:按照一定的关系区别,分部分的代码进行上线,使代码的发布能平滑过渡上线实现方式: 1.用户的信息cookie等信息区别 2.根据用户的IP地址 安装memcach ...

  2. Nginx详解二十六:Nginx架构篇之性能优化

    一.性能优化考虑点 1.当前系统结构瓶颈 通过压力测试观察指标.日志检测.性能分析 2.了解业务模式 接口业务类型.系统层次化结构 3.性能与安全 二.ab接口压力测试工具 1.安装:yum -y i ...

  3. Nginx详解二十八:Nginx架构篇Nginx+Lua的安全waf防火墙

    Nginx+Lua的安全waf防火墙 看一下别人写好的:https://github.com/loveshell/ngx_lua_waf 先安装git:yum -y install git 在/opt ...

  4. Nginx详解二十五:Nginx架构篇之Nginx常见的问题

    Nginx常见的问题 1.相同server_name多个虚拟主机优先级访问,是按读取文件的优先级来排序 在/opt/app/下准备3个code文件夹,下面放入3个html文件,里面的内容分别是code ...

  5. Nginx详解二十二:Nginx深度学习篇之Lua解释器安装及基础语法

    解释器 Lua:Lua是一个简洁.轻量.可扩展的脚本语言 Nginx+Lua优势充分的结合Nginx的并发处理epoll优势的Lua的轻量实现简单的功能切高并发的场景 安装Lua 1.安装解释器:yu ...

  6. Nginx详解二十九:基于Nginx的中间件架构设计

    基于Nginx的中间件架构 一:了解需求 1.定义Nginx在服务体系中的角色 1.静态资源服务 2.代理服务 3.动静分离 2.静态资源服务的功能设计 3.代理服务 二:设计评估 三:配置注意事项

  7. Nginx详解二:Nginx基础篇之Nginx的优点

    Nginx是一个开源且高性能.可靠的HTTP中间件.代理服务 常见的HTTP服务: HTTPD--Apache基金会 IIIS--微软 GWS--Google(不对外开放) Nginx优势: 一.IO ...

  8. Nginx详解二十三:Nginx深度学习篇之Nginx+Lua开发环境搭建

    Nginx+Lua开发环境 1.下载LuaJIT解释器wget http://luajit.org/download/LuaJIT-2.0.2.tar.gztar -zxvf LuaJIT-2.0.2 ...

  9. Nginx详解二十一:Nginx深度学习篇之配置苹果要求的openssl后台HTTPS服务

    配置苹果要求的证书: 1.服务器所有的连接使用TLS1.2以上的版本(openssl 1.0.2) 2.HTTPS证书必须使用SHA256以上哈希算法签名 3.HTTPS证书必须使用RSA2048位或 ...

随机推荐

  1. python 数据分析2

    本节概要 Numpy详解 安装 Numpy的安装已经不想多说..在确保pip或pip3的路径被添加到系统环境变量里面之后,就可以直接用下面语句进行安装. pip install numpy or pi ...

  2. 关于java11 - 应该知道的

    Local Variable Type Inference# HTTP Client# Collections# Streams# Optionals# Strings# InputStreams# ...

  3. Spring重温(一)--Spring快速入门

    1.spring官网(https://repo.spring.io)下载依赖jar. 2.配置spring环境时还需要commons-logging相关jar. 3.打开eclise创建一个工程,并将 ...

  4. graph slam BACK END 相关技术资料收集

    学习SLAM首推2个网站: 1. WIKI上的SLAM介绍与资源总结:http://en.wikipedia.org/wiki/Simultaneous_localization_and_mappin ...

  5. Error "Client wants topic A to have B, but our version has C. Dropping connection."

    ROS problem 出现这个问题的原因是话题上的消息类型和订阅节点指定的消息类型不匹配.

  6. Python学习笔记-随机数

    IronPython的random 只能在0-0.5之间,所以最后调用了C#的Random. #!/usr/bin/python #coding=utf-8 import random import ...

  7. go语言time包的学习(Time,Location,Duration,Timer,Ticker)

    package main;   import (     "time"     "fmt" )   func main() {     //time.Time代 ...

  8. QML 从入门到放弃

    发现了一个问题: QQuickView only supports loading of root objects that derive from QQuickItem. If your examp ...

  9. python3编码(encode,decode)

    python3默认编码为unicode,由str类型进行表示.二进制数据使用byte类型表示. 字符串通过编码转换成字节码,字节码通过解码成为字符串 encode:str --> bytes d ...

  10. 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别

    在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...