繁体   English   中英

配置IIS客户端证书映射身份验证

[英]Configuring IIS Client Certificate Mapping Authentication

我正在尝试在IIS 8,Windows Server 2012上配置IIS客户端证书映射。我看不到applicationHost.config中显示的配置,并且我提供的证书没有作为选项提供,我的浏览器。

到目前为止,这是我尝试过的方法:

在IIS中,我创建了一个名为“ PackageManager”的顶级站点:

在此处输入图片说明

SSL设置如下:

在此处输入图片说明

身份验证:已启用匿名:

在此处输入图片说明

在“配置编辑器”中的“系统system.webServer/security/authentication/iisClientCertificateMappingAuthenticationApplicationHost.config <location path='PackageManager'>我设置了以下内容:

在此处输入图片说明

我想要manyToOneMappings以便可以将证书映射到我的服务帐户(域用户):

在此处输入图片说明

在这里,我创建了两个规则来匹配GoDaddy证书的主题和颁发者CN:

在此处输入图片说明

然后,我为上述所有内容生成了一个PowerShell脚本,如下所示:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'PackageManager' -filter "system.webServer/security/authentication/iisClientCertificateMappingAuthentication" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'PackageManager' -filter "system.webServer/security/authentication/iisClientCertificateMappingAuthentication" -name "defaultLogonDomain" -value "CMC"

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'PackageManager' -filter "system.webServer/security/authentication/iisClientCertificateMappingAuthentication/manyToOneMappings" -name "." -value @{name='My 1st Mapping';description='1st User Mapping';userName='DOMAIN\username';password='XXXXXXXXXXX'}

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'PackageManager' -filter "system.webServer/security/authentication/iisClientCertificateMappingAuthentication/manyToOneMappings/add[@name='My 1st Mapping']/rules" -name "." -value @{certificateField='Subject';certificateSubField='CN';matchCriteria='*.mydomain.com';compareCaseSensitive='False'}

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'PackageManager' -filter "system.webServer/security/authentication/iisClientCertificateMappingAuthentication/manyToOneMappings/add[@name='My 1st Mapping']/rules" -name "." -value @{certificateField='Issuer';certificateSubField='CN';matchCriteria='Go Daddy Secure Certificate Authority - G2';compareCaseSensitive='False'}

以上所有内容的怪异之处在于,我在C:\\ Windows \\ System32 \\ inetsrv \\ Config \\ applicationHost.config中看不到对此配置的任何引用。

浏览此站点时,系统提示我使用证书,但IE不会显示我期望的证书:

在此处输入图片说明

那是我一直在尝试的自签名证书。

然后我被可爱的403击中,因此陷入僵局。

我在配置中做错了什么,它没有出现在applicationHost.config中,为什么我没有选择提供我的客户端证书(它在我的商店中)?

在此处输入图片说明

我在Windows Server 2012下遇到了相同的问题,并通过在HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet \\Control\\SecurityProviders\\Schannel下添加两个其他注册表项来解决了这个问题:

ClientAuthTrustMode值类型: REG_DWORD ,值数据: 2

SendTrustedIssuerList值类型: REG_DWORD ,值数据: 0

有关更多信息,请参见IIS 8.5-相互证书身份验证失败,错误403.16

您的GoDaddy证书似乎是服务器身份验证证书(服务器身份验证OID 1.3.6.1.5.5.7.3.1),IIS可以将其用于SSL安全性,并且应该在证书>>本地计算机>>个人中安装该证书。

对于客户端证书,您需要客户端身份验证OID 1.3.6.1.5.5.7.3.2,该证书应安装在“证书” >>“当前用户” >>“个人”中。

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM