Hey Everyone,
this is an issue that's been bugging me in one specific environment and we've ruled out pretty much everything else (network, firewall). This isn't my first time setting up HTTPS in a ConfigMgr Site and I've never had issues with this until now. We're on CM 2107 + HF, it's a small environment, so there's just one server (Windows Server 2019) with everything on it. We've created certificate templates according to the standard documentation and issued certificates based on these (client cert, webserver cert, winpe cert). When we switch to HTTPS, the clients pick up their certificate and try to establish communications with the Primary Site, however while doing so and checking the server certificate, the connection is rejected with a 403 error - here's an excerpt from LocationServices.log on a client:
Certificate Issuer 1 [CN=Company-ROOT-CA]
Based on Certificate Issuer 'CN=Company-ROOT-CA' found Certificate [Thumbprint BF24B51A913520E720C5695B29F79C21E8ADB6D4] issued to 'ClientName.company.domain.de'
Begin validation of Certificate [Thumbprint BF24B51A913520E720C5695B29F79C21E8ADB6D4] issued to 'ClientName.company.domain.de'
Completed validation of Certificate [Thumbprint BF24B51A913520E720C5695B29F79C21E8ADB6D4] issued to 'ClientName.company.domain.de'
Completed searching client certificates based on Certificate Issuers
Begin to select client certificate
Begin validation of Certificate [Thumbprint BF24B51A913520E720C5695B29F79C21E8ADB6D4] issued to 'ClientName.company.domain.de'
Completed validation of Certificate [Thumbprint BF24B51A913520E720C5695B29F79C21E8ADB6D4] issued to 'ClientName.company.domain.de'
>>> Client selected the PKI Certificate [Thumbprint BF24B51A913520E720C5695B29F79C21E8ADB6D4] issued to 'ClientName.company.domain.de'
[...]
Getting CCM Token from STS server 'PrimarySite.company.domain.de'
Getting CCM Token from https://PrimarySite.company.domain.de/CCM_STS
Cached encrypted token for 'S-1-5-18'. Will expire at '01/14/2022 19:10:21'
Begin validation of Certificate [Thumbprint 31F4A2CE105E232D1CD6F5FE3B66D837C361A2EA] issued to 'PrimarySite.company.domain.de'
Completed validation of Certificate [Thumbprint 31F4A2CE105E232D1CD6F5FE3B66D837C361A2EA] issued to 'PrimarySite.company.domain.de'
[CCMHTTP] ERROR: URL=https://PrimarySite.company.domain.de/SMS_MP/.sms_aut?SMSTRC, Port=443, Options=63, Code=0, Text=CCM_E_BAD_HTTP_STATUS_CODE
[CCMHTTP] ERROR INFO: StatusCode=403 StatusText=Forbidden
Successfully queued event on HTTP/HTTPS failure for server 'PrimarySite.company.domain.de'.
Checking ClientIDManagerStartup.log, there are no errors. When I check on the Primary Site, I can see the following in the IIS Logs:
2022-01-14 10:13:23 10.10.20.XXX CCM_POST /ccm_system_windowsauth/request - 443 - 10.70.144.XXX ccmhttp - 403 16 2148204809 1434 22
Any communication attempt from the client is rejected with a 403.16 error.
MPSetup.log shows no errors, so I can only assume the switch from HTTP to HTTPS was successfull. However, checking MPControl.log, I can see similar errors as above:
Successfully performed Management Point availability check against local computer.
SSL is enabled.
CRL Checking is also enabled.
Using thread token for request
Call to HttpSendRequestSync succeeded for port 443 with status code 200, text: OK
Http test request succeeded.
STATMSG: ID=5465 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_MP_CONTROL_MANAGER" SYS=PrimarySite.Company.Domain.DE SITE=GUV PID=12992 TID=7276 GMTDATE=Fr Jan 14 10:08:42.706 2022 ISTR0="" ISTR1="" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0 LE=0X0
Successfully performed User Service availability check against local computer for /CMUserService_WindowsAuth/applicationviewservice.asmx.
Applied D:P(A;CIOI;GA;;;SY)(A;CIOI;GA;;;BA)(A;CIOI;GR;;;LS)(A;CIOI;GR;;;S-1-5-17) to folder E:\Program Files\Microsoft Configuration Manager\Client
SSL is enabled.
Client authentication is also enabled.
CRL Checking is also enabled.
Machine name is 'PrimarySite.Company.Domain.de'.
Begin validation of Certificate [Thumbprint c221ff4540da1690521b5984e90a08d47be9a049] issued to 'PrimarySite.Company.Domain.de'
Certificate doesn't have "SSL Client Authentication" capabilities.
Completed validation of Certificate [Thumbprint c221ff4540da1690521b5984e90a08d47be9a049] issued to 'PrimarySite.Company.Domain.de'
Skipping this certificate which is not valid for ConfigMgr usage. SMS_MP_CONTROL_MANAGER 14.01.2022 11:13:42 7276 (0x1C6C)
[...]
Begin validation of Certificate [Thumbprint 31f4a2ce105e232d1cd6f5fe3b66d837c361a2ea] issued to 'PrimarySite.Company.Domain.de'
Certificate has "SSL Client Authentication" capability.
Completed validation of Certificate [Thumbprint 31f4a2ce105e232d1cd6f5fe3b66d837c361a2ea] issued to 'PrimarySite.Company.Domain.de'
>>> Selected Certificate [Thumbprint 31f4a2ce105e232d1cd6f5fe3b66d837c361a2ea] issued to 'PrimarySite.Company.Domain.de' for HTTPS Client Authentication
Call to HttpSendRequestSync failed for port 443 with status code 403, text: Forbidden
Here, the requests constantly switch between 200 and 403.
Based on the error messages, I did a search and came across this article: https://learn.microsoft.com/en-US/troubleshoot/developer/webapps/iis/www-authentication-authorization/errors-403-7-reject-client-certificate-rquest
However, there are no non-self-signed certificates in the trusted root store and no root certificates in the intermediate certificate authorities store. The Root CA cert and the Issuing CA cert are all in the appropriate stores. We've checked and re-checked the cert templates, I made sure the certs are using RSA, not ECDSA, checked the certs common name, subject alternative name, key usage, everything we could think of, doublechecked against the documentation - we couldn't find anything out of the ordinary or different to functioning sites.
At this point I have no clue where to look next. Maybe someone here can spot something obvious that I'm missing?
Cheers,
Fred