准备环境与证书
在开始配置前需确保满足以下条件:安装支持SSL的Web服务器(Nginx/Apache)、拥有多个域名的有效SSL证书(包含.crt和.key文件)、服务器已开放443端口。建议将证书文件统一存放在/etc/ssl/
目录下并按域名分类存储。
推荐使用Let’s Encrypt免费证书,可通过Certbot工具批量申请与管理。需提前验证所有域名已正确解析至服务器IP地址,避免证书验证失败。
Nginx服务器配置
在/etc/nginx/conf.d/
目录中为每个域名创建独立配置文件,典型配置示例如下:
server {
listen 443 ssl;
server_name domain1.com;
ssl_certificate /etc/ssl/domain1/fullchain.pem;
ssl_certificate_key /etc/ssl/domain1/privkey.key;
每个server
块需指定不同的证书路径和域名,配置完成后执行nginx -t
验证语法,再重载服务生效。
Apache服务器配置
通过虚拟主机实现多证书配置,需确保已加载SSL模块。在httpd-ssl.conf
中添加:
ServerName domain2.com
SSLEngine on
SSLCertificateFile /etc/ssl/domain2/cert.crt
SSLCertificateKeyFile /etc/ssl/domain2/cert.key
建议将不同域名的配置拆分为单独文件存放于conf.d/
目录,使用apachectl configtest
检查配置后重启服务。
SNI技术实现原理
现代Web服务器通过SNI(Server Name Indication)扩展协议,在TLS握手阶段识别请求域名并返回对应证书。该技术支持:
- 单IP托管多个HTTPS站点
- 自动匹配证书无需额外端口
- 兼容主流浏览器和操作系统
需注意Windows XP等老旧系统不支持SNI,建议为兼容性要求高的场景保留独立IP配置。
通过虚拟主机配置结合SNI技术,可在单台VPS上高效管理多个SSL证书。建议使用自动化工具管理证书续期,定期检查HTTPS配置有效性,并关注加密套件等安全设置。