Nginx配置免费HTTPS详细教程

news2024/11/27 0:43:21

文章目录

  • 背景说明
  • 环境准备说明
  • 安装Nginx及依赖环境
  • 配置HTTPS步骤
    • 步骤1:创建服务器私钥
    • 步骤2:创建签名请求的证书(CSR)
    • 步骤3:加载SSL支持的Nginx并使用私钥时去除口令
    • 步骤4:将密钥文件移动到Nginx配置文件目录下,后续操作切换为conf目录下执行命令。
    • 步骤5:自动签发证书,获取CRT文件
    • 步骤6:修改Nginx配置文件,启用HTTPS模块。
    • 步骤7:验证443端口是否正常访问
    • 步骤8:配置反向代理,将原来HTTP端口转换为HTTPS,并验证平台功能。
  • 总结

背景说明

开发的软件系统基本都是http开发,在项目部署是,甲方要求传输必须启用HTTPS,从而想到用Nginx配置启用SSL模块,并使用(443端口)HTTPS进行反向代理。正式项目中SSL证书肯定是要花钱购买,当然也有免费的(通常是1年有效期)。今天介绍的SSL证书是通过 openssl生成免费的证书,除了网页会提示不安全之外,其他都是正常的。

环境准备说明

项目说明
系统CentOS 7.9
Nginx1.24.0

安装Nginx及依赖环境

nginx具体安装步骤不描述,网上教程很多,不是本文的重点。

若你已经安装了Nginx,但是没有启用ssl模块,建议保存好配置文件(conf目录下全部文件),然后重新安装。
查看当前nginx安装了哪些模块,可以用这个命令: nginx -V
在这里插入图片描述

准备:yum安装依赖环境
yum -y install openssl openssl-devel make zlib zlib-devel gcc gcc-c++ libtool    pcre pcre-devel
编译时一定要启用ssl模块,才能使用https
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install

编译时会检查当前系统的依赖环境是否满足,可根据error提示内容,通过yum进行安装!!!

配置HTTPS步骤

接下来的操作,才是本文重点,分为2个阶段,第一:创建ssl证书;第二:nginx启用https并绑定证书;
首先,如果要使用https,那么就需要有https证书,这是前置条件。获取途径有2种,一种是通过正规途径购买,这样的证书经过了认证,访问使用时不会提示“不安全”。第二种,就是免费的,本文介绍使用openssl生成RSA密钥及证书,具体操作如下

步骤1:创建服务器私钥

在root家目录下操作,防止找不到文件了。。
cd ~
openssl genrsa -des3 -out server.key 1024
输入密码:rmcp@2023

在这里插入图片描述

步骤2:创建签名请求的证书(CSR)

openssl req -new -key server.key -out server.csr
根据提示,输入信息,最终会得到2个文件,csr和key

在这里插入图片描述

步骤3:加载SSL支持的Nginx并使用私钥时去除口令

备份key文件
cp server.key server.key.bak
openssl rsa -in server.key.bak -out server.key
输入刚才设置的密码:rmcp@2023

在这里插入图片描述在这里插入图片描述

步骤4:将密钥文件移动到Nginx配置文件目录下,后续操作切换为conf目录下执行命令。

mv server.key server.csr /usr/local/nginx/conf/
cd /usr/local/nginx/conf/

在这里插入图片描述

步骤5:自动签发证书,获取CRT文件

Days代表证书有效期(天)
openssl x509 -req -days 10240 -in server.csr -signkey server.key -out server.crt

在这里插入图片描述
在这里插入图片描述

步骤6:修改Nginx配置文件,启用HTTPS模块。

vim nginx.conf
修改nginx默认配置文件,启用https以及443端口
修改防火墙,开放443端口。
并重新启动Nginx

在这里插入图片描述
在这里插入图片描述

步骤7:验证443端口是否正常访问

浏览器提示不安全时,选择继续访问即可。
出现下面页面,说明配置正确。
在这里插入图片描述

步骤8:配置反向代理,将原来HTTP端口转换为HTTPS,并验证平台功能。

验证成功后:使用nginx反向代理原来的web网站
修改后要重启nginx
在这里插入图片描述
最终效果如下图:
在这里插入图片描述

总结

  1. 配置ssl证书时,要注意会输入很多密码,若你搞不清各个密码代表的含义,直接用一个密码即可。
  2. 反向代理的网站,需要注意内部不能含有http的接口或者链接,否则会出错,比如某图片时http的URL地址,则使用https代理后就无法显示了
  3. 域名因为没有认证,所以时随意写的,当然若是购买的ssl证书,是要求认证的域名,则不存在问题。
  4. 若想通过域名访问,可以修改host来实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1216794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis未授权访问漏洞利用

当redis服务(6379)端口对外开放且未作密码认证时,任意用户可未授权访问redis服务并操作获取其数据。 攻击机:10.1.1.100 kali 目标靶机:10.1.1.200 一、探测redis的未授权访问 首先在攻击机上使用nmap对目标机进行扫描,探测开放的…

强引用、软引用、弱引用、虚引用的区别

Java中的引用有四种,分为强引用(Strongly Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)4种,这4种引用强度依次逐…

单片机FLASH下载算法的制作

环境 硬件使用正点原子STM32F407探索者V2开发板 编程环境使用MDK 下载工具使用JLINK FLASH芯片使用W25Q128 什么是下载算法 单片机FLASH的下载算法是一个FLM文件,FLM通过编译链接得到,其内部包含一系列对FLASH的操作,包括初始化、擦除、写…

