使用 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.rhkb.cn/news/14226.html

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

相关文章

CSS outline详解:轮廓属性的详细介绍

什么是outline? outline(轮廓)是CSS中一个有趣的属性,它在元素边框(border)的外围绘制一条线。与border不同的是,outline不占用空间,不会影响元素的尺寸和位置。这个特性使它在某些…

设计模式.

设计模式 一、介绍二、六大原则1、单一职责原则(Single Responsibility Principle, SRP)2、开闭原则(Open-Closed Principle, OCP)3、里氏替换原则(Liskov Substitution Principle, LSP)4、接口隔离原则&am…

硬件工程师思考笔记02-器件的隐秘角落:磁珠与电阻噪声

目录 引言 一、磁珠:你以为的“噪声克星”,可能是高频杀手 1. 磁珠的阻抗特性与误区 2. 案例:磁珠引发的5G射频误码率飙升 二、电阻:静默的噪声制造者 1. 电阻噪声的两种形态 2. 案例:ADC精度被电阻噪声“偷走” 三、设…

mysql 不是内部或外部命令,也不是可运行的程序或批处理文件

mysql 不是内部或外部命令,也不是可运行的程序或批处理文件 前言描述1、🌱环境变量配置(高级系统设置):2、🌱环境变量配置(系统属性):3、🌱环境变量配置&…

极客说|利用 Azure AI Agent Service 创建自定义 VS Code Chat participant

作者:卢建晖 - 微软高级云技术布道师 「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」&a…

在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?

在rtthread源码中,每一个bsp芯片板级目录下都有一个 SConstruct scons构建脚本的入口, 在这里把rtthread tools/目录下的所有模块都添加到了系统路径中: 在tools下所有模块中,最重要的是building.py模块,在此脚本里面…

Redis基础--常用数据结构的命令及底层编码

零.前置知识 关于时间复杂度,按照以下视角看待. redis整体key的个数 -- O(N)当前key对应的value中的元素个数 -- O(N)当前命令行中key的个数 -- O(1) 一.string 1.1string类型常用命令 1.2string类型内部编码 二.Hash 哈希 2.1hash类型常用命令 2.2hash类型内部编码 2.3ha…

【leetcode100】岛屿的最大面积

1、题目描述 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积…

将仓库A分支同步到仓库B分支,并且同步commit提交

一、 问题 有一仓库A 和 一仓库B, 需要将仓库A分支a1所有提交同步推送到仓库B分支b1上 二、 解决 2.1、 首先需要仓库A、仓库B的权限, 2.2、将仓库A clone到本地, 进入A目录,并且切换到a1分支 cd A ## A 为A仓库clone到本地代…

Matplotlib基础01( 基本绘图函数/多图布局/图形嵌套/绘图属性)

Matplotlib基础 Matplotlib是一个用于绘制静态、动态和交互式图表的Python库,广泛应用于数据可视化领域。它是Python中最常用的绘图库之一,提供了多种功能,可以生成高质量的图表。 Matplotlib是数据分析、机器学习等领域数据可视化的重要工…

Nginx 配置 SSL(HTTPS)详解

Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。 随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…

Mybatis篇

1,什么是Mybatis ( 1 )Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁…

文件上传全详解

前言 我们下面进行下一个漏洞——文件上传的学习。文件上传是常见漏洞之一,是Web安全必学漏洞。为探讨清楚文件上传漏洞的诸多细节,我们特以经典的upload-labs进行从入门到进阶的专项训练。 作者进行upload-labs靶场练习时,在环境配置上出了…

【centOS】搭建公司内网git环境-GitLab 社区版(GitLab CE)

1. 安装必要的依赖 以 CentOS 7 系统为例,安装必要的依赖包: sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix sudo systemctl start postfix sudo systemctl enable postfix2. 添加 GitLab 仓库 curl -sS https:/…

阿里云 | DeepSeek人工智能大模型安装部署

ModelScope是阿里云人工智能大模型开源社区 ModelScope网络链接地址 https://www.modelscope.cn DeepSeek模型库网络链接地址 https://www.modelscope.cn/organization/deepseek-ai 如上所示,在阿里云人工智能大模型开源社区ModelScope中,使用阿里云…

Android13-系统服务大管家-ServiceManager进程-启动篇

文章目录 关注 ServiceMager 原因ServerManager需要掌握的知识资料参考ServiceManager 进程启动启动脚本涉及到的相关源码文件源码跟踪ServiceManager脚本启动位置ServiceManager关联脚本 Native层源码分析main.cpp流程打开驱动 initWithDriverinitmakeProcessState 构造方法op…

【华为OD-E卷 - 113 跳格子2 100分(python、java、c++、js、c)】

【华为OD-E卷 - 跳格子2 100分(python、java、c、js、c)】 题目 小明和朋友玩跳格子游戏,有 n 个连续格子组成的圆圈,每个格子有不同的分数,小朋友可以选择以任意格子起跳,但是不能跳连续的格子&#xff…

DeepSeek-R1 云环境搭建部署流程

DeepSeek横空出世,在国际AI圈备受关注,作为个人开发者,AI的应用可以有效地提高个人开发效率。除此之外,DeepSeek的思考过程、思考能力是开放的,这对我们对结果调优有很好的帮助效果。 DeepSeek是一个基于人工智能技术…

npm安装electron安装报错

npm安装electron巨慢,报错,换了镜像源也不好使,一般都是网络超时导致的。 cmd窗口执行:(打开npm的配置文件) npm config edit在配置文件中粘贴,并保存: registryhttps://regis…

x64、aarch64、arm与RISC-V64:详解四种处理器架构

x64、aarch64、arm与RISC-V64:详解四种处理器架构 x64架构aarch64架构ARM架构RISC-V64架构总结与展望在计算机科学领域,处理器架构是构建计算机系统的基石,它决定了计算机如何执行指令、管理内存和处理数据。x64、aarch64、arm与RISC-V64是当前主流的四种处理器架构,它们在…