一个VPS如何配置多个SSL证书?_完整教程帮你实现多域名HTTPS加密

一个VPS服务器如何配置多个SSL证书?

配置方式 适用场景 主要工具 复杂程度
虚拟主机配置 多个独立域名 Nginx/Apache 中等
SNI技术 多域名共享IP 现代Web服务器 简单
通配符证书 子域名管理 证书颁发机构 简单
多域名证书 有限域名数量 商业CA 中等

一个VPS服务器如何配置多个SSL证书?

在网站部署过程中,经常需要在单个VPS服务器上为多个域名配置SSL证书,实现全站HTTPS加密。以下是实现这一目标的详细方法和操作流程。

主要配置方法

方法 说明 适用场景
虚拟主机配置 为每个域名创建独立的配置文件 多个独立网站
SNI技术 服务器名称指示,允许在单个IP上托管多个证书 现代浏览器环境
通配符证书 使用*.example.com覆盖所有子域名 子域名较多的场景
多域名证书 单个证书包含多个域名 域名数量有限的情况

详细操作步骤

步骤一:准备工作环境

操作说明 首先确保VPS服务器已安装Web服务器软件,并准备好所有需要配置的域名证书文件。 使用工具提示
  • 操作系统:Ubuntu 20.04 LTS
  • Web服务器:Nginx
  • 证书类型:Let's Encrypt免费证书
代码块模拟工具界面
# 检查Nginx是否安装
nginx -v

创建证书存储目录

sudo mkdir -p /etc/ssl/private sudo mkdir -p /etc/ssl/certs

检查域名解析情况

nslookup example.com nslookup example2.com

步骤二:配置虚拟主机

操作说明 为每个域名创建独立的Nginx配置文件,指定对应的SSL证书路径。 使用工具提示
  • 编辑器:nano或vim
  • 配置文件路径:/etc/nginx/sites-available/
代码块模拟工具界面
# 第一个域名配置
server {
    listen 443 ssl;
    servername example.com www.example.com;
    
    sslcertificate /etc/ssl/certs/example.com.crt;
    sslcertificatekey /etc/ssl/private/example.com.key;
    
    root /var/www/example.com;
    index index.html;
}

第二个域名配置

server { listen 443 ssl; servername example2.com www.example2.com; sslcertificate /etc/ssl/certs/example2.com.crt; sslcertificatekey /etc/ssl/private/example2.com.key; root /var/www/example2.com; index index.html; }

步骤三:证书安装与配置

操作说明 将SSL证书文件上传到服务器指定目录,并设置正确的文件权限。 使用工具提示
  • 文件传输工具:scp或rsync
  • 权限设置:chmod命令
代码块模拟工具界面
# 上传证书文件到服务器
scp example.com.crt user@vpsip:/etc/ssl/certs/
scp example.com.key user@vpsip:/etc/ssl/private/

设置文件权限

sudo chmod 600 /etc/ssl/private/example.com.key sudo chmod 644 /etc/ssl/certs/example.com.crt

使用Certbot自动获取证书(Let's Encrypt)

sudo certbot --nginx -d example.com -d www.example.com sudo certbot --nginx -d example2.com -d www.example2.com

步骤四:配置测试与验证

操作说明 测试Nginx配置语法是否正确,然后重新加载配置使更改生效。 使用工具提示
  • 配置测试:nginx -t
  • 服务重启:systemctl reload nginx
代码块模拟工具界面
# 测试配置文件语法
sudo nginx -t

启用站点配置

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/

重新加载Nginx配置

sudo systemctl reload nginx

验证SSL证书配置

openssl sclient -connect example.com:443 -servername example.com

常见问题与解决方案

问题 原因 解决方案
SSL证书不匹配错误 证书域名与访问域名不一致 检查servername配置,确保证书包含所有访问域名
浏览器显示证书警告 证书链不完整或中间证书缺失 重新生成包含完整证书链的文件,或联系CA获取完整证书包
配置重启失败 配置文件语法错误 使用nginx -t检查语法,逐行排查配置错误
部分浏览器无法访问 老旧浏览器不支持SNI技术 考虑使用独立IP或引导用户升级浏览器
证书续期失败 多个证书同时续期导致限制 错开证书续期时间,或使用通配符证书减少续期次数

通过以上步骤,您可以在单个VPS服务器上成功配置多个SSL证书,为所有域名提供安全的HTTPS加密服务。每个域名都将拥有独立的证书配置,确保网站访问的安全性和专业性。

发表评论

评论列表