一、生成自签名证书
方法1:通过PowerShell生成
powershell
复制
powershell
复制
# 生成包含SAN(Subject Alternative Name)的自签名证书
$certParams = @{
DnsName = "your-internal-domain.com" # 替换为内网域名或IP
CertStoreLocation = "Cert:\LocalMachine\My"
KeyExportPolicy = "Exportable"
KeySpec = "KeyExchange"
KeyLength = 2048
NotAfter = (Get-Date).AddYears(1)
HashAlgorithm = "SHA256"
FriendlyName = "IIS_Internal_HTTPS"
}
New-SelfSignedCertificate @certParams -NotAfter (Get-Date).AddYears(10) -KeyAlgorithm RSA -KeyUsage DigitalSignature, KeyEncipherment
注意:
- 如果需绑定IP地址,需在证书的
DnsName字段填写IP(部分客户端可能仍需SAN扩展支持)。 - 生成后可通过
certlm.msc查看证书。
方法2:通过IIS管理器生成
- 打开IIS管理器,进入 服务器证书 功能。
- 点击右侧 创建自签名证书,输入名称并选择存储位置(建议
个人)。 - 手动填写证书的“友好名称”和“主题备用名称”(SAN)。
二、在IIS中绑定HTTPS
-
创建网站
在IIS中新建网站,指定物理路径和绑定信息:- 类型:
https - IP地址:留空(监听所有IP)或选择特定IP
- 端口:
443 - 主机名:留空(若需多站点,需配置不同IP或使用SNI)
- SSL证书:选择刚创建的自签名证书。
- 类型:
-
验证绑定
访问https://localhost或https://内网IP,确认站点可访问(浏览器会提示证书不受信任)。
三、客户端信任证书
-
导出证书
从服务器导出证书(.cer格式):- 打开
certlm.msc,找到证书,右键导出为.cer文件。
- 打开
-
分发并安装证书
将.cer文件发送给客户端,按以下步骤操作:- Windows:双击证书 → 安装 → 选择“本地计算机” → 存入“受信任的根证书颁发机构”。
- 浏览器:部分浏览器需手动信任(如Chrome需导入到系统证书存储)。
四、防火墙配置
确保内网防火墙允许 443 端口(TCP)的入站流量。
五、验证与排错
-
访问测试
使用浏览器或curl访问https://内网IP,确认无协议错误。 -
常见错误处理
- 证书名称不匹配:确保证书的SAN或CN字段包含访问的域名/IP。
- 证书未信任:客户端需手动安装并信任证书。
- 端口冲突:检查其他服务是否占用443端口。
附注
- 生产环境建议:内网若有AD域,可通过企业CA颁发证书,自动信任。
- 高级配置:如需多域名支持,可在证书中添加多个SAN条目。
完成以上步骤后,内网用户即可通过HTTPS安全访问IIS站点。