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 + consul + upsync 完成动态负载均衡的方法详解
Mar 31 Servers
提升Nginx性能的一些建议
Mar 31 Servers
uwsgi+nginx代理Django无法访问静态资源的解决
May 10 Servers
Nginx配置之实现多台服务器负载均衡
Aug 02 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
Jun 01 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
Jun 25 Servers
Python安装及建立虚拟环境的完整步骤
Jun 25 Servers
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
Jul 15 Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 Servers
windows系统搭建WEB服务器详细教程
Aug 05 Servers
Fluentd搭建日志收集服务
Sep 23 Servers
nginx共享内存的机制详解
Nginx的基本概念和原理
解决xampp安装后Apache无法启动
Nginx图片服务器配置之后图片访问404的问题解决
Shell脚本一键安装Nginx服务自定义Nginx版本
Nginx实现会话保持的两种方式
Mar 18 #Servers
Nginx实现负载均衡的项目实践
Mar 18 #Servers
You might like
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php导出CSV抽象类实例
2014/09/24 PHP
9个比较实用的php代码片段
2016/03/15 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
前端性能优化及技巧
2016/05/06 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
Python实现学生成绩管理系统
2020/04/05 Python
python:接口间数据传递与调用方法
2018/12/17 Python
django主动抛出403异常的方法详解
2019/01/04 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
解决django FileFIELD的编码问题
2020/03/30 Python
python 爬虫请求模块requests详解
2020/12/04 Python
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL