在搭建網站或服務時,確保域名的安全性和正確的流量轉發是非常重要的。本文將介紹如何使用 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.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 證書始終有效,避免因證書過期而導致的安全問題。
更多內容請訪問:躍享小筑