Nginx HTTPS配置:一篇文章解决所有痛点

news2025/1/22 16:09:28

在这里插入图片描述
你好呀,我是赵兴晨,文科程序员。

今天,我将与大家分享一些关于Nginx的实用知识。这次的主题是:如何为Nginx配置HTTPS。我将从HTTP与HTTPS的区别讲起,然后逐步介绍Nginx的安装与HTTPS配置的详细步骤。

HTTP与HTTPS的区别:

HTTP:

是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS

是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

主要区别:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

安装Nginx

1、安装依赖库:

• 安装 GCC(命令:yum install gcc)
• 安装 PCRE(命令:yum install pcre-devel)
• 安装 ZLib(命令:yum install zlib zlib-devel)
• 安装 OpenSSL(命令:yum install openssl openssl-devel)
综合命令:

yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel

2、下载安装包并解压nginx-1.12.2.tar.gz:

# 下载nginx-1.12.2.tar.gz
wget http://nginx.org/download/nginx-1.12.1.tar.gz

# 解压nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz

3、安装Nginx:

• 先进入到解压后的nginx-1.12.2 目录

cd nginx-1.12.2

使用以下命令安装 Nginx:(./configure 默认安装位置为 /usr/local/nginx,可以使用参数 --prefix=/usr/nginx 进行修改)

# 配置SSL模块
./configure --with-http_ssl_module

# 使用 make 命令编译
make

#使用make install 会安装 Nginx 默认安装位置为/usr/local/nginx
make install

安装完成之后查看安装的模块:

/usr/local/nginx/sbin/nginx -V
# 出现 --with-http_ssl_module 说明ssl模块已安装
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module

4、测试配置文件:

测试配置文件是否正确,我们先进入到 /usr/local/nginx/sbin 目录,执行以下命令:

cd /usr/local/nginx/sbin

./nginx -t

5、启动Nginx:./nginx

使用curl 测试Nginx是否启动成功:curl localhost

6、添加到守护进程

1)在系统服务目录里创建nginx.service文件

vim /etc/systemd/system/nginx.service

备注:如果系统没有安装vim 可以使用 yum install -y vim 进行安装或者 使用vi 代替 vim:

vi /etc/systemd/system/nginx.service

内容如下:

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

部分参数说明:

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

2)设置开机自启动:

systemctl enable nginx.service

停止开机自启动:

systemctl disable nginx.service

查看服务当前状态:

systemctl status nginx.service

重新启动服务:

systemctl restart nginx.service

查看所有已启动的服务:

systemctl list-units --type=service

开始配置ssl正书

1、申请免费的SSL正书(当然也可以自行购买):

FreeSSL - 一个申请免费HTTPS正书的网站https://freessl.org

申请免费证书 会有DNS验证 按照网站提示一步一步操作即可(网页右上角可以调中文 适合英文不好的小盆友奥)

这里补充一下:不建议使用OpenSSL生成的证书:

• openssl生成的baiSSL证书也叫自签名SSL证书,签发很随意,任何人都可以签发,易被黑客仿冒利用。
• 不是由正规的CA机构颁发的,所以不受浏览器的信任。
• 而付费的SSL证书,是由受信任的CA机构颁发的,申请时会对域名所有权和企业相关信息进行验证,安全级别是比较高的,而且备受各大浏览器的信任。

2、部署证书:

• 下载申请好的 ssl 证书文件压缩包到本地并解压(这里是用的 pem 与 key 文件,文件名可以更改)
• 在 nginx 目录新建 cert 文件夹存放证书文件

# 进入到Nginx目录
cd /usr/local/nginx

# 创建cert文件夹
mkdir cert

• 将pem 与 key这两个文件上传至服务器的/usr/local/nginx/cert目录里

3、配置nginx.conf

vim /usr/local/nginx/conf/nginx.conf

具体配置如下: nginx 1.15 以上版本 需要将配置中的 ssl on 删掉 否则不好用

