You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为本地网络IIS创建HTTPS证书遇浏览器不兼容问题求助

解决方法:在OpenSSL证书生成流程中添加SAN字段

现代浏览器强制要求HTTPS证书包含**Subject Alternative Name(SAN)**字段,即便CN(通用名称)匹配访问地址也无法绕过这个校验。以下是针对OpenSSL 3.2.0的具体修改步骤,适配IIS 10的证书需求:

1. 准备自定义OpenSSL配置文件(核心针对服务器证书)

创建一个名为server_san.cnf的配置文件,内容如下:

[req]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
prompt             = no

[req_distinguished_name]
C  = CN                    # 国家代码(如CN代表中国)
ST = YourProvince          # 替换为你的省份
L  = YourCity              # 替换为你的城市
O  = YourOrganization      # 替换为你的组织名称
OU = YourDepartment        # 替换为你的部门名称
CN = win-d77pp2emm6s       # 必须和访问地址的主机名完全一致

[req_ext]
basicConstraints     = CA:FALSE
keyUsage             = digitalSignature, keyEncipherment
extendedKeyUsage     = serverAuth
subjectAltName       = @alt_names

[alt_names]
DNS.1 = win-d77pp2emm6s    # 服务器主机名(必填,和访问地址一致)
DNS.2 = localhost          # 可选,支持localhost访问
IP.1  = 192.168.x.x        # 可选,支持服务器IP访问(替换为你的本地IP)

2. 修改批处理脚本中的服务器证书生成流程

假设你原有流程是「生成服务器私钥→生成CSR→中间CA签名」,现在修改为以下步骤:

2.1 生成服务器私钥

openssl genrsa -out server.key 2048

2.2 带SAN字段生成服务器CSR

openssl req -new -key server.key -out server.csr -config server_san.cnf

通过-config参数指定配置文件,自动读取SAN规则,无需手动输入任何信息。

2.3 用中间CA签名服务器证书(确保写入SAN扩展)

签名时必须显式指定扩展配置,否则证书不会包含SAN字段:

openssl x509 -req -in server.csr -CA intermediate.crt -CAkey intermediate.key -CAcreateserial -out server.crt -days 365 -extensions req_ext -extfile server_san.cnf

关键参数:-extensions req_ext和-extfile server_san.cnf,确保签名时将SAN等扩展写入最终证书。

3. 验证SAN字段是否成功添加

生成证书后,用以下命令检查:

openssl x509 -in server.crt -text -noout | findstr "Subject Alternative Name"

如果输出类似Subject Alternative Name: DNS:win-d77pp2emm6s, DNS:localhost, IP Address:192.168.x.x,说明SAN字段已正确写入。

4. 重新部署证书到IIS

  • 删除原有服务器证书,将新证书打包成PFX格式(方便IIS导入):
    openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile intermediate.crt -certfile root.crt
    
  • 在IIS管理器中导入PFX文件到服务器证书存储,重新绑定HTTPS站点并选择新证书。

5. 确认根CA证书已导入客户端信任存储

即便服务器端证书链显示正常,仍需确保根CA证书已安装到客户端浏览器的受信任根证书颁发机构目录,否则浏览器仍会提示证书不受信任。


内容的提问来源于stack exchange,提问作者Aidal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:27:29