使用 Let‘s Encrypt 和 OpenResty 实现域名转发与 SSL 配置

在搭建网站或服务时,确保域名的安全性和正确的流量转发是非常重要的。本文将介绍如何使用 Let’s Encrypt 获取免费的 SSL 证书,并将其配置到 OpenResty 中,同时实现特定的域名转发规则。这不仅可以提升网站的安全性,还能优化流量管理。

概述

Let’s Encrypt官网:Let’s Encrypt
OpenResty官网:OpenResty

Let’s Encrypt 是一个免费的、自动化的、开放的证书颁发机构,提供 SSL/TLS 证书,用于加密网站流量,确保数据传输的安全。OpenResty 是一个基于 Nginx 的高性能 web 平台,支持动态模块加载,适合用于构建高性能的 web 应用和服务。
本文的目标是实现以下功能:

  1. 使用 Let’s Encrypt 获取 SSL 证书。
  2. 将 SSL 证书配置到 OpenResty 中。
  3. 配置域名转发规则:
    • 主域名 main_host.com转发到本地端口 8080。
    • 二级域名 test.main_host.com转发到本地端口 8090。
  4. 设置 SSL 证书的自动续期。

安装 Let’s Encrypt 客户端(Certbot)

Let’s Encrypt 提供的 Certbot 是常用的客户端工具,用于获取和续期 SSL 证书。以下是安装步骤:

sudo apt update
sudo apt install certbot

获取 SSL 证书

假设你的域名已经解析到服务器 IP 上,运行以下命令获取 SSL 证书:

sudo certbot certonly --standalone -d main_host.com -d test.main_host.com
  • --standalone表示 Certbot 会临时启动一个 web 服务来验证域名所有权。
  • -d后面跟上你的域名。

运行完成后,证书会存储在 /etc/letsencrypt/live/main_host.com/目录下。

安装 OpenResty

如果尚未安装 OpenResty,可以通过以下命令安装:

wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
echo "deb http://openresty.org/package/debian $(lsb_release -sc) openresty" | sudo tee -a /etc/apt/sources.listsudo apt update
sudo apt install openresty

如果你有安装1panel那你可以直接使用它来安装OpenResty,并且部署也会更快!

配置 OpenResty

编辑 OpenResty 的配置文件,通常位于 /usr/local/openresty/nginx/conf/nginx.conf/etc/nginx/nginx.conf。根据你的需求,配置如下:

worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;# SSL 配置【指定ssl文件位置】ssl_certificate /etc/letsencrypt/live/main_host.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/main_host.com/privkey.pem;# 主域名配置,转发到 8080server {listen 80;listen 443 ssl;server_name main_host.com;location / {proxy_pass http://127.0.0.1:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}#  二级域名配置,转发到 8090server {listen 80;listen 443 ssl;server_name test.main_host.com;location / {proxy_pass http://127.0.0.1:8090;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}

测试并重启 OpenResty

保存配置文件后,运行以下命令测试配置文件是否正确:

sudo openresty -t

如果测试通过,重启 OpenResty 使配置生效:

sudo systemctl restart openresty

设置 Let’s Encrypt 证书自动续期

Let’s Encrypt 的证书有效期为 90 天,建议设置自动续期任务:

sudo certbot renew --dry-run

如果测试通过,可以将其加入定时任务:

sudo crontab -e

添加以下内容:

0 2 * * 1 certbot renew --quiet

这表示每周一凌晨 2 点自动续期证书。

通过以上步骤,你可以为你的域名获取 Let’s Encrypt 的 SSL 证书,并配置 OpenResty 实现主域名和二级域名转发到不同端口。同时,设置自动续期可以确保你的 SSL 证书始终有效,避免因证书过期而导致的安全问题。

更多内容请访问:跃享小筑

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

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

相关文章

SpringBoot3整合Swagger3时出现Type javax.servlet.http.HttpServletRequest not present错误

目录 错误详情 错误原因 解决方法 引入依赖 修改配置信息 创建文件 访问 错误详情 错误原因 SpringBoot3和Swagger3版本不匹配 解决方法 使用springdoc替代springfox&#xff0c;具体步骤如下&#xff1a; 引入依赖 在pom.xml文件中添加如下依赖&#xff1a; <…

ChatGPT提问技巧:行业热门应用提示词案例-文案写作

ChatGPT 作为强大的 AI 语言模型&#xff0c;已经成为文案写作的得力助手。但要让它写出真正符合你需求的文案&#xff0c;关键在于如何与它“沟通”&#xff0c;也就是如何设计提示词&#xff08;Prompt&#xff09;。以下是一些实用的提示词案例&#xff0c;帮助你解锁 ChatG…

供排水水工公司开展企业获得用水营商环境满意度调查

为了持续提升企业的供水服务品质&#xff0c;进一步优化当地的营商环境&#xff0c;深圳市供排水公司水工公司紧密结合其实际工作情况&#xff0c;特别委托民安智库开展了2023年度优化营商环境调查专项工作。该项目的核心目的是深入了解并评估市各类获得用水企业的用水环境满意…

【Elasticsearch】分桶聚合功能概述

这些聚合功能可以根据它们的作用和应用场景分为几大类&#xff0c;以下是分类后的结果&#xff1a; 1.基础聚合&#xff08;Basic Aggregations&#xff09; • Terms&#xff08;字段聚合&#xff09; 根据字段值对数据进行分组并统计。 例子&#xff1a;按产品类别统计销…

mysql的cpu使用率100%问题排查

背景 线上mysql服务器经常性出现cpu使用率100%的告警&#xff0c; 因此整理一下排查该问题的常规流程。 1. 确认CPU占用来源 检查系统进程 使用 top 或 htop 命令&#xff0c;确认是否是 mysqld 进程导致CPU满载&#xff1a;top -c -p $(pgrep mysqld)2. 实时分析MySQL活动 …

