温馨提示×

Debian LAMP怎么开启HTTPS

小樊
50
2026-10-01 20:15:28
栏目: 智能运维

在 Debian 上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境后,开启 HTTPS 通常是通过 Apache + SSL 模块 + 证书 来实现的。下面按最常见、最实用的方式给你讲一遍。


一、前提条件

  • 已安装 Apache(apache2)
  • 已有域名(推荐,Let’s Encrypt 必须)
  • 服务器 80 和 443 端口可访问

二、方式一(推荐):使用 Let’s Encrypt 免费证书

1. 安装 certbot

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

2. 申请并自动配置 HTTPS

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

把 example.com 换成你的域名

certbot 会:

  • 自动开启 Apache SSL
  • 修改虚拟主机
  • 设置 80 → 443 跳转

3. 自动续期测试

sudo certbot renew --dry-run

✅ 到此 HTTPS 已开启


三、方式二:使用自签名证书(测试用)

1. 启用 SSL 模块

sudo a2enmod ssl
sudo systemctl restart apache2

2. 生成自签名证书

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

3. 配置虚拟主机

编辑或新建:

sudo nano /etc/apache2/sites-available/ssl.conf

示例:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
</VirtualHost>

4. 启用站点

sudo a2ensite ssl.conf
sudo systemctl restart apache2

⚠️ 浏览器会提示“不安全”,仅适合测试


四、强制 HTTP 跳转到 HTTPS(推荐)

在 Apache 配置或 .htaccess 中加:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

五、常见问题

  • 防火墙:确保放行 443
    sudo ufw allow 443
    
  • DNS:域名必须解析到服务器 IP
  • Apache 未监听 443:检查 ports.conf

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

  • Debian 版本(11 / 12)
  • Apache 是否已配置多个站点
  • 是否用 Docker

我可以帮你写完整可直接用的配置文件。

0 踩