下面给你一个**在 Linux 上给 Apache 配置 SSL(HTTPS)**的常见做法,适用于 Ubuntu / Debian / CentOS / Rocky 等常见发行版。
你有三种常见方式:
sudo apt install certbot python3-certbot-apache # Ubuntu/Debian
# 或
sudo yum install certbot python3-certbot-apache # CentOS/RHEL
申请证书:
sudo certbot --apache -d example.com -d www.example.com
✅ Certbot 会自动:
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/apache-selfsigned.key \
-out /etc/ssl/certs/apache-selfsigned.crt
你已有:
example.com.crtexample.com.keyca-bundle.crtsudo a2enmod ssl # Ubuntu/Debian
sudo systemctl restart apache2
CentOS/RHEL 默认已启用
编辑或新建:
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/ca-bundle.crt
<Directory /var/www/html>
AllowOverride All
</Directory>
</VirtualHost>
启用站点:
sudo a2ensite example-ssl
sudo systemctl reload apache2
sudo nano /etc/httpd/conf.d/ssl.conf
修改关键项:
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
SSLCertificateChainFile /etc/pki/tls/certs/ca-bundle.crt
sudo systemctl restart httpd
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
sudo ufw allow 443/tcp # Ubuntu
# 或
sudo firewall-cmd --add-port=443/tcp --permanent
sudo firewall-cmd --reload
curl -I https://example.com
或浏览器访问:
https://example.com
❌ 证书不受信任 → 用了自签证书
❌ 无法访问 443 → 防火墙 / 云安全组未开
❌ Apache 起不来 → 看日志
journalctl -xe
# 或
tail -f /var/log/apache2/error.log
如果你告诉我:
我可以给你完全对应的配置模板。