Ubuntu Apache怎样进行SSL证书管理
导读:Ubuntu Apache SSL证书管理指南 一 准备与前置检查 准备:一台 Ubuntu 服务器、具有 sudo 权限的非 root 用户、已解析到服务器公网 IP 的域名(建议同时添加 A 记录:your_domain 与 www....
Ubuntu Apache SSL证书管理指南
一 准备与前置检查
- 准备:一台 Ubuntu 服务器、具有 sudo 权限的非 root 用户、已解析到服务器公网 IP 的域名(建议同时添加 A 记录:your_domain 与 www.your_domain)。
- 安装组件:更新索引并安装 Apache 与 SSL 模块,启用 SSL 模块。
- 命令:sudo apt update & & sudo apt install apache2 apache2-mod_ssl ssl-cert
- 启用模块:sudo a2enmod ssl
- 防火墙:放行 HTTP/HTTPS(UFW 使用 Apache Full 配置更便捷)。
- 命令:sudo ufw allow ‘Apache Full’;如曾单独放行 Apache,可删除:sudo ufw delete allow ‘Apache’
- 虚拟主机:确保站点配置中存在正确的 ServerName 与 ServerAlias,以便自动化工具识别域名。
二 使用 Let’s Encrypt 自动化签发与部署
- 安装 Certbot 及 Apache 插件:sudo apt install certbot python3-certbot-apache
- 获取并安装证书(Apache 插件会自动修改配置、启用 HTTPS,并可选择是否重定向 HTTP→HTTPS):sudo certbot --apache -d your_domain -d www.your_domain
- 证书路径与生效:证书与私钥通常位于 /etc/letsencrypt/live/your_domain/(常用文件:fullchain.pem、privkey.pem)。
- 验证与测试:访问 https://your_domain 检查锁标识;可用 SSL Labs Server Test 做外部评级;证书默认 90 天 有效,需确保续期正常。
三 手动部署第三方或自签名证书
- 准备文件:从 CA 获取或自行生成证书与私钥(常见为:your_domain.crt/your_domain.key,以及中间证书 chain.crt;自签名可用 OpenSSL 生成,仅用于测试)。
- 放置证书:建议统一放在 /etc/apache2/ssl/ 并设合适权限。
- 示例:sudo mkdir -p /etc/apache2/ssl & & sudo cp your_domain.{ crt,key} chain.crt /etc/apache2/ssl/
- 启用模块与端口:sudo a2enmod ssl;确认 443 监听(必要时在 /etc/apache2/ports.conf 添加 Listen 443)。
- 配置站点(示例片段,写入或合并到站点配置):
- <
VirtualHost *:443>
- ServerName your_domain
- DocumentRoot /var/www/your_domain/public_html
- SSLEngine on
- SSLCertificateFile /etc/apache2/ssl/your_domain.crt
- SSLCertificateKeyFile /etc/apache2/ssl/your_domain.key
- SSLCertificateChainFile /etc/apache2/ssl/chain.crt
-
可选:Include /etc/letsencrypt/options-ssl-apache.conf(若使用 Certbot 提供的推荐参数)
- <
VirtualHost *:443>
- 启用站点与重载:sudo a2ensite your_domain.conf & & sudo systemctl reload apache2
- HTTP→HTTPS 重定向(可选,写入 :80 虚拟主机):Redirect permanent / https://your_domain/
四 续期与运维管理
- 自动续期机制:Let’s Encrypt 证书 90 天 有效;Certbot 在 /etc/cron.d/certbot 配置了定时任务(由 certbot.timer 管理),通常每天检查并在到期前 30 天 内自动续期。
- 检查与演练:
- 查看定时器:sudo systemctl status certbot.timer
- 干跑测试:sudo certbot renew --dry-run(无错误表示续期流程正常)
- 手动续期与重载:sudo certbot renew(成功后 Certbot 会自动重载 Apache;如未重载可手动执行:sudo systemctl reload apache2)
- 文件与权限:证书与私钥属敏感文件,确保仅 root 可读;续期后新文件会写入 /etc/letsencrypt/live/your_domain/ 并自动软链接更新。
五 常见问题与排查
- 端口与防火墙:确认云安全组/本机防火墙放行 443/TCP;UFW 使用 Apache Full。
- 配置语法与生效:修改后先执行 sudo apache2ctl configtest,确认 Syntax OK 再 reload/restart。
- 域名与验证:确保 ServerName/ServerAlias 与申请域名一致;HTTP-01 验证需保证 /.well-known/acme-challenge/ 可被访问。
- 证书路径与权限:生产站点优先使用 /etc/letsencrypt/live/ 下的证书与私钥,避免手工拷贝导致权限或路径错误。
- 浏览器告警:自签名或链不完整会告警;部署正式证书并正确配置 SSLCertificateChainFile 可消除。
- 外部检测:使用 SSL Labs 检测配置强度与链完整性,及时修正不合规项。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Apache怎样进行SSL证书管理
本文地址: https://pptw.com/jishu/755230.html
