当前位置: 首页 > news >正文

Nginx 配置 SSL(HTTPS)

记录如何给网站配置 HTTPS

获取免费的 SSL 证书

这个我是从阿里的数字证书管理服务申请的一年免费 SSL 证书。一年可以免费申请 20 张免费证书。
在这里插入图片描述
申请好之后,还是在这个页面点击「创建 20 / 20」按钮,创建一个证书,并点击操作栏的「申请证书」正式申请你的证书。
在这里插入图片描述

在申请页面中,输入以下几个必填信息(以实际页面为主):

  • 证书绑定域名
  • 域名验证方式
  • 联系人
  • 所在地
  • 密钥算法
  • CSR 生成方式

然后点击下一步,在对应的阿里云DNS控制台添加已生成的 DNS 解析记录。这个一般人家都会帮你生成好,等5分钟左右,回到证书申请页面,点击「验证」即可。
在这里插入图片描述

等待验证通过之后,点击「提交审核」即可。
完成上述步骤之后,我们点击证书列表操作栏中的「部署」按钮,跳到「证书部署」页面:

  • 选择资源列表-云服务器 ECS
  • 在自己的 ECS 服务器上进行部署(点击「部署」按钮)
  • 自定义证书路径和私钥路径
  • 点击确定之后,就会在你的 ECS 上生成对应的证书及其私钥
    在这里插入图片描述

如果不知道如何配置,可以点击右上角的「帮助文档」,傻瓜式粘贴复制。
如果在确认之后,一直迟迟没有好,那可能出现了 BUG,我查看了接口之后发现接口报错了,然后登到服务器之后又发现,证书已经OK了。

接下来我们就是需要去配置 Nginx 了。
在配置之前我们需要知道以下几点:

  1. 确保 Nginx 是已经安装过 https 的模块(这个不安装,在配置了 ssl 后重新 reload 也会提示)
  2. 确保 ssl 部分的配置正确
  3. 可以使用 nginx -t 测试

如果我们当安装 nginx 之初没有安装 ssl 模块,那么需要进到 nginx 的安装包内进行安装:

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

为什么要进入到安装包,是因为 configure 就在安装包内,当然也可以根据路径来安装,都可以的

安装好之后,需要再编译一次:

make

然后这里我们最好是备份已有的 nginx.conf 文件,防止后续操作时被覆盖掉。

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

再然后,复制刚编译生成的配置覆盖原有的配置:

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

我们再回到 nginx.conf 中添加 ssl 部分的配置:

server {
    listen       443 ssl;
    server_name  xxxx;
    ssl_certificate       cert/wenabc.pem;
    ssl_certificate_key   cert/wenabc.key;
	ssl_session_timeout 5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    location / {
        root /home/;
    	index  index.html index.htm;
    }
}

最后执行:

ngixn -s reload

大功告成。

踩坑

首先就是没有安装 ssl 模块,导致卡了半天,安装好之后就比较顺利。
第二就是在替换 nginx 二进制文件时,提示原来的程序正在执行,那这个就是需要先 stop 掉当前的 nginx,在替换之后,重新执行一下 ./nginx 即可。

相关文章:

  • 用css实现简单的动画——“奔跑的小子”(有知识梳理和图片)
  • macbook m1芯片 实现vscode下debug(解决无法读入的问题)
  • 前端:下载文件(多种方法)
  • 猿创征文|【JavaSE】 Collection集合全家桶
  • 【Coppeliasim+Add-on】附加组件-喷涂路径自动生成及喷涂仿真
  • 简易下载并使用Jupyter(Anaconda)
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记:以太坊(四):The DAO、反思、美链、总结
  • 算法与数据结构(2)--- 绪论(下)
  • 基于AAEncode编码的解密经历
  • 设定目标(1)- 为什么你每天感觉很忙却没什么拿得出手的成果?
  • 《大数据之路:阿里巴巴大数据实践》-第2篇 数据模型篇 -第9章 阿里巴巴数据整合及管理体系
  • 懂这些套路,开发到大客户不是什么难题
  • 市政管理学试题及答案
  • 第6章 - 多无人车系统的协同控制 --> 无人车运动原理
  • jmeter-11-Ant接口自动化及持续集成整合
  • __proto__ 和 prototype的关系
  • Effective Java 笔记(一)
  • Git初体验
  • golang中接口赋值与方法集
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript标准库系列——Math对象和Date对象(二)
  • java取消线程实例
  • Python中eval与exec的使用及区别
  • Redis中的lru算法实现
  • SAP云平台里Global Account和Sub Account的关系
  • SpingCloudBus整合RabbitMQ
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • Web设计流程优化:网页效果图设计新思路
  • 多线程 start 和 run 方法到底有什么区别?
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 你不可错过的前端面试题(一)
  • 区块链共识机制优缺点对比都是什么
  • 推荐一个React的管理后台框架
  • 学习笔记TF060:图像语音结合,看图说话
  • NLPIR智能语义技术让大数据挖掘更简单
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 湖北分布式智能数据采集方法有哪些?
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (MATLAB)第五章-矩阵运算
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (汇总)os模块以及shutil模块对文件的操作
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (算法)Travel Information Center
  • (一)基于IDEA的JAVA基础10
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .gitignore文件---让git自动忽略指定文件
  • .Net CF下精确的计时器
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划