在 Debian + LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 环境下部署 SSL(HTTPS),通常有两种主流方式:
下面分别说明。
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
假设你的域名是 example.com,且 Nginx 已配置好 HTTP 站点:
sudo certbot --nginx -d example.com -d www.example.com
按提示输入邮箱、同意条款即可。
certbot 会:
sudo certbot renew --dry-run
证书路径一般位于:
/etc/letsencrypt/live/example.com/
通常包括:
example.com.crt(证书)example.com.key(私钥)ca_bundle.crt(中间证书,可选)放入目录:
sudo mkdir -p /etc/nginx/ssl/example.com
sudo cp example.com.crt example.com.key /etc/nginx/ssl/example.com/
编辑站点配置文件(如 /etc/nginx/sites-available/example.com):
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/example.com;
index index.php index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
sudo nginx -t
sudo systemctl reload nginx
如果你是用 lnmp.org 一键包:
cd /root/lnmp
./addssl.sh
按提示输入:
sudo ufw allow 443/tcp
已在上面 return 301 示例中体现。
如果你能告诉我:
我可以给你 更精确的命令和配置文件。