人工智能赋能企业系统架构设计:以ERP与CRM系统为例

一、引言 1.1 研究背景与意义 在数字化时代&#xff0c;信息技术飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一项具有变革性的技术&#xff0c;正深刻地影响着各个领域。近年来&#xff0c;AI 在技术上取得了显著突破&#xff0c;…

使用jmeter进行压力测试

使用jmeter进行压力测试 jmeter安装 官网安装包下载&#xff0c;选择二进制文件&#xff0c;解压。 tar -xzvf apache-jmeter-x.tgz依赖jdk安装。 yum install java-1.8.0-openjdk环境变量配置&#xff0c;修改/etc/profile文件&#xff0c;添加以下内容。 export JMETER/…

深入理解流(Streams)—— 声明式数据处理的艺术

1. 引言 大家好&#xff01;欢迎来到本系列博客的第三篇。在前两篇文章中&#xff0c;我们已经领略了 Java 8 中 行为参数化 和 Lambda 表达式 的魅力。 在第 1 章 Java行为参数化&#xff1a;从啰嗦到简洁的代码进化中&#xff0c;我们了解到如何通过将行为&#xff08;代码…

【Linux】之【Get√】nmcli device wifi list 与 wpa_cli scan 和 wpa_cli scan_result 区别

nmcli device wifi list 是 NetworkManager 的命令行工具 nmcli 的一部分&#xff0c;它用于列出当前可用的无线网络。它的作用和 wpa_cli 的扫描功能类似&#xff0c;但有一些不同点。 1. nmcli device wifi list 功能&#xff1a; nmcli device wifi list 命令用于显示当前…

【蓝桥杯嵌入式】6_定时器输入捕获

全部代码网盘自取 链接&#xff1a;https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码&#xff1a;3ii2 这是两个信号发生器&#xff0c;可以通过调节板上的两个电位器R39和R40调节输出频率。 将PB4、PA15选择ch1&#xff0c;两个信号发生器只能选择TIM3和TIM…

详解SQLAlchemy的函数relationship

在 SQLAlchemy 中&#xff0c;relationship 是一个非常重要的函数&#xff0c;用于定义模型之间的关系。它用于在 ORM 层面上表示数据库表之间的关联关系&#xff08;如 1 对 1、1 对多和多对多&#xff09;。relationship 的主要作用是提供一个高级接口&#xff0c;用于在模型…

分桶函数的使用

除了 NTILE 函数&#xff0c;SQL 中还有其他一些与 分桶&#xff08;bucketization&#xff09;相关的函数&#xff0c;虽然它们的实现方式不同&#xff0c;但都涉及将数据分成多个区间或组。以下是一些常用的分桶函数&#xff1a; 1. CASE 语句 虽然 CASE 不是开窗函数&…

iOS 音频录制、播放与格式转换

iOS 音频录制、播放与格式转换:基于 AVFoundation 和 FFmpegKit 的实现 在 iOS 开发中,音频处理是一个非常常见的需求,比如录音、播放音频、音频格式转换等。本文将详细解读一段基于 AVFoundation 和 FFmpegKit 的代码,展示如何实现音频录制、播放以及 PCM 和 AAC 格式之间…

数据结构与算法(test1)

一、树和二叉树 1. 看图&#xff0c;完成以下填空 (1).树的度为________。 (2).树中结点的最大层次&#xff0c;称为树的_____或树的______&#xff0c;值是______。 (3).结点A和B的度分别为________ 和 ________。 (4).结点A是结点B的________。 (5).结点B是结点A的________…

新版AndroidStudio 修改 jdk版本

一、问题 之前&#xff0c;在安卓项目中配置JDK和Gradle的过程非常直观&#xff0c;只需要进入Android Studio的File菜单中的Project Structure即可进行设置&#xff0c;十分方便。 如下图可以在这修改JDK: 但是升级AndroidStudio之后&#xff0c;比如我升级到了Android Stu…

litemall,又一个小商场系统

litemall Spring Boot后端 Vue管理员前端 微信小程序用户前端 Vue用户移动端 代码地址&#xff1a;litemall: 又一个小商城。 litemall Spring Boot后端 Vue管理员前端 微信小程序用户前端 Vue用户移动端

cursor 开发java项目教程简单上手

1.官网下载 Cursor - The AI Code Editor 下载完后注册账号&#xff0c;可以使用无限邮的方式 注册完之后 设置中文 可以选择设置为中文 Ctrl Shift X 进入设置页面输入chinese 然后重启 更改jdk跟maven仓库设置 ctrlshiftp 打开输入框后输入json&#xff0c;把下面代码…

安装和使用 Ollama(实验环境windows)

下载安装 下载 https://ollama.com/download/windows 安装 Windows 安装 如果直接双击 OllamaSetup.exe 安装&#xff0c;默认会安装到 C 盘&#xff0c;如果需要指定安装目录&#xff0c;需要通过命令行指定安装地址&#xff0c;如下&#xff1a; # 切换到安装目录 C:\Use…

[原创](Modern C++)现代C++的关键性概念: 文件编码细节之一:BOM(Byte Order Mark, 字节顺序标记)

常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse、C Bui…

LQB(0)-python-基础知识

一、Python开发环境与基础知识 python解释器&#xff1a;用于解释python代码 方式&#xff1a; 1.直接安装python解释器 2.安装Anaconda管理python环境 python开发环境&#xff1a;用于编写python代码 1.vscode 2.pycharm # 3.安装Anaconda后可以使用网页版的jupyter n…