2
2
[Sorry if this question is a bit long, there's lot of extra info in case it is relavent]
Overview
I'm having a problem with SSL on a 4 VM's load balanced farm in Azure. If the HTTPS request goes to the first server in the farm, all is well. If it arrives at any of the other 3, then the call fails. Chrome will issue an SSL protocol error, IE and Firefox simply say the page can't be displayed.
The Setup
I have four Windows Server 2012 VM's on Azure (Small instance as just testing). The VM's are in the same cloud service and availability set. Load balanced endpoints have been added for ports 80 and 443 (direct server return is NOT enabled on these). All four machines were set up via the same PowerShell script and with two exceptions were fully configured this way.
The IIS configuration of each server is set to use a share configuration, which is replicated via DFS to each server from the first server in the group. This was manually configured for each server and is working fine.
DFS is also used to replicate the webs folder from the first server to the others.
I also discovered the "new" Centralized Certificates feature after writing the deployment script, so this was manually installed and configured on the four servers too. I'm using a share on a separate server to store the certificate files.
The Certificate Request was generated on the first server, and I used SSL.com to get a free 90 day SSL for an address subdomain.domain.com
. I added a CNAME record for subdomain
to the DNS for domain.com
pointing to the Azure cloudapp
address.
I imported the SSL certificate into the first server, then exported it again as subdomain.domain.com.pfx
(with a password) and copied that into the certificate files share. When checking Centralized Certificates on all four servers, they are listing the certificate fine with no error icons indicating the password on the config was wrong etc.
Finally, I changed the bindings of server 1 to add https with host name subdomain.domain.com
, and with the Require Server Name Indication and Use Centralized Certificate Store options checked. Checking the other servers shows the bindings propagated as expected.
The Problem
I added a basic page which simply spits out the name of the server the request was handled by. If I shell several IE windows accessing http://subdomain.domain.com
, they'll print a variety of server names, showing that the IIS config and web files are being deployed correctly, and the Azure loadbalancing thingy is doing it's stuff too. Which I found really cool actually.
However, it goes down the drain when I try this via HTTPS. Only the requests that hit the first server succeed, the rest of them crash and burn with "This page can't be displayed" or "SSL Protocol Error" depending on which browser I test with. On server 1, the page displays fine, the certificate is viewable and there are no certificate errors.
I'm sure this is a configuration problem on the servers somewhere, but I just can't tell what on earth it is. Most of what I'm playing with is new to me as in the past we've used physical non-clustered Windows 2003 Servers with IIS6.
What is even more perplexing is I shutdown the four VM's overnight, and when I restarted the service this morning, server 2 now apparently responds to SSL requests in addition to server 1. With that said though, I had done a full shutdown yesterday too and still only server 1 worked after that.
The IIS log files don't show the failed SSL requests, only a bunch of 200's for port 80 and a mix of 200 and 304 for port 443 on server 1 and 2.
I have done some due diligence with Google searches but nothing is shedding any light. The exact opposite in fact, from what I can tell what I've done should just work.
Any advice to help resolve this would be gratefully received.
Facing the same issue with with a NLB IIS Cluter with 4 nodes, DFS Content and Configuration Replication and Centralized Certificate Store - 100% identical scenario. When I suspend secondary hosts, SSL works perfectly out of Host 1 - but the moment connections get routed to the other hosts, SSL fails. It's got to do something with the certificate export process.... – miCRoSCoPiCeaRthLinG – 2017-08-18T03:40:43.513
Why did you import the certificate into only the first server why didn't you import it into all 4? – Ramhound – 2014-03-25T10:51:03.850
Because that's the whole point of using the Central Certificate stuff - you don't need to do any of that, you just place the certificates on a network share, named appropriately, and IIS takes care of the rest. – Richard Moss – 2014-03-25T11:08:02.990
The reason I ask is that clearly isn't happening if the other three servers are not responding to the secure connection. – Ramhound – 2014-03-25T11:19:16.923
That's the strange thing though, as they do - occasionally. Server 2 started responding after the server was restarted after being shutdown over night. Server 4 worked for a few mins when I stopped IIS on the other servers whilst trying to use Wireshark, but it then promptly stopped again. I just tried importing the cert on the other servers regardless but it doesn't seem to be helping. – Richard Moss – 2014-03-25T11:46:44.610