esmaspäev, 25. märts 2019

Viga 403.16 Forbidden ID-kaardiga autentimisel

Kui kasutatakse rakenduses ID-kaardiga autentmist, ehk ASP.NET koodis on

HttpClientCertificate sert = Request.ClientCertificate;
if (!sert.IsPresent)
...

ning oma arust on veebilehe autentimine õigesti seadistatud (IIS, WebSite - SSL Settings - Client Certificates (Accept)

võib ikkagi juhtuda, et tuleb sirviku ekraanile viga 403 Forbidden

Et asjale pihta saada, säti veebelehel peale Failed Request Tracing



seadistada sobivad märkeruudud ja jätta meelde kataloog, kuhu logifailid tekitatakse (XML fail on veateade ise ja XSL on selleks, et Internet Exploreriga viga vaadata)

Kui veateade sisaldab endast 403.16 ja kirjeldust A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. (0x800b0109)



siis on midagi valesti Windows Serveri sertifikaatides, mis alates Windows Server 2012 nõutakse, et juurhoidlas oleks ainult self-signed sertifikaadid. Kui seal on mõni mittesobiv, siis tulemuseks ongi 403 Forbidden

PowerShelli käsuga saab need sertifikaadid ülesse leida
Get-Childitem cert:\LocalMachine\root -Recurse |   Where-Object {$_.Issuer -ne $_.Subject}


edasi siis juba vaadata, mida nende sertifikaatidega teha, kas kustutada või liigutada vahepealsesse sertifikaadi hoidlasse



Get-Childitem cert:\LocalMachine\root -Recurse |  Where-Object {$_.Issuer -ne $_.Subject} | 
    Move-Item -Destination Cert:\LocalMachine\CA