I am working on a REST API which I have currently deployed on a Win XP Professional SP2 development machine running IIS 5.1. The site is currently being hosted on port 81 and being accessed via HTTP. I would now like to configure the site to stop using HTTP and use HTTPS only.

I have developed a self-signed certificate using the SelfSSL.exe tool from the 6.0 Resource Kit Tools and set the Common Name to be the IP of my server (as it's a local development machine it has no domain name). I have also already configured the site to use SSL using the How To Set Up an HTTPS Service in IIS tutorial as my guide.

However, whenever I try to access a resource in the API via HTTPS I get a 404.

Any ideas?

Binding Configuration

IIS Bindings

SSL Configuration

SSL Configuration

Fiddler Response

HTTP/1.1 404 Not Found
Date: Tue, 10 Jul 2012 14:06:35 GMT
Server: Apache/1.3.41 (Unix) mod_auth_pam/1.1.1 DAV/1.0.3 mod_ssl/2.8.31 OpenSSL/0.9.8g
Set-Cookie: iomega=; path=/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/plain; charset=utf-8

404 - Page Not Found
  • 7
    That version of IIS is nearly 11 years old by the way, just wanted you to know...eleven – Chopper3 Jul 9 '12 at 15:25
  • @Chopper3 You can only work with the tools your given, the question already states it's a development environment. – James Jul 9 '12 at 15:33
  • 3 things wrong with this question: 1. what Chopper said - why even develop on an old OS/platform? Are you going to deploy the code to a IIS 7.5 in a prod environment? That doesn't make much sense 2. How is anyone supposed to troubleshoot your code if you don't post it? 3. You don't state any troubleshooting you've already tried. Are you just at a total loss? You say your API doesn't work over HTTPS, but does it work over HTTP? Can you get a "hello world" page to work over HTTPS not using the API? – August Jul 9 '12 at 16:12
  • @August "why even develop on an old OS/platform" The machine I have for development is not by choice I have been lumbered with it. "How is anyone supposed to troubleshoot your code" what code exactly do you want me to post? From what I can tell this is an IIS configuration issue, not a programming issue (although I could be wrong). "you say your API doesn't work over HTTPS, but does it work over HTTP?" I am beginning to think you didn't even bother to read the question..."Can you get a "hello world" page to work over HTTPS" - it's a REST API, no views are involved. – James Jul 9 '12 at 16:56
  • @August Also, what does it matter which version of IIS I am using? If I can resolve the issue in an old version like 5.1 I am pretty sure the skills are transferable to newer versions. I am familiar with IIS 6.0/IIS 7.5, what I am not familiar with is setting HTTPS and that's the reason I am asking the question. I understand the IIS version is important for the actual solution, however, the question shouldn't be critiqued based on this fact. – James Jul 9 '12 at 17:02


Based on your Fiddler it looks like you might actually have an Apache box listening on port 443. It can be easy to overlook, especially if it was bundled with another piece of software. Run the following command, see if port 443 is being listened to and what program is listening on it. This should help us figure out if IIS is indeed controlling that port of if some other program is.

netstat -aon | findstr 0.0:443

  • There does indeed seem to be something else listening on that port as I got TCP MachineName:https MachineName:0 LISTENING in the list. I noticed that TeamViewer was running on the server which I think by default listens on port 80 & 443. I disabled that though and still got the same problem. Not really sure what else could be listening on there. – James Jul 10 '12 at 14:42
  • @James Run the updated command above. The last column should be the Process ID (PID), cross reference that with task manager to find the program running it. – Brent Pabst Jul 10 '12 at 14:49
  • Brilliant never knew you could do that :) It's IIS (inetinfo.exe) so not quite sure where the Apache server is coming from. The only thing I can think of is there is perhaps some port forwarding going on at the router. This would actually make sense of the 404s. I don't have access to the router but I have sent this onto the sys admin. – James Jul 10 '12 at 14:55
  • 1
    No problem... now start a fund to get a decent dev server! – Brent Pabst Jul 10 '12 at 15:06
  • 1
    Turns out it was a mixture of a couple of things. Port 443 was indeed being forwarded to a UPnP server and the firewall on the actual server was blocking port 443. Sorted now :) – James Jul 11 '12 at 14:13

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.