nginx配置https访问

2023-11-02

01、http&https

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

02、https使用场景

1:网站数据传递的安全性

2:基于前后端分离开发方式,比如微信小程序,等这些移动端应用开发,比如:你的服务器接口必须是:https,微信小程序在真实的项目发布的,如果不是https的接口你也是通不过。

03、https配置前提

1、必须拥有一个已经备案的域名
2、拥有一台服务器(含公网IP)
3、服务器与域名进行解析
4、领取ssl安全证书
5、证书授权与安装至nginx中

04、域名解析

在这步之前,你需要在工信部成功备案信息,注意:备案地址取决你的服务器厂商,服务器在哪个公司购买的就去哪个公司去备案,备案详情请咨询客服,客服会把你讲的明明白白。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0KkMKi2-1640519870392)(img-u6pRtIwy-1640519487086)
注意:若你的域名厂商与服务器厂商不是同一个,需要修改域名厂商的dns服务器地址,(看情况)如下:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

05、申请ssl证书

搜索栏搜索SSL
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
申请免费证书,输入域名
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZSAxGP3-1640520189774)

下载证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBOFPFmv-1640520243745)
解压证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WfSV3bmF-1640519487095)

06、安装nginx

1、创建安装目录

mkdir -p /www/server/nginx
cd /www/server/nginx

2、下载安装nginx

wget http://nginx.org/download/nginx.1.20.1.tar.gz

3、安装编译文件

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

4、解压nginx

tar -zxvf nginx-1.20.1.tar.gz

5、创建临时目录

mkdir -p /var/temp/nginx

6、进入安装包路径并编译安装

cd nginx-1.20.1
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_stub_status_module 

7、编译安装

make && make install

8、进入sbin目录启动nginx

cd /usr/local/nginx/sbin
#执行启动
./nginx
#停止:
./nginx -s stop
#重新加载:
./nginx -s reload 

9、配置nginx环境变量

vim /etc/profile

在末尾加入

export NGINX_HOME=/usr/local/nginx
export PATH=$NGINX_HOME/sbin:$PATH

重启

source /etc/profile

如果你为宝塔安装nginx,无需操作以上步骤,不过不建议使用宝塔安装

07、上传ssl证书

在nginx的conf目录下新建一个cert目录,并将这两个文件上传到cert目录下
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGUdV3dF-1640519487096)

08、配置ssl

# 开启gzip压缩
gzip on;
gzip_min_length 10k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png image/jpg;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";

# tomcat服务
upstream tomcatservers {
   server 127.0.0.1:8080;
   server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        proxy_pass http://tomcatservers;
    }
}


#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/6179501_www.qdwork.top.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/6179501_www.qdwork.top.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://tomcatservers;
    }
}

重启nginx服务

注意:如果是宝塔安装的nginx,还需在宝塔面板放行443端口,当网站配置https后,就无法通过js加载http服务的资源了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx配置https访问 的相关文章

