在搭建网站或服务时,确保域名的安全性和正确的流量转发是非常重要的。本文将介绍如何使用 Let’s Encrypt 获取免费的 SSL 证书,并将其配置到 OpenResty 中,同时实现特定的域名转发规则。这不仅可以提升网站的安全性,还能优化流量管理。
概述
Let’s Encrypt官网:Let’s Encrypt
OpenResty官网:OpenResty
Let’s Encrypt 是一个免费的、自动化的、开放的证书颁发机构,提供 SSL/TLS 证书,用于加密网站流量,确保数据传输的安全。OpenResty 是一个基于 Nginx 的高性能 web 平台,支持动态模块加载,适合用于构建高性能的 web 应用和服务。
本文的目标是实现以下功能:
- 使用 Let’s Encrypt 获取 SSL 证书。
- 将 SSL 证书配置到 OpenResty 中。
- 配置域名转发规则:
- 主域名 main_host.com转发到本地端口 8080。
- 二级域名 test.main_host.com转发到本地端口 8090。
- 设置 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 证书始终有效,避免因证书过期而导致的安全问题。
更多内容请访问:跃享小筑