Nginx设置HTTPS的方法步骤 443证书配置方法


Posted in Servers onMarch 21, 2022

背景

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 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。

原理图如下:

Nginx设置HTTPS的方法步骤 443证书配置方法

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

配置过程

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

域名证书申请

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

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

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

Nginx设置HTTPS的方法步骤 443证书配置方法

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

Nginx设置HTTPS的方法步骤 443证书配置方法

编辑nginx.conf文件

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

Nginx设置HTTPS的方法步骤 443证书配置方法

添加如下内容:

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内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx的反向代理实例详解
Mar 31 Servers
Nginx Rewrite使用场景及配置方法解析
Apr 01 Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
May 27 Servers
Tomcat用户管理的优化配置详解
Mar 31 Servers
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
Apr 07 Servers
Tomcat项目启动失败的原因和解决办法
Apr 20 Servers
Windows server 2012 R2 安装IIS服务器
Apr 29 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
V Rising 服务器搭建图文教程
Jun 16 Servers
Windows10安装Apache2.4的方法步骤
Jun 25 Servers
WIN10使用IIS部署ftp服务器详细教程
Aug 05 Servers
Nginx跨域问题解析与解决
Aug 05 Servers
nginx共享内存的机制详解
Nginx的基本概念和原理
解决xampp安装后Apache无法启动
Nginx图片服务器配置之后图片访问404的问题解决
Shell脚本一键安装Nginx服务自定义Nginx版本
Nginx实现会话保持的两种方式
Mar 18 #Servers
Nginx实现负载均衡的项目实践
Mar 18 #Servers
You might like
让你的网站首页自动选择语言转跳
2006/12/06 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
VueJS全面解析
2016/11/10 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
追悼会子女答谢词
2014/01/28 职场文书
药店主任岗位责任制
2014/02/10 职场文书
事务机电主管工作职责
2014/02/25 职场文书
法人代表任命书范本
2014/06/05 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
Java 写一个简单的图书管理系统
2022/04/26 Java/Android
设置IIS Express并发数
2022/07/07 Servers