Nginx设置HTTPS的方法步骤

目录
  • 背景
    • HTTP
    • HTTPS
  • 配置过程
    • 域名证书申请
    • 编辑nginx.conf文件

背景

HTTP

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

优点

  • 支持客户/服务器模式
  • 简单快速:服务器当客户端请求服务时,只需传送请求方法和路径
  • 灵活: HTTP 允许任何类型的数据对象的传输
  • 无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能改变这个结果。

缺点

  • HTTP协议传输数据,都是通过明文的方式在互联网上传递(如账号、密码、身份信息、浏览器记录和交易记录)
  • 任何人都可以轻松拦截、窃取或篡改数据,可能造成你的隐私数据泄露(中间人攻击)

HTTPS

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。

原理图如下:

简单来说,https是在http的基础上添加了证书来验证安全性,客户端拿到了https的证书会向证书服务器去验证证书的真伪,这样就可避免中间人攻击。在向证书服务器验证证书后,客户端就能拿到服务器的公钥,同时客户端也会生成这次自己的私钥和公钥,在请求传输的过程中会使用服务器公钥将数据和客户端公钥进行加密,这种加密是非对称加密的(很难破解),服务器拥有私钥可以将数据进行解密。服务器返回数据时会使用客户端的公钥进行加密,这样只有客户端才能使用私钥解密数据。这个过程是安全的。

配置过程

这里我使用的是nginx服务器配置域名htpps(配置SSL证书)

域名证书申请

我是使用腾讯云购买的域名:sunbt.ltd

国内服务器使用域名时需要备案,这里我默认都已经备案

进入腾讯的SSL证书管理页面,申请对应的域名证书

下载对应的证书,这里我选择NGINX版本的

编辑nginx.conf文件

将证书解压放到服务器对应位置上

添加如下内容:

server {
        #SSL 访问端口号为 443
        listen 443 ssl;
        #填写绑定证书的域名
        server_name www.sunbt.ltd;
        #证书文件名称
        ssl_certificate /usr/local/nginx/conf/ssl/www.sunbt.ltd_bundle.crt;
        #私钥文件名称
        ssl_certificate_key /usr/local/nginx/conf/ssl/www.sunbt.ltd.key;
        ssl_session_timeout 5m;
        #请按照以下协议配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location @router {
            rewrite ^.*$ /index.html last;
         }
        location / {
                root /usr/local/nginx/html/web/blog; # /vue/dist/ 打包后的dist目录
                try_files $uri $uri/ @router; # 指向下面的 @router否则会出现 404
                index index.html index.htm;
        }

    }

让http请求跳转到https

修改配置如下:

server {
    listen 80;
    #填写绑定证书的域名
    server_name cloud.tencent.com;
    #把http的域名请求转成https
    return 301 https://$host$request_uri;
}

