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

使用 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.list

sudo 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;

    # 主域名配置,转发到 8080
    server {
        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;
        }
    }

    #  二级域名配置,转发到 8090
    server {
        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.kler.cn/a/537380.html

相关文章:

  • 多光谱技术在华为手机上的应用发展历史
  • JDBC笔记
  • 【centOS】搭建公司内网git环境-GitLab 社区版(GitLab CE)
  • Class加载流程和运行时区域
  • 【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题
  • 【AI大模型】Ubuntu18.04安装deepseek-r1模型+服务器部署+内网访问
  • Maven 插件与目标(Goals)
  • VSCode使用总结
  • 探讨如何在AS上构建webrtc(2)从sdk/android/Build.gn开始
  • SpringBoot3 + Jedis5 + Redis集群 如何通过scan方法分页获取所有keys
  • 【大数据技术】Kafka实时分析用户行为日志(python+zookeeper+kafka)
  • VsCode创建VUE项目
  • 数据库操作与数据管理——Rust 与 SQLite 的集成
  • csv-parser在C++17下from_chars函数问题
  • 【GitLab CI/CD 实践】从 0 到 1 搭建高效自动化部署流程
  • Git命令缩写配置(git命令设置别名)
  • DFX(Design for eXcellence)架构设计全解析:理论、实战、案例与面试指南*
  • enableEdgeToEdge
  • 深度分析:网站快速收录与网站内容多样性的关系
  • java程序员面试自身优缺点,详细说明
  • Git命令的复习
  • SpringAI系列 - 使用LangGPT编写高质量的Prompt
  • NodeList 对象
  • Java-序列化
  • BUU24 [GXYCTF2019]BabyUpload 1
  • qt6.8安装mysql8.0驱动