在 Ubuntu 上给 Apache2 配置 SSL 证书,常见有两种情况:
✅ 使用 Let’s Encrypt(免费、自动续签,推荐)
✅ 使用自己购买的 SSL 证书(或自签名)
下面分别说明。
sudo apt update
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache
按提示操作:
example.com)2)✅ Certbot 会自动:
sudo apache2ctl configtest
sudo systemctl reload apache2
sudo certbot renew --dry-run
Let’s Encrypt 证书 90 天有效期,Ubuntu 会自动通过 systemd timer 续签。
sudo a2enmod ssl
sudo systemctl restart apache2
假设证书文件如下:
/etc/ssl/certs/example.com.crt
/etc/ssl/private/example.com.key
/etc/ssl/certs/example.com.ca-bundle # 可选
⚠️ private key 权限必须安全
sudo chmod 600 /etc/ssl/private/example.com.key
新建配置文件:
sudo nano /etc/apache2/sites-available/example-ssl.conf
示例配置:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/example.com.ca-bundle
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
sudo a2ensite example-ssl.conf
sudo systemctl reload apache2
编辑 HTTP 站点配置:
sudo nano /etc/apache2/sites-available/000-default.conf
添加:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
重启:
sudo systemctl reload apache2
sudo journalctl -xe
sudo apache2ctl -S
sudo ufw allow 443/tcp
| 场景 | 推荐方式 |
|---|---|
| 公网网站 | ✅ Let’s Encrypt |
| 内网 / 测试 | 自签 SSL |
| 企业证书 | 上传 CRT + KEY |
如果你愿意,可以告诉我:
我可以给你 完全针对你环境的配置命令 ✅