温馨提示×

debian lnmp如何设ssl

小樊
49
2026-09-20 02:24:01
栏目: 云计算

在 Debian 上搭建 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 并配置 SSL(HTTPS),通常有两种主流方式:


一、使用 Let’s Encrypt 免费 SSL(推荐)

适合公网域名,自动签发、自动续期。

1. 前提条件

  • 已安装 Nginx
  • 已有域名(如 example.com)
  • 域名已解析到服务器 IP
  • 80 端口可访问

2. 安装 Certbot

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

3. 自动申请并配置 SSL

sudo certbot --nginx -d example.com -d www.example.com

按提示操作即可,Certbot 会自动:

  • 申请证书
  • 修改 Nginx 配置
  • 开启 HTTPS

4. 测试自动续期

sudo certbot renew --dry-run

二、使用自签名 SSL(内网/测试)

1. 生成私钥和证书

sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/nginx/ssl/nginx.key \
  -out /etc/nginx/ssl/nginx.crt

填写信息(可随意)


2. 配置 Nginx

编辑站点配置:

sudo nano /etc/nginx/sites-available/default

示例:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    root /var/www/html;
    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;
    return 301 https://$host$request_uri;
}

3. 重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

三、LNMP 一键包用户(可选)

如果你用的是 lnmp.org 一键包:

lnmp ssl add

按提示输入域名和证书路径即可。


四、常见问题

✅ HTTPS 打不开

  • 检查 443 端口是否放行
  • 防火墙:ufw allow 443

✅ PHP 不解析

  • 确认 fastcgi_pass 路径正确
  • php-fpm 正在运行

如果你愿意,可以告诉我:

  • 用的是 原生 Debian + Nginx 还是 LNMP 一键包
  • 域名是否已有
  • 内网还是公网

我可以给你精准配置文件。

0 踩