CentOS 7系统下SSL证书安装完整指南保障网站安全与用户信任
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
本文首发于 56DR 技术社区
原创作者:技术守护者 · 版权所有,转载请注明出处
🔐 为什么你的网站必须部署 SSL 证书?
在当今高度互联且攻击频发的网络环境中,数据安全已不再是“可选项”,而是“必选项”,无论是企业官网、电商平台,还是个人博客,只要涉及用户交互或数据传输,都应强制启用 HTTPS 加密通信。
部署 SSL/TLS 证书(注:SSL 是旧称,现主流协议为 TLS,但业界仍习惯统称 SSL)不仅能:
✅ 加密通信内容 —— 防止中间人攻击、窃听与数据篡改;
✅ 提升 SEO 排名 —— Google、百度等搜索引擎优先收录 HTTPS 站点;
✅ 增强用户信任感 —— 浏览器地址栏显示“安全锁”标志,降低跳出率;
✅ 满足合规要求 —— GDPR、PCI-DSS、等保2.0 等法规均强制要求数据加密;
✅ 支持现代 Web 功能 —— 如 Service Worker、PWA、HTTP/2 等均依赖 HTTPS。
本文将从零开始,带你在 CentOS 7 系统上完整部署 SSL 证书,涵盖环境准备、证书申请、Apache/Nginx 配置、防火墙设置、验证测试及自动化续期全流程,适合新手入门,也供运维人员查漏补缺。
🧰 第一步:环境检查与证书获取
✅ 前提条件确认
请确保您的 CentOS 7 服务器满足以下基础要求:
- 已安装 Web 服务:如 Apache (
httpd) 或 Nginx; - 域名已备案并正确解析:A 记录指向服务器公网 IP;
- 拥有有效的 SSL 证书文件,通常包含:
your_domain.crt—— 主证书文件your_private.key—— 私钥文件(⚠️ 绝对保密!)ca_bundle.crt—— 中间证书链(部分 CA 提供合并文件)
💡 证书获取建议:
- 免费方案:推荐 Let’s Encrypt +
Certbot自动签发,90天有效期,支持自动续期。- 商业证书:适用于企业级场景,如 DigiCert、GeoTrust、阿里云SSL、腾讯云SSL,提供更长有效期与保险赔付。
- 申请时需生成 CSR(Certificate Signing Request),CA 审核后下发证书包。
📁 第二步:上传并安全存放证书文件
使用 scp、sftp 或终端直接粘贴,将证书文件上传至服务器。推荐统一存放在 /etc/ssl/certs/ 下的子目录中,便于管理与隔离。
sudo mkdir -p /etc/ssl/certs/mydomain sudo cp your_domain.crt /etc/ssl/certs/mydomain/ sudo cp your_private.key /etc/ssl/certs/mydomain/ sudo cp ca_bundle.crt /etc/ssl/certs/mydomain/ # 若存在中间证书
🔒 关键安全设置:私钥文件权限必须严格限制!
sudo chmod 600 /etc/ssl/certs/mydomain/your_private.key sudo chown root:root /etc/ssl/certs/mydomain/your_private.key
⚠️ 切勿将私钥暴露给非 root 用户或上传至 Git 仓库!
🌐 第三步:配置 Apache 启用 HTTPS
① 安装并启用 SSL 模块
sudo yum install mod_ssl -y sudo systemctl restart httpd
② 编辑虚拟主机配置文件
通常位于 /etc/httpd/conf.d/ssl.conf 或自定义站点如 /etc/httpd/conf.d/yourdomain-ssl.conf
<VirtualHost *:443>
ServerName www.yourdomain.com
ServerAlias yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/mydomain/your_domain.crt
SSLCertificateKeyFile /etc/ssl/certs/mydomain/your_private.key
SSLCertificateChainFile /etc/ssl/certs/mydomain/ca_bundle.crt
# 安全增强配置(推荐添加)
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder on
SSLCompression off
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/yourdomain-ssl-error.log
CustomLog /var/log/httpd/yourdomain-ssl-access.log combined
</VirtualHost>
③ 语法检查 & 重启服务
sudo apachectl configtest sudo systemctl restart httpd
🌀 第四步:配置 Nginx 启用 HTTPS
① 编辑站点配置文件
如:/etc/nginx/conf.d/yourdomain.conf
server {
listen 443 ssl http2;
server_name www.yourdomain.com yourdomain.com;
ssl_certificate /etc/ssl/certs/mydomain/your_domain.crt;
ssl_certificate_key /etc/ssl/certs/mydomain/your_private.key;
ssl_trusted_certificate /etc/ssl/certs/mydomain/ca_bundle.crt;
# 安全协议与加密套件(推荐配置)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/yourdomain-ssl-access.log;
error_log /var/log/nginx/yourdomain-ssl-error.log;
}
② 检查配置 & 重载服务
sudo nginx -t sudo systemctl reload nginx
🔄 第五步(强烈推荐):强制 HTTP 跳转 HTTPS
▶ Apache 配置(监听 80 端口)
<VirtualHost *:80>
ServerName www.yourdomain.com
ServerAlias yourdomain.com
Redirect permanent / https://www.yourdomain.com/
</VirtualHost>
▶ Nginx 配置
server {
listen 80;
server_name www.yourdomain.com yourdomain.com;
return 301 https://$host$request_uri;
}
✅ 此举能统一访问入口,避免搜索引擎收录重复页面,同时提升整体安全性。
🔥 第六步:防火墙与 SELinux 设置
① 开放 HTTPS 端口(443)
sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
② 处理 SELinux 权限问题(如遇访问拒绝)
# 允许 Apache/Nginx 访问网络与证书目录 sudo setsebool -P httpd_can_network_connect 1 sudo restorecon -Rv /etc/ssl/certs/ # 若仍报错,可临时设为 Permissive 模式调试(生产环境慎用) # sudo setenforce 0
✅ 第七步:验证 SSL 部署效果
浏览器访问
打开 https://yourdomain.com,确认:
- 地址栏出现🔒“安全”标识;
- 无证书警告或混合内容提示;
- 页面正常加载。
专业工具检测
推荐使用:
🔹 SSL Labs 测试 —— 全球最权威的 SSL 配置评分工具
🔹 [MySSL](https://myssl.com


