Redirecting http to https in SharePoint with AAM
01/07/2019
There is a common mistake in redirecting http to https on any SharePoint site that thinking that AAM configuration is enough. Well thats not true !
Let’s assume we have following settings on AAM.
HTTPS -> HTTPS : https://www.contoso.com zone:default public url: https://www.contoso.com
HTTP -> HTTPS : http://www.contoso.com zone:default public url: https://www.contoso.com
And having correspoinding IIS binding:
http://www.contoso.com:*:80 (http)
*:443 (https)
In most of the cases this works fine. like
http://www.contoso.com
http://www.contoso.com/subsite
http://www.contoso.com/pages/home.aspx
but the problem happens when you try to land a one of the default layout pages ,
For example that you have sending a workflow emails pointing an item in a library
with querystrings:
http://www.contoso.com/SubSite/Lists/TestList/DispForm.aspx?ID=1
&Source=http%3A%2F%2Fwww%2Econtoso%2Ecom%2FSub1%2FLists%2FTestSub%2FAllItems%2Easpx
&ContentTypeId=0x0100AFA0B78F421E78408D29FBEA2D5EF4F9
Unfortunately this doesn’t work as expected , Either you can get 404 not found or the related page loads as http instead of https (depends on how you configure bindings on IIS). Well this is a production design problem that we can not fix at that moment.
Valid for all SharePoint versions (2013,2016,2019)
Suggested solution:
A simple workaround is using another dummy IIS site with binding that intercepting all port 80 requests with host header of your site (www.contoso.com)
and use HTTPRedirect functionality (module) on IIS to redirect to correct IIS site as HTTPS:
Complex Solution:
That you may use URLRewrite module.