在 Debian 上通过 Apache2 开启 SSL(HTTPS) 一般分为几个步骤:安装模块、启用 SSL、配置虚拟主机、以及(可选)申请证书。下面按最常用方式说明。
sudo apt update
sudo apt install apache2
sudo a2enmod ssl
sudo systemctl restart apache2
Debian 自带一个 SSL 示例站点:
sudo a2ensite default-ssl
sudo systemctl reload apache2
此时访问:
https://你的服务器IP
如果浏览器提示证书不安全,说明 SSL 已生效(自签名证书)。
通常需要:
example.com.crt(证书)example.com.key(私钥)ca-bundle.crt(中间证书)放到:
/etc/ssl/certs/
/etc/ssl/private/
例如:
sudo nano /etc/apache2/sites-available/example.com-ssl.conf
内容示例:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/ca-bundle.crt
<Directory /var/www/example.com>
AllowOverride All
</Directory>
</VirtualHost>
启用站点:
sudo a2ensite example.com-ssl
sudo systemctl reload apache2
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
certbot 会自动:
sudo certbot renew --dry-run
在 80 端口站点中加:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
如果启用了防火墙:
sudo ufw allow 443/tcp
SSLEngine onjournalctl -xe 或 apache2ctl configtest如果你愿意,可以告诉我:
我可以给你一份可直接用的配置文件。