This Exchange Wiki article explains how to configure SSL offloading for the Exchange 2010 protocols and client access services on an Exchange 2010 Client Access server (CAS).
When using a hardware load balancer to load balance traffic to CAS servers belonging to a CAS array, it can depending on the Exchange 2010 topology be beneficial to enable SSL offloading for the Exchange 2010 protocols and client access services on each CAS server in the CAS array. Table of Contents Configuring SSL Offloading for Outlook Web App (OWA)Configuring SSL Offloading for Exchange Control Panel (ECP)Configuring SSL Offloading for Outlook Anywhere (OA)Configuring SSL Offloading for the Offline Address Book (OAB)Configuring SSL Offloading for Exchange ActiveSync (EAS)Configuring SSL Offloading for Exchange Web Services (EWS)Configuring SSL Offloading for the Mailbox Replication Proxy Service (MRSProxy)Configuring SSL Offloading for Autodiscover Service (AS)SSL Offloading in an Exchange 2003/2010 Coexistence ScenarioUsing a Script to Enable SSL OffloadingNotes on reverse SSL
If you configure SSL offloading on an Exchange 2010 CAS server, all user passwords will be sent in clear between the HLB device(s) and the CAS servers, so it's important the traffic is sent over a secure network not accessible by malicious users. If the security policy within the organization states that all passwords should be sent in an encrypted form (even when occurring over a secure network), it's recommended to enable reverse SSL on the HLB device(s). In addition, it's recommended to enable reverse SSL, if the organization does not have a secure network in place between the HLB device(s) and the CAS servers or if there's no noticeable performance gain of offloading SSL to the HLB device(s) in the environment.
When configuring SSL offloading in Exchange 2010, you must also enable SSL acceleration on the LB device(s). This is however outside the scope of this article as the method differs from vendor to vendor.
Conceptual diagrams
The following diagram illustrates client connectivity with SSL Offloading (SSL acceleration) enabled:
The following diagram illustrates client connectivity with SSL bridging (Reverse SSL) enabled:
To configure SSL offloading for Outlook Web App (OWA), you must perform two steps on each CAS server in the respective CAS array. First, you must add a SSL offload REG_DWORD key. To do so, open the registry editor and navigate down to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchange OWA Under this registry key, create a new REG_DWORD key named “SSLOffloaded” and set the value for this key to “1”
So in order to enable SSL offloading for ECP, the only thing we need to do is to disable the SSL requirement on the ECP virtual directory. To do so, let’s open the IIS Manager and expand the Default Web Site. Under the Default Web Site, select the “ecp” virtual directory. Under features view, double-click on “SSL Settings”.
If you already enabled Outlook Anywhere in your environment, you need to use the Set-OutlookAnywhere cmdlet to enable SSL offloading. If this is the case, open the Exchange Management Shell and type the following command: Set-OutlookAnywhere –Identity CAS_server\RPC* -SSLOffloading $true
Running the above command will disable the requirement for SSL for the RPC virtual directory in IIS, which means we don’t need to do so manually like it’s the case with the other services/protocols.
To enable SSL offloading for the Offline Address Book (OAB) you just need to remove the SSL requirement on the OAB virtual directory. To do so, let’s open the IIS Manager and expand the Default Web Site. Under the Default Web Site select the “OAB” virtual directory. Under features view, double-click on “SSL Settings���.
Now uncheck ”Require SSL” and click “Apply” in the Actions pane.
Some of you may probably recall you have read on Microsoft TechNet and various other places, that it isn't supported . This used to be true but is now fully supported (although the Exchange documentation on Microsoft TechNet hasn’t been updated to reflect this yet).
Configuring Exchange ActiveSync to support SSL offload is very simple. You only need to remove the requirement for SSL in IIS. To do so, let’s open the IIS Manager and expand the Default Web Site. Under the Default Web Site select the “Microsoft-Server-ActiveSync” virtual directory. Under features view, double-click on “SSL Settings”.
To configure SSL offloading for Exchange Web services in Exchange 2010 RTM, you must perform two modifications. The first one is to remove the SSL requirement for the EWS virtual directory in IIS. To do so, let’s open the IIS Manager and expand the Default Web Site. Under the Default Web Site select the “EWS” virtual directory. Under features view, double-click on “SSL Settings”.
The Mailbox Replication Proxy (MRSProxy) service is installed on every Exchange 2010 Client Access server. MRSProxy helps to facilitate cross-forest move requests and mailbox move requests to Office 365. By default, MRSProxy is disabled. If enabled, it's enabled in the remote Exchange forest (aka source Exchange forest). Although the MRSProxy service runs under Exchange Web Services (EWS) it's not supported to configure SSL offloading for this service.
The reason for this is because the MRSProxy service code expects the traffic to be signed/encrypted. This means that you must configure SSL bridging for this to work.
To configure SSL Offloading for Autodiscover on Exchange 2010 RTM, open the IIS Manager and expand the Default Web Site. Under the Default Web Site select the “Autodiscover” virtual directory. Under features view, double-click on “SSL Settings”.
If you're working with a large organization with many Exchange 2010 Client Access services , you may want to accelerate the steps we went through above. To configure SSL offloading using a scripted method, see this blog post. The following cmdlets are a summary of tasks required to configure SSL offloading for Exchange Server 2010 SP1 on each Client Access server: Set-OutlookAnywhere –Identity "$($env:COMPUTERNAME)\RPC (Default Web Site)" -SSLOffloading $true New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\MSExchange OWA' -Name SSLOffloaded -Value 1 -PropertyType DWORD Import-Module webadministration Set-WebConfigurationProperty -Filter //security/access -name sslflags -Value "None" -PSPath IIS:\ -Location "Default Web Site/OWA" Set-WebConfigurationProperty -Filter //security/access -name sslflags -Value "None" -PSPath IIS:\ -Location "Default Web Site/ECP" Set-WebConfigurationProperty -Filter //security/access -name sslflags -Value "None" -PSPath IIS:\ -Location "Default Web Site/OAB" Set-WebConfigurationProperty -Filter //security/access -name sslflags -Value "None" -PSPath IIS:\ -Location "Default Web Site/EWS" Set-WebConfigurationProperty -Filter //security/access -name sslflags -Value "None" -PSPath IIS:\ -Location "Default Web Site/Microsoft-Server-ActiveSync" Set-WebConfigurationProperty -Filter //security/access -name sslflags -Value "None" -PSPath IIS:\ -Location "Default Web Site/Autodiscover" iisreset /noforce
If you enable reverse SSL (aka SSL bridging) on the HLB devices, you will not need to perform the above steps on each CAS server in the CAS array. However, bear in mind enabling reverse SSL on the HLB device(s) will mean the SSL workload (encryption and decryption tasks) which are CPU intensive won't be moved away from the CAS servers. Instead, the SSL workload will occur on both the HLB device(s) and the CAS servers. With that said, if you do not enable reverse SSL, passwords will be sent in clear between the HLB device(s) and the CAS servers, so it's important this traffic occurs over a secure network not accessible by malicious users.
Whether you should use Exchange 2010 SSL offloading or the reverse SSL method is up to the respective organization to decide. If the CAS servers can handle all expected workload and if you do not have a secure network in place between the HLB device(s) and the CAS servers, it's recommended to enable reverse SSL.
Great article Henrik. The section on web.config repeats itself, I guess the last part should be moved to the end after the AS bit?
Thanks Morten. Should be fixed now. The Wiki editor sometimes mess things up... :(
Thanks for this info.
Should not you also disable FBA (Forms Based Authentication) on the websites in Exchange 2010?
I can offload the SSL with our F5 loadbalancer, but only when FBA is disabled.
I read that FBA requires SSL.
I want to use single sign on on internal web
I don't use external web access (yet)
Shouldn't be necessary to disable FBA as you don't disable SSL on the OWA vdir, you only disable the requirement. If this doesn't work for you you might want to consider the "reverse SSL" approach where you use SSL between client and F5 and between F5 and CAS servers.
Henrik
When connecting to the http OWA site of the server, I always get a 302 return code and all communication turns into https.
When connecting to the F5 loadbalancer OWA site, the client-F5 communications is https and F5-CAS communications seems to be http.
How can I connect http to the server without disabling FBA? (I mean choosing single sign-on Windows Authentication)
Is Windows Integrated Authentication much slower then FBA?
Henrik - Question about SSL offloading the Exchange proxy/redirection. If we are clearing the HTTPS requirement on each IIS website and we have two (or more) CAS arrays that are also using SSL offloading; do we also need to modify the InternalNLBBypassURL to http and not https? Using only the methods described above an Exchange proxy to another CAS array will fail, correct? Thanks for your work in the community.
I have a quick question. I am getting ready to deploy a Cisco ACE load balancing module to load balance internal and external CAS connections across the CAS array. I was wondering if I should be able to connect to OWA with forms based authentication enabled and SSL offloading enabled via http. Currently, with SSL offloading enabled on Exchange 2010 SP1, when I connect over HTTP, I get redirected to HTTPS. This is happening when I connect directly to any members in the CAS array.
Also, do I need to update all virtual directory internal / external URLs to reflect http vs. https?
Your help is greatly appreciated.
techstuff231: Yes you can use FBA with SSL offloading configured. Also no you don't need to change vdir URL.
Henrik,
Thanks for getting back to me on the SSL Offloading with forms based authentication enabled.
I'm wondering what your opinion is on using either TMG or UAG in the perimeter network. I can't decide which one to use. Also, where should I offload SSL traffic when reverse proxies such as one of these are used before a hardware based load balancer? I'm planning on offloading SSL encryption and decryption to our Cisco ACE. I've read over your article "Load Balancing Exchange 2010 using a HLB" and noticed that you state that traffic traversing through a reverse proxy should not use the VIP/FQDN of the load balancer. Can you tell me what the ideal configuration would look like in your opinion given both a reverse proxy and hardware based load balancer with SSL Offloading enabled on the CAS array?
I find ASP.NET 2.0.50727.0 event 1309 in event log
how to fix it!