apach2 配置 https (Cerbot版) - mowen0303/note GitHub Wiki

在VPS上使用Apache2配置HTTPS证书的步骤如下:


1. 安装必要的工具

首先安装Certbot及其Apache插件,适用于Ubuntu/Debian系统:

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

2. 获取并安装SSL证书

运行Certbot并按照提示操作:

sudo certbot --apache
  • 输入邮箱用于紧急通知和安全通知。
  • 同意服务条款。
  • 选择要为哪个域名配置HTTPS(Certbot会自动检测Apache中的虚拟主机)。
  • 选择是否将HTTP流量自动重定向到HTTPS(推荐选择2启用重定向)。

3. 验证证书自动续订

Let's Encrypt证书有效期为90天,Certbot会自动配置定时任务续订。测试续订流程:

sudo certbot renew --dry-run

若输出未报错,则续订配置正常。


4. 配置防火墙(如有必要)

确保防火墙允许HTTPS流量(端口443):

sudo ufw allow 443/tcp
sudo ufw reload

5. 验证HTTPS配置

访问 https://你的域名,确认浏览器显示安全锁标志。可通过[SSL Labs测试](https://www.ssllabs.com/ssltest/)检查配置安全性。


手动配置(可选)

若需手动调整,证书通常存放在:

/etc/letsencrypt/live/你的域名/
  • 私钥:privkey.pem
  • 证书:cert.pem
  • 链文件:chain.pem
  • 完整链:fullchain.pem

示例Apache虚拟主机配置

<VirtualHost *:443>
    ServerName 你的域名
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/你的域名/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/你的域名/privkey.pem

    # 其他配置...
</VirtualHost>

启用SSL模块并重启Apache:

sudo a2enmod ssl
sudo systemctl restart apache2

强制HTTP重定向到HTTPS

若未通过Certbot自动配置,可在HTTP虚拟主机中添加重定向:

<VirtualHost *:80>
    ServerName 你的域名
    Redirect permanent / https://你的域名/
</VirtualHost>

故障排查

  • 证书申请失败:检查域名解析是否正确,80端口是否开放且未被占用。
  • HTTPS无法访问:确认443端口开放,防火墙未阻止,Apache配置无误。
  • 查看日志
    • Certbot日志:/var/log/letsencrypt/
    • Apache错误日志:/var/log/apache2/error.log

完成以上步骤后,你的网站将通过HTTPS安全访问。使用Certbot自动化流程可简化操作,确保配置正确且易于维护。