如何在centos lamp上安装SSL证书
导读:在 CentOS LAMP 上安装 SSL 证书的实用步骤 一 准备与前置检查 确保域名已正确解析到服务器公网 IP,且服务器防火墙与安全组已放行 TCP 443 端口,否则即使配置完成也无法启用 HTTPS。如使用云服务器,请在控制台...
在 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 - 配置示例(按实际路径与域名修改):
< VirtualHost *:443> 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 < Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted < /Directory> ErrorLog ${ APACHE_LOG_DIR} /ssl_error.log CustomLog ${ APACHE_LOG_DIR} /ssl_access.log combined < /VirtualHost>
- 确认模块加载:
- 如 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 端口虚拟主机或根配置中启用跳转(放在对应
< VirtualHost *: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(私钥)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在centos lamp上安装SSL证书
本文地址: https://pptw.com/jishu/763581.html