到此这篇关于NGINX设置HTTPS的文章就介绍到这了,更多相关NGINX设置HTTPS内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解nginx实现https网站设置

    一.HTTPS简介 1.https简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据 2.https协议原理 首先,客户端与服务器建立连接,各自生成私钥和公钥,是不同的.服务器返给客户端一个公钥,然后客户端拿着这个公钥把要搜索的东西加密,称之为密文,并连并自己的公钥一起返回给服务器,服务器拿着自己的私钥解密密文,然后把响应到的数据用客户端的公钥加密,返

  • 基于Nginx实现HTTPS网站设置的步骤

    目录 前言: 加密算法: 一.HTTPS 简介 二.Nginx 实现 HTTPS 网站设置 1.安装 Nginx 2.创建服务器证书密钥文件 3.创建服务器证书的申请文件 4.生成证书文件 5.修改 Nginx 主配置文件 前言: 首先在这里简单说一下为什么现在都在使用 HTTPS 协议: 其实使用 HTTPS 协议最大的原因就是因为 HTTP 协议不安全,因为 HTTP 数据传输时是:明文传输数据 也就是说当客户端在输入用户名和密码时,都会显示出来.而 HTTPS 协议的话则是 密文传输数据

  • Nginx设置HTTPS的方法步骤

    目录 背景 HTTP HTTPS 配置过程 域名证书申请 编辑nginx.conf文件 背景 HTTP 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法. 优点 支持客户/服务器模式 简单快速:服务器当客户端请求服务时,只需传送请求方法和路径 灵活: HTTP 允许任何类型的数据对象的传输 无连接:限制每次连接只处理一个

  • 为docker中的nginx配置https的方法步骤

    没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓.对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题.但对于个人用户来说,如果能有免费的 SSL/TLS 证书可用将会是非常幸福的事情!Let's Encrypt 就是一个提供免费 SSL/TLS 证书的网站,由于其证书期限只有三个月,所以需要我们用自动化的方式去更新证书.本文将介绍如何为通过 docker 运行的 nginx 中的站点添加 https 支持,并自动完成证书的更新.

  • Python requests设置代理的方法步骤

    指导文档: http://docs.python-requests.org/en/master/user/advanced/ 的Proxies http://docs.python-requests.org/en/latest/user/advanced/ 的SSL Cert Verification requests设置代理 import requests proxies = {'http': 'http://localhost:8888', 'https': 'http://localhos

  • linux设置定时任务的方法步骤

    一,首先登录 二,找到文件夹 三,查看定时任务 crontab -l 四,vi root 编辑定时任务 编辑完成后,点ESC,然后:wq 时间格式 分钟 小时 日期 月份 周 命令 数字范围 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log 特殊字符的含义 *(星号) 代表任何时刻都接受. ,(逗号) 代表分隔时段的意思. -(减号) 代表一段时间范围内. /n(斜线) 那个 n 代表数字,每隔 n 单位间隔. eg1: 每年的

  • Centos7.3 安装部署Nginx并配置https的方法步骤

    安装环境 1. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译 编译依赖 gcc 环境: yum install gcc-c++ 2. PCRE pcre-devel 安装 安装pcre-devel 是使用 pcre 开发的一个二次开发库.: yum install -y pcre pcre-devel 3. zlib 安装 zlib 库提供了很多种压缩和解压缩的方式, nginx 可以使用 zlib 对 http 包的内容进行 gzip: yum install -y zlib

  • nginx配置https的方法示例(免费证书)

    一.我们需要什么证书 之前写过一篇<tomcat https配置方法(免费证书)>的简书(想看的可以去我的主页里面看下,这两篇之间还是有许多相关联的知识的~),里面有提到过常用证书的分类,其中nginx使用的就是PEM格式的证书,我们将其拆分开就是需要两个文件,一个是.key文件,一个是.crt文件. 二.怎样获取免费证书 这里提供两个方法: 第一种:如果你是windows用户,且有.keystore格式的证书 那么你可以使用JKS2PFX转换工具,将你的keystore证书转换为PEM证书,

  • CentOS7将Nginx添加系统服务的方法步骤

    导语 经过编译安装以及解决问题,Nginx 已经运行正常,但是此时 Nginx 并没有添加进系统服务.接下来会将 Nginx 添加进系统服务并且设置开机启动. 查看服务 首先查看 Nginx 的服务状态,输入 systemctl status nginx,结果如下 没有找到相关的服务,下一步就是添加系统服务. 添加系统服务 在 /usr/lib/systemd/system 目录中添加 nginx.service,根据实际情况进行修改,详细解析可查看下方参考资料中的文章.内容如下 [Unit]

  • Nginx下升级https的方法步骤

    购买证书 可以去阿里云的云盾证书服务购买 下载证书 在证书控制台下载 Nginx 版本证书.下载到本地的压缩文件包解压后包含: .pem 文件:证书文件 .key 文件:证书的私钥文件(申请证书时如果没有选择 自动创建CSR ,则没有该文件) 配置Nginx 1.在 Nginx 的安装目录下创建 cert 目录,并且将下载的全部文件拷贝到 cert 目录中,如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到 cert 目录下. 2.打开 Nginx 安装目录下 conf 目录中的 ng

  • docker完整配置nginx+php+mysql的方法步骤

    首先了解一个方法: 使用docker exec进入Docker容器 docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用: sudo docker exec --help 接下来我们使用该命令进入一个已经在运行的容器 $ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash 一. 配置nginx 查找Docker Hub上的 nginx 镜像 runoob

  • 使用Docker Compose 实现nginx负载均衡的方法步骤

    以Docker的网络管理,容器的IP设置为基础知识实现Nginx负载均衡 查看所有docker网络 docker network ls /* NETWORK ID NAME DRIVER SCOPE b832b168ca9a bridge bridge local 373be82d3a6a composetest_default bridge local a360425082c4 host host local 154f600f0e90 none null local */ // compose

随机推荐