Monthly Archives: May 2012

CertSrv Continuously asks for Username & Password (AKA CertSrv 401 Unauthorized)

WARNING! This post was authored in 2012 and should no longer apply to most domains.  Unless you are running an NTLM only domain (really?), you should validate your SPNs!
See this Microsoft article for details on SPNs.

———————————————————————

At ArmgaSys, we consume SSL certificates at a ferocious rate.  Lync, Exchange, OWA, and UM all require SSL certificates to secure the multitude of communication channels.

While much debate rages around “Should I purchase a public certificate which will only be used on internal servers”, the reality in the field is many companies choose to leverage Active Directory Certificate Services.  This is done for one very good reason:  Internally generated (and trusted) certificates are free.

One of the issues we run into when requesting new certificates from ADCS is the dreaded 401 Unauthorized issue with Certsrv.

The Scenario

  1. Type the URL for your Certificate Server
    http://[domain server]/certsrv
  2. You are prompted for administrator credentials
  3. You enter said credentials
  4. You are again prompted for administrator credentials
  5. You enter said credentials
  6. You are presented with a 401 Unauthorized error message
  7. You bang your head against your desk in frustration

Root Cause

The IIS server is not negotiating your credentials correctly.

Solution

  1. Logon to the server hosting the Active Directory Certificate Services
  2. Launch Internet Information Services (IIS) Manager
  3. Drill down and click on the the CertServ application
    (Usually Server –> Sites –> Default Web Site –> CertSrv)
    image
  4. Click and open the Authentication icon in the home view
    image
  5. Click once on Windows Authentication to highlight the entry
    image
  6. Select Providers from the action pain (located a the right of the IIS Manager)
    image
  7. Move the NTLM provider to the top of the list.  It *must* be the first enabled provider
    image
  8. Restart IIS using IISRESET at the command prompt

Happy Certificate Issuing!