资讯动态

Windows IIS 配置本地HTTPS 全流程指南:自签名证书 + 端口绑定 + 避坑详解

发布时间:2026/9/29 3:30:48 来源:尧图企业网站定制
在本地开发或内网服务部署中经常需要为 IIS 站点配置 HTTPS。虽然网上教程众多但实际操作时往往会遇到PowerShell 绑定报错、浏览器拒绝访问、openssl 命令找不到等连环坑。本文基于 Windows Server / Windows 10/11 环境梳理了一套经过验证的完整流程包含证书生成、IIS 绑定、防火墙放行及常见问题排查建议收藏备用。一、 前置准备安装 OpenSSLIIS 本身不支持直接生成 PFX 证书我们需要借助 OpenSSL。推荐安装方式Winget打开管理员 PowerShellwinget install ShiningLight.OpenSSL.Light⚠️关键提醒安装完成后必须完全关闭并重新打开PowerShell 窗口否则openssl命令无法识别。若重开后仍报错需手动将C:\Program Files\OpenSSL-Win64\bin添加到系统环境变量 PATH 中。验证安装openssl version# 预期输出OpenSSL 3.x.x 或 4.x.x二、 生成自签名证书PFX1. 创建证书目录New-Item-PathC:\Certs-ItemType Directory-Force cd C:\Certs2. 生成私钥与证书# 生成私钥openssl genrsa-out lan.key 2048# 生成证书请求按需修改 CN 和 IPopenssl req-new-key lan.key-out lan.csr-subj/CNLAN HTTPS Cert# 签发证书有效期 3650 天openssl x509-req-days 3650-inlan.csr-signkey lan.key-out lan.crt3. 转换为 IIS 可用的 PFX 格式openssl pkcs12-export-out lan.pfx-inkey lan.key-inlan.crt-passout pass:YourPassword123 请将YourPassword123替换为你自己的强密码后续导入时需要用到。三、 导入证书到 Windows 证书存储使用 PowerShell 一键导入避免 GUI 操作的路径歧义Import-PfxCertificate-FilePathC:\Certs\lan.pfx-CertStoreLocation Cert:\LocalMachine\My -Password(ConvertTo-SecureString-StringYourPassword123-AsPlainText-Force)-Exportable -FriendlyNameLAN HTTPS Cert如果导入过程中遇到如下错误PSC:\CertsImport-PfxCertificate-FilePathC:\Certs\lan.pfx -CertStoreLocation Cert:\LocalMachine\My -Password(ConvertTo-SecureString-StringYourPassword123-AsPlainText-Force) -Exportable -FriendlyNameLAN HTTPS CertImport-PfxCertificate: 找不到与参数名称“FriendlyName”匹配的参数。 所在位置 行:5 字符: 5-FriendlyNameLAN HTTPS Cert~~~~~~~~~~~~~CategoryInfo : InvalidArgument:(:)[Import-PfxCertificate]ParameterBindingExceptionFullyQualifiedErrorId : NamedParameterNotFound,Microsoft.CertificateServices.Commands.ImportPfxCertificate这个错误是因为 Import-PfxCertificate 命令在较旧版本的 PowerShellWindows PowerShell 5.1中不支持 -FriendlyName 参数。该参数是在 PowerShell 7 或更新版本的 PKI 模块中才引入的。解决方案先导入再单独设置 FriendlyName推荐兼容所有版本# 1. 先导入证书不带 FriendlyName$certImport-PfxCertificate-FilePathC:\Certs\lan.pfx-CertStoreLocation Cert:\LocalMachine\My -Password(ConvertTo-SecureString-StringYourPassword123-AsPlainText-Force)-Exportable# 2. 单独设置 FriendlyName$cert.FriendlyName LAN HTTPS Cert验证导入成功Get-ChildItemCert:\LocalMachine\My|Where-Object{$_.FriendlyName-eqLAN HTTPS Cert}确认返回结果中包含正确的 Thumbprint指纹。四、 IIS 绑定 HTTPS核心避坑步骤❌ 常见错误写法很多教程推荐使用New-ItemProperty -Name bindings -Value {...}该命令在较新版本的 IIS/PowerShell 中会抛出System.ArgumentException。请勿使用此方法✅ 正确绑定流程1. 获取证书指纹$thumbprint(Get-ChildItemCert:\LocalMachine\My|Where-Object{$_.FriendlyName-eqLAN HTTPS Cert}).Thumbprint# 安全检查防止变量为空导致后续静默失败if([string]::IsNullOrEmpty($thumbprint)){Write-Host❌ 未找到证书请检查 FriendlyName-ForegroundColor Redexit}Write-Host✅ 证书指纹:$thumbprint-ForegroundColor Green2. 创建 HTTPS 绑定# 假设站点名为 3D端口 3000New-WebBinding-Name3D-Protocol https-Port 3000-IPAddress*-SslFlags 03. 关联证书二选一方法 ASet-WebBinding推荐Set-WebBinding-Name3D-Protocol https-Port 3000-IPAddress*-Thumbprint$thumbprint-SslFlags 0方法 Bnetsh最可靠绕过 PS 模块 Bugnetsh http add sslcert ipport0.0.0.0:3000 certhash$thumbprint appid{00000000-0000-0000-0000-000000000000}certstorenameMY五、 防火墙放行解决“拒绝访问”IIS 绑定成功 ≠ 外部可访问。“拒绝访问”99% 是防火墙拦截导致的。New-NetFirewallRule-DisplayNameIIS HTTPS 3000-Direction Inbound-Protocol TCP-LocalPort 3000 -Action Allow-Profile Any⚠️ 如果是云服务器阿里云/AWS/Azure还需在云控制台的安全组中放行 TCP 3000 端口。Windows 防火墙与云安全组是两层独立过滤缺一不可。六、 验证与排错清单访问测试测试地址预期结果异常分析https://localhost:3000浏览器提示证书不安全点击继续后可访问正常现象自签名证书https://192.168.x.x:3000同上若“拒绝访问”→ 检查防火墙/安全组http://192.168.x.x:3000403 或无响应正常未配置 HTTP 绑定快速诊断命令# 1. 检查站点状态Get-Website-Name3D|Select-ObjectName,State# 2. 检查端口监听netstat-ano|findstr:3000# 3. 检查 SSL 绑定netsh http show sslcert ipport0.0.0.0:3000# 4. 检查防火墙规则Get-NetFirewallRule-DisplayNameIIS HTTPS 3000|Select-ObjectEnabled,Action七、 FAQQ1浏览器显示“您的连接不是私密连接”这是自签名证书的正常表现。生产环境请使用 Let’s Encrypt 或商业 CA 签发的可信证书。本地测试点击“高级 → 继续访问”即可。Q2修改了证书后IIS 仍然使用旧证书IIS 会缓存 SSL 绑定。执行以下命令刷新iisreset/noforce# 或删除旧绑定后重新添加netsh http delete sslcert ipport0.0.0.0:3000Q3Light 版 OpenSSL 够用吗完全够用。Light 版仅包含命令行工具和基础 DLL体积仅几 MB。Full 版包含 C/C 开发头文件除非你要编译依赖 OpenSSL 的程序否则无需安装。如果本文解决了你的 IIS HTTPS 配置问题欢迎点赞收藏遇到其他报错请在评论区留言交流。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