Score:3

Are self-signed SSL certificates still allowed in 2023 for an intranet server running IIS?

us flag
Tim

I'd just like to confirm that self-signed certificates are still allowed in 2023-2034 for an IIS server that is not exposed to the internet and serves up only intranet apps. I'm asking because I'm repeating a process I've used for the past several years but it's not working this time. Browsers are rejecting the certificate as invalid. Has there been another industry tightening of security related to SSL certificates?

I've been creating a self-signed SSL certificate in PowerShell, importing it into Trusted Root Certification Authorities on that Windows Server, and then changing the bindings in IIS Manager to use the imported certificate. [The cert without private key is imported into Trusted Authorities on the desktops.] This time, the import of the certificate into the server's Trusted Root Certification Authorities is successful, changing the https bindings in IIS is successful, but then when I try to access a web app from a desktop, the browser is saying the certificate is invalid and the connection is not private.

dave_thompson_085 avatar
jp flag
Does it say "CERT_COMMON_NAME_INVALID" in Chrome or Edge (or Opera) or "BAD_CERT_DOMAIN" in Firefox? If so you probably used `New-SelfSignedCertificate` with `-Subject` (and no manual SAN extension) instead of `-DnsName`.
us flag
Tim
Thanks, @dave_thompson_085. It turned out that the certificate hadn't been properly pushed out to the user's desktops, but that is still being resolved by the outside group who are handling it.
cn flag
"*The cert is imported into Trusted Authorities on the desktops*" - how exactly was that done? And is your browser (which one?) actually using those "Trusted Authorities" or does it have its own certificate store?
Score:10
ng flag

This has always been the case. All web browsers will and have to check the validity of a server certificate and warn the user about it if it's not valid.

If you are using a self-signed certificate, you need to explicitly make it trusted on the client system, otherwise you'll get exactly this complaint.

I find strange this didn't happen to you before, because it's supposed to happen, and it has always happened since SSL has been invented.

cn flag
Most likely the OP forgot that they added the previous cert to the allowed list in the browser the first time they got the warning
us flag
Tim
The certificate (without private key) is imported on the desktop. Sorry I neglected to include that. I am not responsible for that aspect of the task and will confirm that it was done properly. But before I did that, I wanted to confirm that self-signed SSL certificates hadn't become disallowed. I'm not a sysadmin, just wearing the hat temporarily.
Massimo avatar
ng flag
`I wanted to confirm that self-signed SSL certificates hadn't become disallowed.` They are not any more "disallowed" than any other untrusted certificate.
Lex Li avatar
vn flag
"This has always been the case" isn't accurate. The exact thing (after the edits) described in the question only happens recently and seems to be another wave of modern browser security enhancement.
us flag
It's always been a bad idea, but browser behavior has changed to be more and more aggressive about warning the user over the last few years.
Justine Krejcha avatar
id flag
I've got to say, the fact that self-signing a certificate is treated as more insecure than not having any certificate at all and using plain HTTP has always been quite strange to me.
Score:3
vn flag

I can reproduce the "the certificate is invalid and the connection is not private", so the recent changes in Chromium derived browsers seem to make it rather painful to use self signed certificates even if the sites are internal.

If you test with legacy browsers like Internet Explorer, you should see the self signed certificates work flawlessly.

Usually browser vendors make such changes to remedy security risks, and the common solution is to issue certificates using your internal CA (from AD or similar systems).

us flag
Tim
I didn't know that certificates could be spawned from ActiveDirectory. I will follow up on that. Thanks
Lex Li avatar
vn flag
@Tim you can work with your domain administrators, https://learn.microsoft.com/en-us/windows-server/identity/ad-cs/active-directory-certificate-services-overview
us flag
@Tim It doesn't happen out of the box. You need to add and configure AD Certificate Services as a role to a Windows Server instance in the domain. There was also a [pretty serious vulnerability about a year ago](https://www.semperis.com/blog/ad-vulnerability-cve-2022-26923/), so if you add this to your environment make sure you include the patch.
Score:0
in flag

Absolutely!! Using a self signed certificate for local intranets/infrastructure is totally acceptable, often it is the ONLY solution on private infrastructure with no internet access.

Without specific information about the error messages the browsers are producing or the specifics of how the certificate was set up, it's difficult to say definitively. However, here are common issues that might cause your certificate to be rejected:

  1. Not in Trust Store: The self-signed certificate has not been installed in the appropriate trust store on the machines that are trying to access the website. Every operating system has its certificate stores and a self-signed certificate needs to be added to that store.

  2. Certificate Mismatch: The common name (CN) on the certificate does not match the hostname or IP address of the IIS server.

  3. Inappropriate Certificate: The certificate used does not support server authentication. If this is the case, even though the certificate is installed correctly, it will not be deemed valid.

  4. Expired Certificate: The certificate is expired. Self-signed certificates have an expiration date, and if it's past that date, browsers will not trust that certificate.

  5. Weak Hashing Algorithm: If your certificate uses SHA-1 as the hashing algorithm, this could be the reason. Modern browsers no longer trust certificates that use SHA-1 due to its security vulnerabilities and have started to require at least SHA-256.

  6. Private Key: For certain applications, the private key must also be installed on the server and properly linked to the certificate.

Please examine the specifics of the error messages you're receiving from the browsers, it should give a more exact insight into why the certificate is being considered invalid. If nothing works, consider reaching out to your system admin or IT support for professional advice.

cn flag
`Using a self signed certificate for local intranets/infrastructure is totally acceptable, often it is the ONLY solution on private infrastructure with no internet access.` No it is not. There is no linkage to "Internet" and using a certificate infrastructure. There are plenty of nearly free certificate solutions for every platform that are easy to implement and administer.
Rapidmod avatar
in flag
@Greg Askew I mean if you finished reading the sentence of mine that you quoted by pasting it into your comment you probably would not have posted such a silly comment
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.