如何在 Nginx 中配置多个 SSL 证书并进行部署
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
Nginx 是一个高性能的 HTTP 和反向代理服务器,支持多种协议和安全特性。在部署 Nginx 时,特别是在需要处理多个 SSL 证书的情况下,可以通过以下步骤来实现:,,1. **安装 Nginx**:确保你的系统上已经安装了 Nginx。,,2. **创建 SSL 配置文件**:为每个 SSL 证书创建相应的配置文件。server1.conf
、server2.conf
等。,,3. **修改主配置文件**:编辑主配置文件nginx.conf
,添加include
指令以包含所有 SSL 配置文件。, ``nginx, include /etc/nginx/conf.d/*.conf;,
`,,4. **设置监听端口**:在每个 SSL 配置文件中,指定不同的监听端口(如 443 和 80)。,,5. **配置 SSL 证书**:在每个 SSL 配置文件中,指定 SSL 证书和密钥文件路径。,
`nginx, server {, listen 443 ssl;, server_name example.com;,, ssl_certificate /path/to/cert.pem;, ssl_certificate_key /path/to/key.pem;,, # 其他配置..., },
`,,6. **测试配置文件**:使用
nginx -t命令测试配置文件是否正确无误。,,7. **重新加载 Nginx**:如果配置文件没有问题,使用
nginx -s reload` 命令重新加载 Nginx 以应用更改。,,通过以上步骤,你可以轻松地在 Nginx 中配置和部署多个 SSL 证书。这使得你可以在不同的域名或子域名之间提供不同的服务,并且可以方便地进行扩展和维护。
前言
在现代互联网中,SSL/TLS 是确保数据传输安全的重要手段,随着业务的发展和对隐私保护的要求增加,使用多个 SSL 证书成为了一种常见的做法,本文将详细介绍如何在 Nginx 中配置和部署多个 SSL 证书。
一、安装 Nginx
确保你的服务器上已经安装了 Nginx,如果没有安装,可以通过以下命令进行安装:
sudo apt-get update sudo apt-get install nginx
二、生成 SSL 证书
为了生成 SSL 证书,可以使用 Let's Encrypt 这样的免费服务,或者自己购买证书,这里我们选择使用 Let's Encrypt。
1、安装 Certbot:
sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx
2、获取并安装证书:
sudo certbot --nginx -d example.com -d www.example.com
这将会自动提示你选择一个证书颁发机构(CA),然后按照提示完成证书的获取和安装。
三、配置 Nginx 使用多个 SSL 证书
假设你有两个域名example.com
和www.example.com
,并且它们分别对应不同的 SSL 证书。
1、编辑 Nginx 配置文件:
打开 Nginx 的默认配置文件:
sudo nano /etc/nginx/sites-available/default
2、添加多个 server 块:
在文件中添加两个 server 块,每个块对应一个域名。
server { listen 80; server_name example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; location / { proxy_pass http://backend_server; 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 80; server_name www.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; 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; location / { proxy_pass http://backend_server; 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; } }
3、测试配置:
保存并退出编辑器后,测试 Nginx 配置是否正确:
sudo nginx -t
4、重新加载 Nginx:
如果配置正确,重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
5、验证证书:
使用浏览器访问https://example.com
和https://www.example.com
,确认证书已正确安装和生效。
四、注意事项
- 确保所有证书都与相应的域名匹配。
- 如果需要,可以在server
块中添加其他配置选项,如location
块中的try_files
、proxy_pass
等。
- 每个域名应该有对应的私钥文件,通常位于/etc/letsencrypt/live/domain.com/privkey.pem
。
通过以上步骤,你就可以成功在 Nginx 中配置和部署多个 SSL 证书了,这不仅提高了网站的安全性,也为你的用户提供了更好的浏览体验。