随机推荐

  • 2.1引用操纵对象

    1 String s 创建的是一个String的引用 2 Java运行时的存储结构 以下是摘自博文 http www cnblogs com liujunming p 4391401 html 这里照搬过来 1 寄存器 最快的存储区 由编译
  • 【论文阅读】LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain

    LeGO LOAM Lightweight and Ground Optimized Lidar Odometry and Mapping on Variable Terrain 文章摘要 I 简介 II 硬件系统 III 轻量级激光雷达里
  • Flex Builder教程

    Flex Builder教程 编辑页面 最后编辑时间 March 20 2007 网经 最近更新 标题索引 用户设置 随机页 沙盒 帮助 网经 Flex Builder教程 一 概述 二 使用MXML组件构建用户界面 三 数据绑定 四 界面
  • 通达oa共公文件柜服务器目录,通达OA 公共文件柜二次开发添加管理信息(图文)...

    php应用jquery做ajax操作 以下是全部代码 jQuery Ajax 实例演示 lbrack 知识库分享系列 rsqb 二 period NET ASP period NET 最近时间又有了新的想法 当我用新的眼光在整理一些很老的知
  • elementUI输入框组件 样式自定义 高度、圆角、边距调整 图标跟随

    elementUI里的组件都预定义了样式 有时我们用class命名并在css中更改样式时 发现不起作用 或者起不到预期的效果 下面以输入框el input作个例子记录 elementUI输入框为
  • 编译 openwrt 最新实战详细教程

    网上找了很多相关的教程 有些教程太旧了 很多地方都有坑 本人根据一些相关的教程 做了一次实战对比 弥补相关的坑 从源代码构建固件 本节介绍如何从源代码为MTK 7688开发板构建固件 环境 在Ubuntu LTS 14 04 3环境下执行以
  • fd手机抓包

    fd手机抓包问题 大神指点下 欢迎使用Markdown编辑器 你好 这是你第一次使用 Markdown编辑器 所展示的欢迎页 如果你想学习如何使用Markdown编辑器 可以仔细阅读这篇文章 了解一下Markdown的基本语法知识 新的改变
  • TOMCAT-无法成功启动——双击startup.bat闪退的解决办法

    Tomcat无法成功启动 双击startup bat闪退的解决办法 转载 原文链接 https blog csdn net scau lth article details 83218335 这是新手经常会犯的错误 只要注意三个点就可以解决
  • 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。

    开发一个坐标计算工具 A表示向左移动 D表示向右移动 W表示向上移动 S表示向下移动 从 0 0 点开始移动 从输入字符串里面读取一些坐标 并将最终输入结果输出到输出文件里面 输入 合法坐标为A 或者D或者W或者S 数字 两位以内 坐标之间
  • Qt使用帮助文档Assistant

    我们在学习Qt的时候 遇到不懂的地方 可以求助互联网 看教程书籍 也可以直接看Qt的帮助文档Assistant Qt自带的帮助文档是Assistant软件 这可以从Qt的安装路径中找到 我的电脑里Qt的安装路径是E Qt Qt5 14 2
  • Endnote20 在word里插入参考文献 [快捷键Alt+2]

    https www yuque com duzh929 blog kq5u0u原文地址 墙裂建议看看新方法 更简单的新方法 有效解决Endnote20插入参考文献 Endnote20已经上线了 楼主迫不及待的用上了 发现EndnoteX9里
  • MYSQL注入 基础篇1.0

    就算命运不公 重重阻碍 但我在哪里跌倒就一定会在哪里爬起来 只要坚持不懈 那些嘲笑我的人迟早会被我笑死 SQL注入了解 SQL注入是什么 正常的Web端口访问 SQL注入是如何访问 为什么要深入了解SQL注入 SQL注入漏洞的根本原因 SQ
  • 【华为OD机试真题 python】密室逃生游戏【2022 Q4

    题目描述 密室逃生游戏 小强增在参加 密室逃生 游戏 当前关卡要求找到符合给定 密码K 升序的不重复小写字母组成 的箱子 并给出箱子编号 箱子编号为 1 N 每个箱子中都有一个 字符串s 字符串由大写字母 小写字母 数字 标点符号 空格组成
  • JS中的逻辑与和逻辑或

    JS中的逻辑或 符号 从字面上来说 只有前后都是 false 的时候才返回 false 否则返回 true console log 5 gt 6 6 gt 5 返回true 5 gt 6为false 但是 6 gt 5为true 所以返回
  • python-selenium页面定位不到元素

    1 查看是否有新的url打开 当前页面 mainHandle driver current window handle 获取所有的handle Handles driver window handles 循环遍历 找到不是当前页面的就切换
  • vue获取元素offsetTop,mounted获取不到offsetTop,获取元素距离页面顶边距离

    记录一下开发过程中遇到的坑 今天想做一个功能 当我评论完之后 页面跳到评论区顶部 于是就要获取到评论区距离页面顶部的距离 需要循环获取offsetTop来实现 但是在mounted阶段是无论如何都获取不到offsetParent的 不管是
  • C# 对数据库操作的函数总结

    SqlCommand ExecuteNonQuery 方法对连接执行 Transact SQL 语句并返回受影响的行数 可以写也可以读 1 可以使用ExecuteNonQuery 来执行目录操作 例如查询数据库的结构或创建诸如表等的数据库对
  • Unet 语义分割模型(Keras)

    文章目录 前言 一 什么是语义分割 二 Unet 1 基本原理 2 mini unet 3 Mobilenet unet 4 数据加载部分 参考 前言 最近由于在寻找方向上迷失自我 准备了解更多的计算机视觉任务重的模型 看到语义分割任务重U
  • BAT文件里注释符号

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在BAT文件批处理中注释的方式如下 1 注释内容 第一个冒号后也可以跟任何一个非字母数字的字符 2 rem 注释内容 不能出现重定向符号和管道符号 3 echo 注释内容
  • nginx配置https访问

    01 http https HTTP HyperText Transfer Protocol 超文本传输协议 是一种用于分布式 协作式和超媒体信息系统的应用层协议 简单来说就是一种发布和接收 HTML 页面的方法 被用于在 Web 浏览器和