阅读量:2
在 CentOS LAMP 上安装 SSL 证书的实用步骤
一 准备与前置检查
- 确保域名已正确解析到服务器公网 IP,且服务器防火墙与安全组已放行 TCP 443 端口,否则即使配置完成也无法启用 HTTPS。如使用云服务器,请在控制台安全组规则中放行 443。
- 确认 Apache 已安装并可启动,且加载 mod_ssl 模块(执行:
httpd -M | grep ssl_module,如未安装:sudo yum install -y mod_ssl)。 - 准备好证书文件:通常包含服务器证书(如 server.crt / domain.crt)、私钥(server.key / domain.key)和证书链/中间证书(如 ca.crt / chain.crt / root_bundle.crt)。如使用云厂商下载,请选择 Apache 格式压缩包。
二 方式一 使用 Let’s Encrypt 自动获取并部署(推荐)
- 安装 Certbot 与 Apache 插件(CentOS 7/8 常见命令):
- CentOS 7:
sudo yum install -y certbot python2-certbot-apache - CentOS 8+:
sudo dnf install -y certbot python3-certbot-apache
- CentOS 7:
- 获取并自动配置证书(将域名替换为你的实际域名):
- 交互式:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com - 如站点暂不支持自动修改配置,可先仅获取证书:
sudo certbot certonly --apache -d yourdomain.com
- 交互式:
- 证书默认路径为:/etc/letsencrypt/live/yourdomain.com/,常用文件:
- 证书链:fullchain.pem
- 私钥:privkey.pem
- 设置自动续期(证书有效期 90 天):
- 测试续期:
sudo certbot renew --dry-run - 生产环境建议添加定时任务(例如每日检查):
echo "0 0,12 * * * root certbot renew --quiet && systemctl reload httpd" | sudo tee -a /etc/crontab
- 测试续期:
- 完成后用浏览器访问 https://yourdomain.com 验证锁标识。
三 方式二 手动安装已有证书(适用于云厂商或自签 CA)
- 上传证书到服务器安全目录(示例:/etc/ssl/cert/),目录权限建议 600/644(私钥仅 root 可读):
- 常见文件名:server.crt / domain.crt、server.key / domain.key、ca.crt / chain.crt / root_bundle.crt
- 启用 SSL 模块并编辑 /etc/httpd/conf.d/ssl.conf(或同级配置):
- 确认模块加载:
LoadModule ssl_module modules/mod_ssl.so - 配置示例(按实际路径与域名修改):
ServerName yourdomain.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/ssl/cert/server.crt SSLCertificateKeyFile /etc/ssl/cert/server.key SSLCertificateChainFile /etc/ssl/cert/ca.crt Options Indexes FollowSymLinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/ssl_error.log CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
- 确认模块加载:
- 如 Apache 版本 ≥ 2.4.8,也可采用合并证书方式(减少文件数量):
- 合并命令:
cat domain_public.crt domain_chain.crt > domain_fullchain.pem - 配置:
SSLCertificateFile /etc/ssl/cert/domain_fullchain.pem与SSLCertificateKeyFile /etc/ssl/cert/domain.key
- 合并命令:
- 保存后重启 httpd:
sudo systemctl restart httpd。
四 HTTP 强制跳转 HTTPS
- 基于 mod_rewrite 在 80 端口虚拟主机或根配置中启用跳转(放在对应
内):RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [L,R=301] - 若使用 Certbot 安装,通常会自动写入跳转规则;如手动管理,请确保启用 mod_rewrite 模块并正确放置规则。
五 验证与常见问题
- 访问测试:打开 https://yourdomain.com,确认地址栏显示锁标识;可用 SSL Labs 等工具做配置评分与链路检查。
- 证书续期:Let’s Encrypt 证书 90 天 有效,务必配置自动续期并定期测试(如
certbot renew --dry-run)。 - 常见故障排查:
- 无法访问 443:检查云安全组/系统防火墙、云厂商控制台安全策略是否放行 443。
- 浏览器提示证书不受信任:确认证书链(中间证书)配置正确,使用 fullchain 或将链文件正确引入。
- 私钥不匹配或权限错误:确保 server.key 与证书匹配,文件权限为 600(私钥)。
以上就是关于“如何在centos lamp上安装SSL证书”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm