1

Generated a IIS server certificate using my domain certificate authority (presumed to be an intermediate to the 'secret' root CA) via the Server Certificates -> Create Domain Certificate 'wizard'. Entered the FQDN of my server for the common name, filled out remaining form and hit Finish. Certificate is generated and shows up as a valid cert Issued by MYDOMAIN.FQDN and Issued to MYSERVER.FQDN. I changed the binding for 443 to use this new cert.

When I visit the site using:

Chrome - It doesn't give me the 'untrusted popup' but it does put a red line through the HTTPS part of the URL and when i check the details it says: "This site uses a weak security config SHA-1 so your connection may not be private"... I check the details of the certificate and it is indeed the same TLS 1.0 cert i had just enabled and I do see our MYDOMAIN.FQDN as a trusted intermediate certificate in the Chrome -> certificates menu.

Firefox - It gives me the popup saying "can't confirm that your connection is secure"... "The certificate is not trusted because the issuer certificate is unknown"... so I look for the MYDOMAIN.FQDN in Firefox's certificate menu and it's nowhere to be seen.

IE - Lets me right through and I do see MYDOMAIN.FQDN as a trusted intermediate certificate authority.

Questions:

  • Why doesn't Firefox recognize MYDOMAIN.FQDN as a trusted intermediate certificate... shouldn't this be stored at the OS level (and as a member of the domain apply to all browsers?)

  • I fully understand the risk of using SHA1 and the discovered vulnerabilities... is Google just trying to push people out of using SHA1 by putting the (very visible) red line through the URL?

  • Is there a setting somewhere in my domain certificate authority that will default to SHA2 or better signature hashs as I didn't see an option for hash algorithm in the "Create Domain Certificate" wizard. I'm guessing I could go through the Create Cert Request -> Issuance in two steps and specify the hash algorithm.

Thanks!

2

To answer the first two bullet points:

  • Firefox has its own list of trusted CAs. You can add certificates in Menu Button>Options>Advanced>Certificates(tab)>View Certificates>Authorities(tab). This is for Firefox version 38.
  • Yes Google is trying to shame people into moving from SHA1 to a more secure hash such as SHA2. Here is the chromium blog post about it. Also see the note at the bottom about SHA1 in root certs being treated differently than SHA1 in intermediate certs.

edit: I came across some official Microsoft documentation for using SHA-2 on subordinate CAs so I will include it in my answer.

Configuring Subordinate CAs for SHA-2

The hash chosen on the root CA determines how the Subordinate CA's certificate is signed, regardless of the CSP/KSP and hash is chosen during the subordinate CA's install (and requested in the subordinate CA's certificate request). The requested hash in the certificate request will be ignored and the values in the registry on the parent CA will prevail.

During the Subordinate CA install, the hash algorithm you select under the Select the hash algorithm for signing certificates used by this CA determines how the certificates and CRLs issued by the Subordinate CA are signed. These values can also be changed using the registry keys indicated above and will apply after a restart of ADCS.

To summarize, by default, the hash algorithm selected during a root CA's install will determine the hash used to sign the root CA's own certificate and all certificates and CRLs that it issues (although you can change the signing algorithm using the registry changes after the root CA certificate is generated). Subordinate CA's own certificate will be signed by the hash indicated during the root CA's install. The certificates issued by the Subordinate CA will be signed by the hash selected during the Subordinate CA's install. All selected ciphers used for signing issue certificates and CRLs can be changed in the registry, and after restarting ADCS, will apply to all future issued certificates and CRLs.

It's also important to note that the certificate template version or the client requesting the certificate has no impact on whether or not the CA signs with a particular hash. The hash used to sign digital certificates is determined by the fields and values listed above.

  • I don't have much experience with IIS, but a quick google revealed a tutorial for generating a SHA256 cert. It requires installing openSSL instead of doing everything through IIS. I haven't verified it myself so I'm not including it in my answer. Here is the link: dotnetstock.com/technical/… – Owen Jun 26 '15 at 17:39
  • "Google is trying to shame people into moving from SHA1" ... still using SHA-1 on their own infrastructure (with a short life span, to avoid their own warning) – WoJ Jul 1 '15 at 11:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.