I'm no expert, but I don't think that what you're attempting is possible due to the way TLS/SSL works.
When you make a TLS request, the server doesn't yet know which domain the client is after, because the request for the domain itself is encrypted. Like I said, I'm no expert, so I'm having a hard time explaining it, but it basically works like this:
User types
http://www.domain.com into the address bar of his browser.
Browser finds out what
www.domain.com resolves to, let's say it's 1.2.3.4
Browser connects to server at 1.2.3.4, port 80, request contents of
www.domain.com
Server responds.
Now, an encrypted connection:
User types
https://ssl.domain.com.
Browser finds it's 1.2.3.4.
Browser connects to server at 1.2.3.4, port 443.
Browser requests an encrypted channel with server.
Server responds, all subsequent communication takes place on the encrypted channel.
Browser requests contents of ssl.domain.com.
Server responds.
See, since the encryption starts before the browser asks for a specific domain, the connection cannot be refused, by design.
The only way to achieve what you want, that I know of, is to add another IP and have the server listen to encrypted requests on that IP only.
Hope that makes sense.
edit: I went to WP to see if I could find an article that would explain the problem better, and I found there is a solution to the issue, it's called
Server Name Indication, but the page says that it doesn't work with IE in XP, so it's not really that useful at this point.