server {    
    listen 443;#监听443端口(https默认端口)
    server_name chensir.ink; #填写绑定证书的域名
    # nginx 1.15 以上版本 需要将配置中的 ssl on 删掉 否则不好用
    ssl on;
    ssl_certificate ***.crt;#填写你的证书所在的位置
    ssl_certificate_key ***.key;#填写你的key所在的位置
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
    ssl_prefer_server_ciphers on;
    location / {
     root   网站目录;
     index  index.html index.htm;
  }
}

进行http80端口的重定向配置

 server {

    listen       80;

    server_name  www.xxx.com;#填写绑定证书的域名

    rewrite ^ https://$http_host$request_uri? permanent;    # 将http转到https

 }

4、启动Nginx服务:

# 语法检测:查看配置文件是否有语法错误
/usr/local/nginx/sbin/nginx -t

# 启动 Nginx
service nginx start

# 停用 Nginx
service stop nginx

备注:如果之前部署了Nginx只是在其基础上安装SSL模块那么一定要重启Nginx服务,不然https是不会生效的(不要问我为什么写备注,都是眼泪😅)

以上就是我个人的一些分享,如果有不正确的地方,欢迎大家在文章底部留言指正。

如果你对我的分享感兴趣,可以扫描文章底部👇二维码。

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

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

相关文章

Github项目部署到自己的域名

天坑,买的是华为的域名,不过新用户才一块,就忍了 要买个域名,我买的是华为的(此处是购买地址) 购买后去控制台,点击“总览”进入域名页面 点击想要修改的域名后的“管理解析” 点击快速解析&…

vant添加列表, 日期选择总是填充到最后一个组内原因

添加多个行程, 无论在哪个行程上修改时间, 时间总是只显示在最后一个行程里 错误代码: <div class"journey"><divv-for"(item, index) in ruleform.hrms_business_item":key"index"><div class"journey-title">&l…

人工智能创新领衔,Android系统如虎添翼:2024 Google I/O 大会深度解析

人工智能创新领衔&#xff0c;Android系统如虎添翼&#xff1a;2024 Google I/O 大会深度解析 2024年5月14日举行的Google I/O大会&#xff0c;犹如一场精彩的科技盛宴&#xff0c;吸引了全球的目光。大会上&#xff0c;谷歌发布了一系列重磅产品和技术更新&#xff0c;展现了…

TMC4671超越传感器和摄像头之外——将物联网从云端转移到现实世界[应用案例]

在早期&#xff0c;物联网 (IoT) 在很大程度上充当了云端服务的“眼睛和耳朵”&#xff0c;收集传感器、摄像头和其他物理世界输入设备的数据&#xff0c;而不太注重操纵或控制它所监视的事物。支持物联网的自动化和机器人应用已经开始合并&#xff0c;但是一般而言&#xff0c…

SIP-7041 20W SIP广播网络有源音箱 校园广播20W木质SIP音箱

SIP-7041 20W SIP广播网络有源音箱 校园广播20W木质SIP音箱 一、描述 SIP-7041 20W SIP广播网络有源音箱 支持标准SIP协议 SIP-7041是我司的一款壁挂式网络有源音箱&#xff0c;具有10/100M以太网接口&#xff0c;可将网络音源通过自带的功放和喇叭输出播放&#xff0c;可达到…

win10专业版或者企业版安装docker,亲测过,请放心安装

in10专业版系统首先需要开启硬件虚拟化及Hyper-V功能&#xff0c;才能进行Docker for Windows软件安装 1.鼠标在桌面最下面&#xff0c;右击–任务管理器—性能—虚拟化&#xff08;已启用&#xff09;&#xff0c;看到这个已启用就说明OK啦&#xff1b; 2.win10系统&#xff…

iPhone携手ChatGPT?苹果OpenAI或将强强联手

近年来&#xff0c;人工智能技术的蓬勃发展掀起了一场席卷全球的科技浪潮&#xff0c;而智能手机作为人们日常生活中不可或缺的一部分&#xff0c;自然成为了这场AI竞赛的重要战场。各大科技巨头纷纷加码布局&#xff0c;力图在AI领域占据领先地位。 近日&#xff0c;据知情人士…

STAR-Echo:一种使用时空分析和基于Transformer的影像组学模型预后慢性肾脏病患者 MACE 预后的新型生物标志物

