I was configuring an SSL certificate and once complete, when I attempted to access the website using https://localhost I started receiving a 404 error as shown in Figure 1.

Figure 1, 404 HTTP Status after installing an SSL Certificate

I tried some shots at troubleshooting the issue using Failed Request Tracing and LogParser to view the IIS logs, but didn’t get a Failed Request Trace and I found no entry in the IIS logs.  I confirmed that there was a default document in the websites directory and even browsed right to it and still got a 404.  Obviously, this is not a File Not Found issue.

My bindings were similar to that shown in Figure 2.

Figure 2, SSL/443 binding causing a 404

As the issue was not being logged into the IIS logs, I concluded that the issue must be happening at the HTTP level.  So I looked in the HTTP Error logs located by default at c:\windows\system32\logfiles\HTTPERR and did find the error being logged, a subset of that is shown below.

2013-11-12 13:15:58 ::1%0 61522 ::1%0 443 HTTP/1.1 GET / 404 - NotFound -
2013-11-12 13:16:23 ::1%0 61526 ::1%0 443 HTTP/1.1 GET / 404 - NotFound -
2013-11-12 13:17:08 ::1%0 61533 ::1%0 443 HTTP/1.1 GET / 404 - NotFound -

After some effort and just looking at the bindings again, I determined that the reason for the error was due to the fact that I was accessing the website using https://localhost for which there was no binding.  I.e. there was no binding for *:443 or localhost:443.

I should note that I added the following entry to the HOSTS file so that https://invalidhostname did indeed render as expected.  Ex. “127.0.0.1 invalidhostname

I updated the bindings so they reflected that shown in Figure 3, so that when I now made the request, the 404 was gone.

Figure 3, SSL/443 binding causing a 404, solution

This was a problem that took me some time to resolve, so just sharing in case it saves others some time.