Python如何使用Networkx实现复杂的人物关系图?

Python如何使用Networkx实现复杂的人物关系图? 1 简单引入2 关于Networkx2.1 Networkx简单说明2.2 Networkx部分源码2.3 Networkx一个示例 3 人物关系图绘制过程3.1 创建原始数据3.2 获取目标文件数据3.3 获取颜色数据3.5 添加边数据3.6 定义边及权重3.7 图的布局、…

MySQL内部组件与日志详解

MySQL的内部组件结构 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)&am…

GoLong的学习之路,进阶,标准库之并发(context)补充并发三部曲,你真的明白context吗?

其实对于,context来说,如果只是用来做并发处理就有些不太合适。因为对于golang来说,context应用场景不仅在并发有用,并且在网络链接,http处理,gorm中都有体现。但是其实,本质来说。以上这些场景…

租赁小程序|租赁系统一种新型的商业模式

租赁市场是一个庞大的市场,它由出租人和承租人组成,以及相关的中介机构和供应商等。随着经济的发展和人们对灵活性的需求增加,租赁市场也在不断发展和壮大。特别是在共享经济时代,租赁市场得到了进一步的推动和发展。租赁系统是一…

Kontakt Factory Library 2(Kontakt原厂音色库2)

Kontakt Factory Library 2是一款由Native Instruments开发的音乐采样库。它是Kontakt采样器软件的官方库之一,提供了丰富的音色和音乐资源,可用于制作各种类型的音乐。 Kontakt Factory Library 2包含了数千个高质量的乐器采样,涵盖了各种乐…

Java实现俄罗斯方块游戏

俄罗斯方块游戏本身的逻辑: 俄罗斯方块游戏的逻辑是比较简单的。它就类似于堆砌房子一样,各种各样的方地形状是不同的。但是,俄罗斯方块游戏的界面被等均的分为若干行和若干列,因此方块的本质就是占用了多少个单元。 首先来考虑…

MySQL怎样处理排序⭐️如何优化需要排序的查询?

前言 在MySQL的查询中常常会用到 order by 和 group by 这两个关键字 它们的相同点是都会对字段进行排序,那查询语句中的排序是如何实现的呢? 当使用的查询语句需要进行排序时有两种处理情况: 当前记录本来就是有序的,不需要进…

京联易捷科技与劳埃德私募基金管理有限公司达成合作协议签署

京联易捷科技与劳埃德私募基金管理有限公司今日宣布正式签署合作协议,双方在数字化进程、资产管理与投资以及中英金融合作方面将展开全面合作。 劳埃德(中国)私募基金管理有限公司是英国劳埃德私募基金管理有限公司的全资子公司,拥有丰富的跨境投资经验和卓越的募资能力。该集…

pyhton将socket接收数据的字节改变并做处理

问题说明: 遇到发送过来的数据有一位是有问题的,但后面的数据是有效,还得用。甲方不愿意改信号。所以用代码直接在接收到数据后,将错误的数据位改正。 下面是修改后的demo例子: import socket def main(funcode):dict…

2013年12月1日 Go生态洞察:Go 1.2版本发布

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

【AI视野·今日Robot 机器人论文速览 第六十三期】Thu, 26 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 27 Oct 2023 Totally 27 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers 6-DoF Stability Field via Diffusion Models Authors Takuma Yoneda, Tianchong Jiang, Gregory Shakhnarovich, Matthew R. …

安装node.js指定任意版本详解

Node.js是一种基于Chrome V8引擎的JavaScript运行时环境。它允许开发人员使用JavaScript编写服务器端和网络应用程序。与传统的JavaScript在浏览器中执行不同,Node.js使得JavaScript可以在服务器端运行。 Node.js具有以下特点: 1. 非阻塞式I/O&#xf…

Seatunnel及web搭建流程

准备工作 Java环境 要求java8或者java11,并设置JAVA_HOME,如果JAVA_HOME无效,需要设置为有效状态。 echo ${JAVA_HOME} 创建安装软件目录 sudo mkdir -p /opt/seatunnel/backend sudo mkdir -p /opt/seatunnel/web 下载软件 从https://…

VS2017的redis客户端实现

VS2017下Redis服务器源码地址 https://download.csdn.net/download/qq_23350817/88541316 VS2017下Redis客户端源码地址(hiredis已完成windows下编译)&#xff1a; https://download.csdn.net/download/qq_23350817/88541242 C代码实现&#xff1a; #include <stdio.h>…

053-第三代软件开发-元对象系统

第三代软件开发-元对象系统 文章目录 第三代软件开发-元对象系统项目介绍元对象系统Qt的元对象系统如何实现对象的属性系统&#xff1f;请问Qt的元对象系统还有哪些功能&#xff1f;Qt的元对象系统支持哪些类型的事件&#xff1f;元对象系统中的属性可以用于实现哪些功能&#…

安卓调用onnx模型并计算

安卓平台可以通过调用onnx模型来进行计算&#xff0c;这为移动设备提供了更多的计算能力和应用场景。通过使用onnx模型&#xff0c;安卓设备可以进行复杂的计算任务&#xff0c;例如图像识别、语音识别等。这为移动应用的功能和性能提升提供了新的可能性。同时&#xff0c;开发…