Configuring SharePoint and Office Web Apps to Support SSL Offload

When Load Balancing SharePoint Web Servers and Office Web Apps Servers, some organization would like to adopt SSL offload to improve overall network performance. In these organizations, either the communication between the load balancer and SharePoint Servers are closed so no one could possibly listen in, or just that internal regulations allow non-encrypted traffic between the load balancer and the server behind it. They could bind the SSL certificate only at the load balancer, while on the servers behind, port 80 or other ports are used but without SSL.

In the context of a SharePoint Farm, to support this setup, there are certain configurations to be done on SharePoint as well as the Office Web Apps Server farm (provided that there are more than one OWA servers.

Office Web Apps Server Farm

Configure the Office Web Apps farm with the –AllowHTTP and –SSLOffloaded options set to true.

For example, when creating a new Office Web Apps farm with the cmdlet New-OfficeWebAppsFarm, use the parameter –SSLOffloaded. In this case, the value of –AllowHTTP will be set to true automatically. If the server farm has been created without supporting SSL offload, you could simply, use the Set-OfficeWebAppsFarm cmdlet to change the values.

SharePoint Farm

First of all, there is a difference between path-based site collections and host-named site collections.

For path-based site collections:

Configure Alternative Access Mapping to support the SSL Offload.

When SSL is offloaded to the load balancer, the web applications would not be configured to use SSL. However, there is a difference between the URL that users use to access the web application and the URL set at IIS. For example, the URL used by uses is https://sharepoint.contoso.com as SSL is configured at the load balancer, while in SharePoint, the web applications are created as http://sharepoint.contoso.com.  Without AAM accommodating the difference between the internal and external URL, the SharePoint sites may not work properly. One possible behavior is that the browser will warn you that the content is not secure.

To configure AAM to support SSL offload, you should first make sure the public url is set to https:// and then add an internal URL as http://. Simply adding a URL for HTTPS will not work. Here is one way to configure it:

  1. From SharePoint Central Administration navigation pane, click Application Management.
  2. In the main pane, under Web Applications, click Configure alternate access mappings.
  3. From the Internal URL list, click the Internal URL corresponding to the Public URL you want to be accessible through the load balancer.
  4. The Edit Internal URLs page opens.
  5. In the URL protocol, host and port box, change the protocol from http:// to https://.

2014-08-24_1534

  1. Click the OK button. You return to the Alternate Access Mappings page.
  2. On the Menu bar, click Add Internal URLs.
  3. In the URL protocol, host and port box, type the same internal URL used in step 4, but use the http:// protocol. This allows access to the non-SSL site from behind the load balancer.

2014-08-24_1536

  1. Click Save. The result should look like this:

2014-08-24_1536_001

For host-named site collections:

AAM does not work. You need to configure the load balancer (or the reverse proxy) to add http header. More specific information can be found in this TechNet article: https://technet.microsoft.com/en-us/library/cc424952.aspx#section2g

If you are using F5 load balancer, you can also find a specific user guide for this scenarios for SharePoint: https://www.f5.com/pdf/deployment-guides/microsoft-sharepoint-2016-dg.pdf

 

Is an Internet-facing IP Address Needed for Office Web Apps server 2013?

The answer is yes if the users will access SharePoint with OWA from Internet. This may be a little surprising from network security point of view. What’s more, by viewing the diagram below on TechNet, it seems you need an internet-facing IP only if there are file hosts ( e.g. Exchange server) that uses the OWA server from the internet.

 

Therefore, it seems that if all your server setups are in your internal network (including the Office Web Apps Server farm, SharePoint, Exchange, Lync etc.), you don’t need to purchase an IP for the Office Web Server farm.

However, if you have users accessing SharePoint from the internet and would like to use Office Web App server, it does not work if a user’s browser could not call the Office Web Apps Server farm directly from the internet. That’s is why you need a public facing IP. This is how OWA Server works. To find out why, let’s look at how OWA works under the hood.

The key part of the integration is that Office Web Apps use the WOPI API to communicate with SharePoint 2013. So in order to understand why public (Internet-facing) IP is needed, we need to look at how WOPI API works.

First things first, let’s review a few definitions to avoid possible confusion.

  • WOPI host – As defined in this blog, a WOPI host is document storage location that can connect to Office Web Apps Server to open Office documents in the browser. In this case, it’s SharePoint.
  • WOPI Client – A WOPI client is an application that uses the WOPI API to perform actions (such as view and edit) on the files stored in the WOPI host. In our case, it’s the Office Web Apps.

Nick Simons had an awesome blog post introducing how Office Web Apps works.  I am borrowing a diagram he used here:

 

Here is what happens when a user request viewing a file in SharePoint using Office Web Apps Server:

  1. Users issue a request to SharePoint to view the document.
  2. SharePoint navigates the user to a page that contains a WOPI frame that knows how to talk to Office Web Apps.
  3. The WOPI frame contains an iframe that navigates the user to a page in the Office Web Apps Server which shows the content rendered from SharePoint.
  4. User browser sends the WOPI source (including the name and the URL of the file that the user requested to view), and the access token (a string that represents the user’s credential for the Office Web Apps to use to request the file from SharePoint).
  5. Office Web Apps Server uses the WOPI Source and the Access Token to get the file from SharePoint.
  6. The Office Web Apps server displays the file in the iframe on WOPIFrame.

We could see that the WOPI source and the access token are sent from the browser directly. Since all the content are shown from a page within SharePoint that contains the WOPI frame and the iframe, even users see that the URL in the browser is still in SharePoint, the browser is already communicating directly with the Office Web Apps server under the hood.

The MSDN documentation of the WOPI API confirms this:

 

Therefore, when preparing the for the Office Web Apps server setup in your organization, you will need a public facing IP for the Office Web Apps Server farm.

Ready More:

Plan Office Web Apps Server

Introducing Office Web Apps Server

Introducing WOPI