I am attempting to setup an IIS6 server with one website (dedicated IP) for HTTPS access using a self-signed certificate.

Any request via HTTPS results in an empty (zero size) response with this somewhat strange status

HTTP/0.9 200 OK

Nothing weird in the request format, just a regular request from the browser (Firefox in this example)

GET https://server-name/ HTTP/1.1
Host: server-name
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive

There are no proxies between client and server.

HTTP requests are working as expected.

There was a slight hiccup installing the CA certificate (the admin installed it to the wrong account) but this has been fixed.

I've run everything through SSLDiag and it's coming back rosy.

I'm no Windows admin (developer by trade) and the admin here is not very familiar with IIS or the certificate process and is as stumped as I am.

Here's an IIS log extract which shows IIS is indeed seeing the requests

#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2011-08-16 01:21:31
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status 
2011-08-16 01:21:31 GET / - 443 - Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+InfoPath.1;+InfoPath.3;+.NET4.0C;+.NET4.0E;+.NET+CLR+2.0.50727) 200 0 2
2011-08-16 01:22:54 GET / - 443 - Fiddler 200 0 2
  • What request headers are sent // what client application is it? HTTP/0.9 is very odd, especially if the request headers aren't sending that version. Stinks of misbehaving proxy - any proxy servers in the path? – Shane Madden Aug 16 '11 at 0:42
  • Updated my question. Just a typical request and no proxies – Phil Aug 16 '11 at 0:47
  • Are you sure about GET https://server-name/ HTTP/1.1 part? I always thought (and observed) that it should be GET / HTTP/1.1 – LazyOne Aug 16 '11 at 0:55
  • @LazyOne All browsers and even Fiddler2 are creating the GET https://server-name/ HTTP/1.1 request. This is the same for other (working) sites, eg GET https://github.com/ HTTP/1.1 – Phil Aug 16 '11 at 1:25
  • 1
    @LazyOne: He's seeing the proxy-like syntax because he's using Fiddler2, which is a proxy, to intercept the transaction. The browser is sending the request like that because it is using a proxy. – Evan Anderson Aug 16 '11 at 3:15

IIS 6.0 can return HTTP/0.9 responses, but it really shouldn't be. I have a strong suspicion that IIS isn't what's answering your request. (A long shot, but that's the best I can come up with.) Run netstat -a -n -o | find ":443 " and verify that the PID returned for the listener on TCP port 443 (far right column) corresponds to the "System" process (PID 4). If it doesn't, investigate the PID of the process that was returned to find out what's listening on port 443.

The other thing to look at would be the IIS logs. You should be seeing entries corresponding to your attempted accesses. If you don't then I'd say something else is getting in the way.

Are there any odd ISAPI filters or extensions installed?

  • I get PID 3356 which is svchost.exe running under the SYSTEM user. I've added an IIS log extract to my question. The site is meant to be serving a Jrun4 Java application (don't ask) via a jrun_iis6 ISAPI extension however I've disabled this without any change. – Phil Aug 16 '11 at 3:38
  • Looking further into that PID, Process Explorer shows it as the W3SVC service. Looks correct to me though the PID is higher than you expected – Phil Aug 16 '11 at 3:52

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.