Linux中nginx配置ssl证书实现https访问(nginx-1.16.1为例)

2023-11-01

配置ssl证书之前,先准备好SSL证书,至于获取的途径很多,不清楚的可以自行搜索,也可以留言
在这里插入图片描述
准备好证书后,找到nginx的安装目录,我的安装位置为:/usr/local/nginx-1.16.1
进入 conf/nginx.conf,编辑nginx的config文件

vi /usr/local/nginx/conf/nginx.conf

修改配置文件
在修改配置文件之前,最好做一个备份,防止修改错误,也能及时回退错误

[root@VM-0-3-centos conf]#cp nginx.conf nginx.conf.bak

1、找到第一个监听80端口的server:以下是修改后的server

    server {
        listen       80;
        server_name  需要访问的域名,例如:www.baidu.com;

        rewrite ^(.*) https://$server_name$1 permanent; #这句代表把http的域名请求转成https

        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass   http://需要访问的域名; #因为这里还是80端口,所以保持http就可以了

        }
    }

2、第一个server修改后,开始配置第二个server。到底部。看到有一个https类型的server。而且已经全部被注释了,这是需要改的第二个server,这里除了HTTPS server和ssl on之外,其他的 # 删除,启动https模块

    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  需要访问的域名,不用加https,例如www.baidu.com;

        # ssl on;  ## 意思是打开ssl功能,nginx1.5以后不需要配置这一项

        ssl_certificate      /usr/local/nginx/ssl/ssl.crt;  #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写
        ssl_certificate_key  /usr/local/nginx/ssl/ssl.key;  #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            proxy_pass   http://需要访问的域名:8080/;
        }
    }

配置好后,nginx的配置就算是完成了

接下来就是要让配置文件生效:

1、进去nginx的sbin文件夹,我的sbin文件夹在:/usr/local/nginx/sbin
执行以下语句:检验配置文件是否有错误

./nginx -t

如果nginx已安装过SSL模块,那么应该会显示以下界面:(若显示配置成功,那么可以跳过这一步,直接重启nginx就可以了)
若第一次安装https证书,都会报错,显示缺少SSL模块,如下:
在这里插入图片描述
2、安装SSL模块:
先确认2个位置:
1)我的nginx是安装在了/usr/local/nginx/下
2)我的nginx的源码包放在了/home/soft/nginx下。如果没有的话,重新下载你对应的nginx版本的源码包,找个目录解压

3、目录切换到我们的源码包安装位置:

cd /home/soft/nginx-1.16.1/

4、执行语句,重新安装ssl模块

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

这时候可能又会有点小插曲,启动ssl模块的时候,报错了:
这里写图片描述

看到了error。就知道linux安装失败,停止了。这个错误是因为我们没有安装openssl openssl-devel(如果这一步没有报错的话,可以跳过下面的安装openssl-devel的步骤)

5、那么可以先执行安装openssl openssl-devel语句:

yum -y install openssl openssl-devel

安装上了 openssl-devel后,重新执行:./configure --prefix=/usr/local/nginx
–with-http_stub_status_module --with-http_ssl_module

此时执行

./nginx -V

如图所示即代表安装成功
在这里插入图片描述

