ssl新闻资讯

文档中心

IIS7閰嶇疆澶氫釜SSL璇佷功鍏ㄦ敾鐣ュ疄鎴樻楠や笌甯歌闂瑙f瀽

时间 : 2025-09-27 16:18:51浏览量 : 2

为什么需要配置多个SSL证书?

2IIS7閰嶇疆澶氫釜SSL璇佷功鍏ㄦ敾鐣ュ疄鎴樻楠や笌甯歌闂瑙f瀽

在互联网安全日益重要的今天,SSL证书已经成为网站标配。但对于运维人员来说,经常会遇到一个服务器需要托管多个HTTPS网站的情况。比如:

1. 企业官网+电商平台:公司主站www.company.com和商城shop.company.com需要不同的证书

2. 多品牌运营:同一服务器托管brand1.com和brand2.com两个独立品牌的网站

3. 测试环境:dev.site.com和test.site.com需要独立的测试证书

传统方法是为每个域名单独配置一台服务器,这显然成本高昂且管理不便。IIS7提供的SNI(Server Name Indication)技术完美解决了这个问题,允许在同一IP地址上绑定多个SSL证书。

SNI技术原理简介

SNI就像是一个聪明的邮递员系统。想象一下:

- 没有SNI时:所有寄到同一地址的信件(HTTPS请求)都会被拆开查看内容后才能知道该交给谁(哪个证书),这在技术上是不可能的,因为需要先验证证书才能解密内容。

- 有SNI后:信封外面就标注了"收件人姓名"(请求的域名),邮递员(服务器)不用拆信就能知道该用哪个证书处理这个请求。

这种技术扩展了TLS协议,在握手初期就传递了目标域名信息,使得服务器能够选择正确的证书进行响应。

IIS7配置多SSL证书详细步骤

准备工作

1. 获取证书文件

- 从CA机构购买或申请免费证书(如Let's Encrypt)

- 确保每个域名都有对应的.pfx文件(包含私钥)或.crt+.key组合

- 示例文件:

- www_site1_com.pfx

- shop_site2_com.pfx

2. 检查IIS版本

- 打开IIS管理器 → 点击服务器名称 → 右侧"关于Internet Information Services"

- 确认版本至少是7.0(Windows Server 2008)

具体配置流程

第一步:安装第一个证书

1. 导入证书到服务器存储

```powershell

PowerShell管理员身份运行

Import-PfxCertificate -FilePath "C:\certs\www_site1_com.pfx" -CertStoreLocation Cert:\LocalMachine\My -Password (ConvertTo-SecureString -String "your_password" -Force -AsPlainText)

```

2. IIS管理器绑定

- 右键网站 → "编辑绑定"

- 添加HTTPS绑定 → IP地址选择"全部未分配",端口443

- SSL证书下拉菜单中选择刚导入的www_site1_com证书

- *不要勾选*"需要服务器名称指示"

第二步:安装第二个及更多证书

1. 导入额外证书

重复上述Import-PfxCertificate命令,更换为其他域名的pfx文件

2. 关键SNI配置

- 添加新HTTPS绑定时:

- IP相同(全部未分配)

- 端口相同(443)

- *必须勾选*"需要服务器名称指示"

- SSL证书选择对应域名的证书

3. 验证绑定结果

最终绑定列表应类似:

类型 | IP地址 | 端口 | 主机名 | SSL证书

HTTPS | * | 443 | www.site1.com | www_site1_com

HTTPS | * | 443 | shop.site2.com | shop_site2_com (SNI启用)

CLI爱好者可选方法

对于习惯命令行的管理员,可使用appcmd.exe完成配置:

```batch

:: 添加第一个非SNI绑定

%windir%\system32\inetsrv\appcmd.exe set site /site.name:"Site1" /+bindings.[protocol='https',bindingInformation='*:443:',sslFlags='0']

:: 添加SNI绑定

%windir%\system32\inetsrv\appcmd.exe set site /site.name:"Site2" /+bindings.[protocol='https',bindingInformation='*:443:shop.site2.com',sslFlags='1']

```

Windows Server不同版本的注意事项

| Windows Server版本 | SNI支持情况 | TLS协议限制 |

|-|||

| 2008 R2 (IIS7.5) | √ | TLS1.0/1.1默认 |

| 2012 (IIS8) | √ | TLS1.0/1.1默认 |

| 2025及以上 | √ | TLS1.2默认 |

如果需要支持老旧客户端(如Android4.x),需额外启用TLS1.0/1.1:

```powershell

Enable TLS protocols

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Name Enabled -Value 1

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Name Enabled -Value 1

SSL Labs检测常见问题排查

A级评分必备设置

即使正确配置了多证书,还需优化以下参数:

Disable weak ciphers

$insecureCiphers = @(

"DES-CBC3-SHA",

"RC4-MD5",

"RC4-SHA"

)

foreach ($cipher in $insecureCiphers) {

Disable-TlsCipherSuite $cipher

}

Enable modern ciphers

Enable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Enable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

SNI兼容性问题分析工具

使用OpenSSL测试不同客户端的识别情况:

```bash

Linux/Mac测试命令示例(替换为你的IP)

openssl s_client connect your_server_ip:443 servername shop.site2.com

Windows Git Bash可用同样命令检测是否返回正确证书记录

IIS高级应用场景扩展

CDN背后的多证书记录处理

当使用Cloudflare等CDN服务时:

客户端 ←HTTPS→ CDN边缘节点 ←专用通道→ IIS源站(可自签名)

此时源站只需配置CDN提供商指定的专用证书即可。

Let's Encrypt自动化续期策略

使用Certbot自动管理多个域名:

certbot certonly --webroot ^

-w C:\inetpub\temp\.well-known acme-challenge ^

-d www.site.com ^

-d shop.site.com ^

--config-dir C:\le-certs ^

--agree-tos --email admin@site.com

certbot certonly --webroot ^

-w C:\inetpub\temp\.well-known acme-challenge ^

-d api.site.net ^

--config-dir C:\le-certs ^

--agree-tos --email admin@site.net

然后通过任务计划程序每月自动运行续期脚本。

FAQ快速排错指南

Q:访问时报ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误?

A:按顺序检查:

① IIS加密套件设置 → PowerShell执行Get-TlsCipherSuite查看启用列表

② Schannel注册表项 → HKLM SYSTEM CurrentControlSet Control SecurityProviders SCHANNEL

③ CDN/防火墙是否过滤了TLS握手

Q:Chrome正常但手机浏览器提示不安全?

A:99%是因为缺少中间CA链 →

① OpenSSL检查完整链 `openssl s_client showcerts connect yourdomain:443`

② IIS中重新导出包含中间CA的pfx

Q:如何验证SNI确实生效?

A:双管齐下验证法 →

① SSLLabs测试报告查看Certificate

X部分

② Wireshark抓包过滤TLS握手包查看Server Name扩展字段

TAG:iis7 配置多个ssl证书,iis设置ssl证书,iis部署ssl证书,iis配置https证书,iis配置多个网站,iis证书配置文件