启用Extended Protection后,wget访问IIS的mscep_admin认证失败如何解决?
解决wget访问启用Extended Protection的mscep_admin 401未授权问题
- 先查wget版本:运行
wget --version,如果是1.20之前的旧版本,大概率不支持Extended Protection要求的NTLMv2或绑定机制,直接升级到最新稳定版再说。 - 给wget加NTLM认证参数试试,原命令没指定认证类型,Extended Protection通常和NTLM绑定,修改后的命令:
其中wget -O - --no-check-certificate --http-user=xxxx --http-password=xxx --http-auth=ntlm --auth-no-challenge https://serverfqdn/certsrv/mscep_admin--http-auth=ntlm强制用NTLM认证,--auth-no-challenge让wget直接发送认证信息,避免服务器返回挑战时处理失败。 - 检查账号权限和SPN配置:
- 确保使用的域账号(xxxx)有权限访问mscep_admin,要在IIS身份验证里开启NTLM,且账号属于SCEP管理员组。
- 服务器的SPN得配置正确,Extended Protection依赖这个,运行
setspn -L <servername>查看是否有HTTP/serverfqdn和HTTP/的条目,缺失的话用 setspn -A HTTP/serverfqdn <servername>补上。
- 要是wget实在搞不定,换curl试试,curl对NTLM和Extended Protection的支持更靠谱:
curl -k -u xxxx:xxx --ntlm https://serverfqdn/certsrv/mscep_admin-k跳过证书检查,-u指定账号密码,--ntlm启用NTLM认证。 - 临时调整IIS的Extended Protection设置:把mscep_admin站点的Extended Protection改成
Accept而不是Require,如果改成Accept能认证成功,说明是wget对强制Extended Protection的兼容性问题,再慢慢排查客户端的适配方案。
内容的提问来源于stack exchange,提问作者AndrewB
相关产品推荐
相关产品推荐

