Nginx配置多个SSL证书实现多域名HTTPS访问
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
本文介绍了如何在Nginx服务器上配置多个SSL证书,以实现多个域名的HTTPS访问,通过为每个域名配置独立的server块,并指定对应的SSL证书路径和私钥路径,Nginx可实现基于SNI的多域名HTTPS支持,保障不同站点的数据传输安全。
在当今互联网安全日益受到重视的背景下,HTTPS协议已经成为现代网站的标准配置,对于使用 Nginx 作为 Web 服务器的站点而言,支持多个域名并为每个域名配置独立的 SSL 证书,是实现 HTTPS 安全访问的常见需求。
本文将详细介绍如何在 Nginx 中配置多个 SSL 证书,以支持多个域名的安全访问,通过本文的指导,您可以在一台服务器上轻松实现多个网站的 HTTPS 支持。
准备工作
在开始配置之前,请确保以下条件已经满足:
- Nginx 已安装并包含 SSL 模块:可以通过执行命令
nginx -V
查看编译参数中是否包含--with-http_SSL_module
,这是启用 HTTPS 的前提。 - 已为各个域名获取 SSL 证书:可以是免费的 Let’s Encrypt 证书,也可以是付费的商业 CA 机构颁发的证书。
- 每个域名都有对应的证书和私钥文件:通常包括
.crt
或.pem
格式的证书文件,以及对应的.key
私钥文件。
Nginx 虚拟主机配置基础
Nginx 通过“虚拟主机”(即 server
块)来区分不同的网站域名,要为多个域名分别配置不同的 SSL 证书,只需为每个域名创建一个独立的 server
块,并在其中指定对应的 SSL 证书路径和相关参数即可。
这种方式不仅可以实现多个域名共享同一台服务器资源,还能确保每个站点拥有独立的安全配置,从而提升整体的安全性和灵活性。
配置示例
假设我们有两个域名:example.com
和 test.com
,并且各自拥有独立的 SSL 证书文件,以下是完整的 Nginx 配置示例:
server { listen 443 ssl; server_name example.com;ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /var/www/example.com; index index.html; }
server { listen 443 ssl; server_name test.com;
ssl_certificate /etc/nginx/ssl/test.com/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/test.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /var/www/test.com; index index.html; }
在上述配置中,两个
server
块分别监听 443 端口,并通过server_name
区分不同的域名,每个站点使用独立的证书和私钥文件,从而实现多域名多证书的安全访问。HTTP 强制跳转 HTTPS(可选)
为了提升网站的安全性,建议将所有 HTTP 请求自动跳转至 HTTPS,可以为每个域名添加如下配置:
server { listen 80; server_name example.com; return 301 https://$host$request_uri; }该配置通过返回 301 重定向状态码,将访问
example.com
的 HTTP 请求引导至 HTTPS 版本,从而确保用户始终使用加密连接访问网站。测试与重启 Nginx
完成配置后,请务必执行以下步骤以确保配置正确无误:
检查配置文件语法是否正确:
nginx -t若无语法错误,重启 Nginx 服务使配置生效:
systemctl restart nginx使用浏览器访问各域名,确认 HTTPS 证书是否正常加载。
通过合理配置 Nginx 的虚拟主机和 SSL 参数,可以轻松实现一台服务器同时支持多个域名、多个 SSL 证书的 HTTPS 访问需求,这种配置方式不仅节省了服务器资源,也便于统一管理多个站点的安全访问策略。
对于运维人员和开发者而言,掌握 Nginx 多域名 SSL 配置是一项非常实用且必要的技能,在实际生产环境中,灵活运用这些配置方法,可以有效提升系统的安全性与可维护性。
如需进一步扩展内容(如自动更新 Let’s Encrypt 证书、OCSP Stapling 配置、HTTP/2 启用等),我也可以继续为您补充。