gpt4 book ai didi

iis - 升级到 Windows 11 后不再提示本地主机的 CAC

转载 作者:行者123 更新时间:2023-12-05 05:47:05 24 4
gpt4 key购买 nike

升级到 Windows 11 后,本地 ASP.Net 应用程序不再提示我输入 CAC,因此我无法通过 https 访问该站点。我可以通过 http 访问它。我环顾四周,我的绑定(bind)被设置为一个友好名称为“IIS Express Development Certificate”的证书,但是当我在我的证书存储区或我相信它颁发的“localhost”中查找它时,它没有出现。所以我继续通过 powershell 创建了一个新的自签名证书:

New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "localhost" -FriendlyName "IIS Dev Express Take 2" -NotAfter (Get-Date).AddYears(10)

我将其复制到我的证书存储中我信任的根证书颁发机构和中间机构文件夹中,并在我的绑定(bind)中选择了这个新证书,但仍然有同样的问题。在这一点上,我不确定我还能尝试什么来解决这个问题。

由于我已经为此工作了几天,所以再补充一点:

我尝试过多次删除和添加服务器证书,将它们从我的个人存储复制到受信任的存储和中间存储等。我尝试复制同事的 applicationhost.config 文件,或者至少复制部分特定于与我不同的身份验证。我试过直接从 Visual Studio 运行网站,而不是在 IIS 中独立运行。我什至尝试删除并重新添加 IIS Express,这会重新生成最初安装的 IIS Express 开发证书。我做什么似乎并不重要。该应用程序具有以下内容:

 _cert = Context.Request.ClientCertificate;
if (_cert.IsPresent)
{
transferCACLoginToConsent = ProcessCAC();
}

但它永远不会到达内部代码,因为 Context.Request.ClientCertificate 在我逐步执行此操作时始终评估为 false,并且不会提示用户输入 CAC/客户端证书。

最佳答案

我现在也遇到了这个问题,也是在升级到 Windows 11 之后。我还没有完全理解这个问题,但相信我可以为您提供大量的解决方法。这个问题与 TLS 和 Windows 使用的默认设置有关——Windows 10 的 TLS 1.2 和 Windows 11 的 TLS 1.3。我能够通过修改注册表以强制使用 TLS 1.2 来恢复本地站点的 CAC 身份验证/授权。 (显然,长期或永久解决方案需要允许 TLS 1.3 工作;我打算继续在这方面开展工作。)

具体来说,在现有的 Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\项下,添加(根据需要)TLS 1.2 和 TLS 1.3 项,然后在这两个新项下添加一个 Server 项用于他们每个人。在新的服务器 key 中,添加一个名为 Enabled 的 DWORD,并针对 TLS 1.2 路径将其设置为 1,并针对 TLS 1.3 路径将其保留为 0(默认值)。

此站点将引导您完成这些编辑:https://thesecmaster.com/how-to-enable-tls-1-2-and-tls-1-3-on-windows-server/ .它还让您创建客户端 key 和 DisabledByDefault DWORD,但我没有发现这些是必要的。

由于此解决方案确实需要对您的系统注册表进行编辑,因此谨慎的做法是事先导出其状态以实现可恢复性。我导出了我的“之前”\Protocols 分支。

关于iis - 升级到 Windows 11 后不再提示本地主机的 CAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71084265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com