簡體   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