CentOS Nginx SSL证书安装完整指南 (2026)

为什么需要安装SSL证书

SSL(Secure Sockets Layer)证书是网站安全的基础设施。安装SSL证书后,网站可以通过HTTPS协议访问,实现数据传输加密,保护用户隐私信息不被窃取。同时,主流浏览器会标记HTTPS网站为”安全”,有助于提升用户信任度和搜索引擎排名。

准备工作

在开始安装之前,请确保满足以下条件:

  • 已安装CentOS 7/8/Stream操作系统
  • 已安装Nginx并正常运行
  • 拥有服务器的root或sudo权限
  • 已购买或申请免费的SSL证书(如Let’s Encrypt)

方法一:使用Certbot自动安装Let’s Encrypt证书

Let’s Encrypt提供免费的SSL证书,有效期90天,可以通过Certbot工具自动续期。

安装Certbot

# CentOS 7
yum install -y epel-release
yum install -y certbot python3-certbot-nginx

# CentOS 8/Stream
dnf install -y epel-release
dnf install -y certbot python3-certbot-nginx

自动配置Nginx

certbot --nginx -d yourdomain.com -d www.yourdomain.com

Certbot会自动修改Nginx配置文件,添加SSL相关配置,并重启Nginx服务。

设置自动续期

# 测试自动续期
certbot renew --dry-run

# 添加定时任务(每天检查一次)
echo "0 3 * * * /usr/bin/certbot renew --quiet" >> /etc/crontab

方法二:手动安装商业SSL证书

如果您购买的是商业SSL证书(如DigiCert、GlobalSign等),需要手动配置。

上传证书文件

将证书文件上传到服务器,通常包含:

  • domain.crt(证书文件)
  • domain.key(私钥文件)
  • ca-bundle.crt(中间证书,可选)

建议存放在 /etc/nginx/ssl/ 目录:

mkdir -p /etc/nginx/ssl/
cp domain.crt domain.key /etc/nginx/ssl/

配置Nginx

编辑Nginx配置文件(通常在 /etc/nginx/conf.d//etc/nginx/sites-available/):

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;

    # 证书配置
    ssl_certificate /etc/nginx/ssl/domain.crt;
    ssl_certificate_key /etc/nginx/ssl/domain.key;

    # SSL安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 网站根目录
    root /var/www/html;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

# HTTP自动跳转HTTPS
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$server_name$request_uri;
}

测试并重启Nginx

# 测试配置文件语法
nginx -t

# 重启Nginx
systemctl restart nginx

常见问题排查

1. Nginx启动失败

检查端口占用:

netstat -tlnp | grep 443

检查证书文件路径是否正确。

2. 浏览器提示证书不受信任

确认中间证书(CA Bundle)是否已正确安装。商业证书需要将CA Bundle与域名证书合并:

cat domain.crt ca-bundle.crt > domain_full.crt

然后在Nginx配置中指向 domain_full.crt

3. SSL Labs测试评分较低

可以通过优化SSL配置提升安全性:

# 启用HSTS
add_header Strict-Transport-Security "max-age=31536000" always;

# 禁用弱加密算法
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';

然后在 SSL Labs测试工具 中检查评分。

总结

CentOS系统下Nginx的SSL证书安装主要有两种方式:使用Certbot自动安装Let’s Encrypt免费证书,或手动配置商业SSL证书。推荐生产环境使用自动续期的Let’s Encrypt证书,既安全又省心。安装完成后,记得检查HTTPS是否正常工作,并通过SSL测试工具验证配置的安全性。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注