文章目录 STAR-Echo: A Novel Biomarker for Prognosis of MACE in Chronic Kidney Disease Patients Using Spatiotemporal Analysis and Transformer-Based Radiomics Models摘要方法实验结果 STAR-Echo: A Novel Biomarker for Prognosis of MACE in Chronic Kidney Disease…

LLMjacking:针对云托管AI大模型服务的新型攻击

Sysdig威胁研究团队(TRT)观察到一种新型攻击&#xff0c;命名为LLMjacking。它利用窃取的云凭证&#xff0c;对托管在云上的十个大型语言模型(LLM)服务发起攻击。 这些凭证是从一个流行的目标获得&#xff0c;即运行着一个存在漏洞的Laravel版本&#xff08;CVE-2021-3129&…

【介绍下Python多线程,什么是Python多线程】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

[笔试训练](二十四)070:判断是不是平衡二叉树071:最大子矩阵072:小葱的01串

目录 070:判断是不是平衡二叉树 071:最大子矩阵 072:小葱的01串 070:判断是不是平衡二叉树 题目链接:判断是不是平衡二叉树_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 递归&#xff1a;对于左右子树&#xff0c;为平衡二叉树时&#xff0c;返回…

废品回收微信小程序基于FastAdmin+ThinkPHP+UniApp

一款基于FastAdminThinkPHPUniApp开发的废品回收系统&#xff0c;适用废品回收站、再生资源回收公司上门回收使用的小程序。 一、FastAdmin框架特色功能及优势 模块化开发&#xff1a;控制器、模型、视图、JS一一对应&#xff0c;使用RequireJS进行插件机制&#xff0c;支持插…

计算机SCI期刊,中科院2区TOP,对国人相当友好,一周内出版!

一、期刊名称 ISA Transactions 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;7.3 中科院分区&#xff1a;2区TOP 出版方式&#xff1a;订阅模式/开放出版 版面费&#xff1a;选择开放出版需支付$3950 三、期刊征稿范…

python开发的学习路线

I. 基础知识学习 A. Python基础语法 变量和数据类型 学习如何定义变量&#xff0c;理解并使用不同的数据类型&#xff08;整数、浮点数、字符串、布尔值等&#xff09;。 掌握数字类型的转换和操作。 熟悉字符串的基本操作&#xff0c;如拼接、切片、替换和查找。 …

python常用基础知识

目录 &#xff08;1&#xff09;print函数 &#xff08;2&#xff09;注释 &#xff08;3&#xff09;input函数 &#xff08;4&#xff09;同时赋值和连续赋值 &#xff08;5&#xff09;type函数和id函数 &#xff08;6&#xff09;python赋值是地址赋值 &#xff08;…

vue加密传输,后端获取进行解密。

文章目录 概要Vue前端加密后端进行解密小结 概要 vue界面加密传输&#xff0c;后端获取进行解密&#xff0c;适用于登录时密码加密传输。 Vue前端加密 1.安装jsencrypt包&#xff1a; npm install jsencrypt安装完成后package.json会有jsencrypt依赖 2.引入jsencrypt.js到文…

CRM与SCRM:联系与区别

引言 在当今数字化时代&#xff0c;企业与客户之间的互动变得日益频繁而复杂。为了更好地管理客户关系并提供更个性化的服务&#xff0c;许多企业采用了客户关系管理&#xff08;CRM&#xff09;系统。与此同时&#xff0c;随着社交媒体的普及和社交化互动的增加&#xff0c;社…

代码随想录-算法训练营day41【动态规划04:01背包问题-滚动数组、分割等和子集】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part04● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集 正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,…

前端学习第一课

AJAX 事先说明&#xff0c;这只是记录&#xff0c;并不是从零到一的教学内容&#xff0c;如果想要学习的话&#xff0c;可以跳过本文章了 ok&#xff0c;转回正题&#xff0c;正如上面所说&#xff0c;这只是记录。其实我是有一定的前端基础的&#xff0c;也做过涉及相关的开发…

【线性系统理论】笔记三

能控性判别 约当标准型 总结&#xff1a; 秩的判据 能观性判别 秩判据 能控Ⅰ型&能控Ⅱ型 1型 2型 能控性分解&能观型分解