Nginx 配置多个SSL证书,nginx如何配置ssl证书

Time:2025年01月07日 Read:9 评论:42 作者:y21dr45

在当今互联网环境中,HTTPS已经成为确保网站安全和数据隐私的重要标准,对于拥有多个域名或子域名的网站管理员来说,配置多张SSL证书是一项常见需求,Nginx作为一款高性能的Web服务器和反向代理服务器,支持通过其灵活的配置系统实现多域名的HTTPS服务,本文将详细介绍如何在Nginx中配置多个SSL证书。

Nginx 配置多个SSL证书,nginx如何配置ssl证书

获取SSL证书

你需要为每个需要配置HTTPS的域名获取SSL证书,这些证书可以从各大证书颁发机构(CA)购买,如DigiCert、Symantec等,也可以选择免费的Let’s Encrypt证书,以下是使用Let’s Encrypt获取免费证书的基本命令:

sudo apt-get update
sudo apt-get install certbot
sudo certbot certonly --standalone -d www.example.com

命令会为www.example.com域名生成免费证书。

安装和验证证书

在获取到证书后,你需要将其安装到Nginx服务器上,证书文件和私钥文件会存储在如下目录中:

/etc/letsencrypt/live/www.example.com/fullchain.pem
/etc/letsencrypt/live/www.example.com/privkey.pem

确保这些路径与实际存储路径一致。

配置Nginx

编辑Nginx的配置文件以启用HTTPS,假设你已经有了一个默认的Nginx配置文件/etc/nginx/sites-available/default,你可以根据以下模板添加新的server块:

server {
    listen 80;
    server_name www.example.com;
    return 301 https://$host$request_uri; # 强制跳转到HTTPS
}
server {
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3; # 启用TLS协议版本控制
    ssl_ciphers HIGH:!aNULL:!MD5; # 设置加密套件
    ssl_prefer_server_ciphers on; # 优先使用服务器端加密套件
    location / {
        proxy_pass http://localhost:8080; # 根据需要修改
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

如果你有多个域名,例如live.example.comvod.example.com,可以继续添加更多的server块:

server {
    listen 443 ssl;
    server_name live.example.com;
    ssl_certificate /etc/letsencrypt/live/live.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/live.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://localhost:8081; # 根据需要修改
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
server {
    listen 443 ssl;
    server_name vod.example.com;
    ssl_certificate /etc/letsencrypt/live/vod.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vod.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://localhost:8082; # 根据需要修改
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

测试和重启Nginx

完成上述配置后,保存文件并通过以下命令测试Nginx配置是否正确:

sudo nginx -t

如果输出显示“configuration file /etc/nginx/nginx.conf test is successful”,则表示配置正确,重启Nginx使配置生效:

sudo systemctl restart nginx

通过上述步骤,你已经成功地在Nginx中配置了多个SSL证书,使得不同域名的HTTP请求可以通过HTTPS进行安全的数据传输,这不仅提升了网站的安全性,还增加了用户对网站的信任度,在实际部署过程中,请确保定期更新和维护证书,避免过期导致的安全问题。

排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1