6、这时候应该就执行配置成功了。配置成功后,那么就需要编译我们的配置。(注意这里只能用make !!!不要用make install,因为执行make install是覆盖安装的意思
运行:

make

等待执行完成后,继续下面的步骤

7、先备份旧的nginx,执行语句(这里面复制的文件的路径需要根据你们安装的目录自行修改,如果和我安装的路径是一样的那么可以直接运行该语句):

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

8、关闭nginx(因为要把新的模块覆盖旧的nginx)
查找到进程号

ps -ef | grep nginx

干掉进程

kill -9 进程号

9、关闭nginx进程后就可以开始替换了(注意:当前的位置是在nginx的源码包中,目录不要搞错了)
执行复制命令,执行时若出现overwrite,输入y回车即可

cp ./objs/nginx /usr/local/nginx-1.16.1/sbin/

然后就是启动nginx。在启动之前,也可以在测试一次配置文件是否已经生效:

./nginx -t

#先切换到sbin目录

cd /usr/local/nginx-1.16.1/sbin/

#检测nginx的配置文件是否有错误

./nginx -t

看到这样的,就是已经成功
在这里插入图片描述

最后启动nginx(此时所在路径:/usr/local/nginx/sbin,其他路径需要指定你的启动配置文件):
默认安装路径执行:

./nginx

其他路径执行(**替换为你的安装路径):

/**/nginx -c /**/nginx/conf/nginx.conf

nginx正常启动后,我们在访问我们的网站,发现https就已经配置好了

注意点:

1.刚安装完http_ssl_module模块时通过nginx -V并不能看到已安装的模块,需要在执行完第9步后才可以

2.nginx -V注意是大写,若V是小写则只能看到版本号

3.配置文件中的 ssl on 在nginx1.5以后不需要配置这一项

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

Linux中nginx配置ssl证书实现https访问(nginx-1.16.1为例) 的相关文章

  • 数组应用: 找出一组数据中比均值大的数据并输出

    数组应用 找出一组数据中比均值大的数据并输出 问题描述 由键盘输入读取整型数据 数据数量不超过100个 当读取到数据 1时 停止读取数据 并计算这些数据的均值 不包含 1 将大于均值的数据输出 问题分析 给定了数据数量不超过100 若将每个
  • java设计模式---- 适配器模式,手写SpringMVC适配器设计模式

    主文章 所有java设计模式的目录 https blog csdn net grd java article details 122252696 源码位置 码云 https gitee com yin zhipeng design mode
  • seaborn官方文档的一些坑(以tips为例)

    初次接触seaborn的一个问题 Seaborn 是一个基于 matplotlib 且数据结构与 pandas 统一的统计图制作库 主要特点是画风优良 图形类别更加多样 但数据结构依赖pandas库 比matplotlib pyplot少了
  • 转:浅谈HTTP中Get、Post、Put与Delete的区别

    1 GET请求会向数据库发索取数据的请求 从而来获取信息 该请求就像数据库的select操作一样 只是用来查询一下数据 不会修改 增加数据 不会影响资源的内容 即该请求不会产生副作用 无论进行多少次操作 结果都是一样的 2 与GET不同的是
  • Conda安装Postgresql数据库

    conda search postgresql 查询数据库可安装版本 conda install postgresql 12 2 安装12 2版本的postgresql 创建一个新的PostgreSQL数据库集簇 initdb创建一个新的P
  • ruoyi数据权限学习

    思路 用户关联了角色 用户可以关联多个角色 给角色设置数据权限分类 数据权限分类有如下5种 全部数据权限 DATA SCOPE ALL 自定数据权限 DATA SCOPE CUSTOM 部门数据权限 DATA SCOPE DEPT 部门及以
  • Keil MDK的CMSIS USART Driver使用

    前言 本文适用于使用过Keil MDK软件且有一定的单片机开发基础的人员 软件版本 Keil MDK v5 24 硬件开发板 STM32F429I Discovery 预备知识 Keil RTX线程使用 Keil MDK v5新增了pack
  • 即时通-openfire设备SSL证书部署指南

    一 什么是OpenfireOpenfire 采用Java开发 开源的实时协作 RTC 服务器基于XMPP Jabber 协议 您可以使用它轻易的构建高效率的即时通信服务器 Openfire安装和使用都非常简单 并利用Web进行管理 单台服务
  • 英文论文如何看?转自知乎

    SoniaYang 因为去年年中刚完成了我的硕士论文 就来谈点个人经验 不知道你指的文献指的是 期刊论文 or 学术原著 如果是 期刊论文 那就得首先看Abstract 摘要 一般Abstract包括了这篇文章最基本最全面的几个要素 就是整
  • SQL 统计表 b 对应表a个数,并赋值给表a的一个字段

    最近遇到这么个问题 表a 歌单表 music list 表b 歌曲详情表 music detail 一个歌单对应多个歌曲详情 但在表的设计时 没有考虑到在 music list 设置一个字段标记对应的 music detail数据条数 在数
  • 悄悄分享 60 个相见恨晚的神器工具

    让 WebP 图片下载为 PNG 格式 从 Github 批量下载表情包 一键滚动截屏整个网页 助你快速成为 B 站老司机 一键分析网站技术栈 翻录网页视频神器等等 这些功能 都能在 Chrome 中使用件简单实现 不信 你往下看就行了 最
  • Spring Boot集成Swagger3.0,Knife4j导出文档

    文章目录 Spring Boot集成Swagger3 0 Knife4j导出文档 效果展示 如何使用 简要说明 添加依赖 添加配置类 测试接口 token配置位置 问题1 多文件上传 方法一 配置全局参数 方法二 开启动态参数 自定义多个文
  • Callable日常使用

    Callable日常使用 前言 之前在项目中有个多线程校验导入数据的额需求 就想到了callable 既有返回值又可以抛出异常 岂不美哉 工作之余总结下callable的使用 方便后期CV 目录 Callable日常使用 一 自定义call
  • 360安全卫士添加信任区

    系列文章目录 文章目录 系列文章目录 前言 一 添加信任区 二 步骤 1 木马查杀 2 信任区 3 添加信任的文件 总结 前言 360安全卫士经常会误报 虽然有想过卸载360 但他的有些小工具还挺实用 哎 鸡肋啊 一 添加信任区 打开360
  • 上一个说软件测试简单的,已经被面试官问emo了···

    现在已经过了 不会但我会学 就能感动面试官的时代 随着供需关系的变化 不论是对于面试官还是面试者 面试的成本越来越高 为了筛选到更优秀的程序员 面试官们可谓是绞尽了脑汁 面试造火箭 工作拧螺丝 的传言也不是空穴来风 那些面试官最喜欢的就是你
  • oracle碎片小结

    author skate time 2010 05 31 我们在使用windows的时候 都知道要定期整理磁盘碎片 因为磁盘碎片会影响性能 给管理上带来额外的负担 那oracle更是如此 当随着数据增加 oracle处理海量数据本身就已经很
  • 2021-11-08

    https learnku com docs the way to go 104 tag structure 3642 https mp weixin qq com s 3sjlDFSthVK3 E54TqqUqw
  • faster-rcnn(pytorch)参数配置修改

    修改模型配置文件 train prototxt文件 input data层的num class数值由21改为类别数目 roi data层的num class数值由21改为类别数目 cls score层的num output数值由21改为类别
  • 通过Python2.7访问Oracle

    环境 Python 2 7 cx Oracle 7 3 0 instantclient basic linux x64 version zip unzip instantclient basic zip unzip d cx Oracle
  • 6.Docker Desktop 安装使用教程

    本文目录 1 前言 2 下载 Docker Desktop 3 安装 Docker Desktop 1 配置 Docker Desktop 环境 2 安装 wsl2 2 下载并安装 3 打开 Docker Desktop 的问题 1 问题一

随机推荐

  • 【高级CSS属性】那些年轰动一时的5个CSS高级属性(附源码)

    文章目录 写在前面 涉及知识点 1 empty选择器 1 1 应用场景及效果 1 2 代码实现 2 gap属性 2 1 应用场景及效果 2 2 代码实现 3 伪类 invalid 应用 3 1 应用场景及效果 3 2 代码实现 4 back
  • Es java分页查询列表数据

    Autowired private RestHighLevelClient client public List
  • Android 计算View的深度

    这次遇到一个需求 需要计算当前View的深度 基本上就是大学时候数据结构里求二叉树的解法 记录一下 理论上也可以用于性能优化和性能监控 private int maxDeep View view view不会有子view所以就返回0 if
  • 4.2 线性方程组有解判断

    文章目录 系数矩阵 增广系数矩阵 方程组的矩阵与向量表示形式 结论 判断方程组有无解的步骤 求线性方程组的一般思路 例题 参考 系数矩阵 增广系数矩阵 方程组的矩阵与向量表示形式 求解方程组就是对增广矩阵做初等行变换将系数矩阵化为行简化阶梯
  • Python——算法

    文章目录 算法 1 世界末日 2 马虎的算式 3 振兴中华 4 斐波那契数列 5 武功秘籍 6 切面条 7 立方变自身 8 圆的面积 9 字母图形 10 Huffuman树 算法 1 世界末日 曾有邪教称1999年12月31日是世界末日 当
  • 游戏开发unity插件DoTween:实现人物向目标方向旋转

    已知世界坐标下目标对象的朝向向量B 当前人物朝向向量A transform forward 如何用DoTween实现人物旋转动画呢 Vector3 forwardWorldVector B float duration 0 5f trans
  • 产品研发流程

    需求管理流程介绍 1 1需求管理流程 产品研发的生命周期 一般需要以下几个环节 1 2常用的调研方法 1 3如何进行访谈 访谈注意事项 1 列调研大纲 根据大纲去调研 2 调研顺序 先流程后细节 1 流程从哪里开始 由谁发起 什么事情触发的
  • 想入手抖音定制生日祝福短视频,没有创意思路怎么办?几个方面带你了解整个流程

    项目 定制派大星生日祝福视频 原理 从抖音引流到微信转为私域流量 成本 一部手机 一个微信小号 需要的资源 配音声优 视频素材 一个抖音号 剪辑工具 剪映 这是一个淘宝商品改造成抖音的玩法项目 一 需求思路 儿童喜欢看的动画片人物 比如 派
  • ubuntu16.04开起wifi热点

    1 首先保证电脑连接有线网络 2 点击电脑屏幕右上方联网图标 选择最后一个选项 编辑连接 3 进入如下页面 选中选中wifi选项 点击添加 4 进入如下页面 选择连接类型为wifi 点击新建 5 进入如下页面 填写连接名称与SSID 这两项
  • java深度克隆工具类——支持对象和对象集合

    正经学徒 佛系记录 不搞事情 第一步 创建工具类 直接使用commons beanutils实现对象拷贝 引入pom
  • mysql数据库存储逻辑_MySQL逻辑架构及存储引擎简介

    MySQL逻辑架构 并发控制 由锁实现 读锁 也叫共享锁 读锁互相不阻塞 A加锁表后A b c d都能读该表但不能写该表 写锁 也叫排他锁 写锁相互阻塞 A加排他锁后 其他线程不能读写该表 锁粒度 表锁 锁一个表 并发粒度小 代表存储引擎M
  • Blazor 模板化组件开发指南

    翻译自 Waqas Anwar 2021年4月15日的文章 A Developer s Guide To Blazor Templated Components 1 在我之前的一篇文章 Blazor 组件入门指南中 我介绍了组件参数 并向您
  • javascript 转数字:javascript数字相加

    var a 3 var b 98 c a b 想得到c 101 确变成了字符串拼接 得到了398 我该则么做呢 c parseInt a parseInt b
  • #pragma once 与 #ifndef

    在C C 中 使用 include 包含文件的时候 经常使用方法去防止重复引用 产生二义性 通常有两种方式 第一种 ifndef指令方式代码被重复引用 比如说 ifndef CODE BLOCK define CODE BLOCK code
  • 谈文本分类

    本文来自对 文本分类研究综述 汪岿的阅读 文章目录 1 为什么要进行文本分类 2 文本分类的分类 应用 3 当前文本分类面临的挑战 4 文本分类的前景 1 为什么要进行文本分类 在大数据时代 网络上的文本数据日益增长 采用文本分类技术对海量
  • 04-Java框架-MyBatis

    一 MyBatis的介绍 1 1 回顾一下JDBC 下面这个代码是使用JDBC实现基于id查询员工信息 我们来分析分析有什么弊端 public Employee selectById Long id Connection conn null
  • 【解决】pytorch单机多卡问题:ERROR: torch.distributed.elastic.multiprocessing.api:failed

    最近在使用单机多卡进行分布式 DDP 训练时遇到一个错误 ERROR torch distributed elastic multiprocessing api failed 而实际报错的内容是 ValueError sampler opt
  • LeetCode·每日一题·722. 删除注释·模拟

    题目 示例 思路 题意 gt 给定一段代码 将代码中的注释删除并返回 由于注释只有两种类型 字符串 表示行注释 表示 和其右侧的其余字符应该被忽略 字符串 表示一个块注释 它表示直到下一个 非重叠 出现的 之间的所有字符都应该被忽略 阅读顺
  • Vuforia AR学习

    传送门 1 搜索 Vuforia 下载相关 SDK 和 Samples 2 这个就有点坑了 想运行 sample demo 需要把下载好的sample拷贝至sdk目录下的sample文件夹下 如图 3 也可以修改修改 Samples dem
  • Linux中nginx配置ssl证书实现https访问(nginx-1.16.1为例)

    配置ssl证书之前 先准备好SSL证书 至于获取的途径很多 不清楚的可以自行搜索 也可以留言 准备好证书后 找到nginx的安装目录 我的安装位置为 usr local nginx 1 16 1 进入 conf nginx conf 编辑n