{"id":26,"date":"2008-09-02T19:06:17","date_gmt":"2008-09-03T03:06:17","guid":{"rendered":"http:\/\/sharepoint.bryanfriedman.com\/index.php\/2008\/09\/02\/alphabet-soupssl-aam-f5-oh-my\/"},"modified":"2009-01-29T23:01:05","modified_gmt":"2009-01-30T07:01:05","slug":"alphabet-soupssl-aam-f5-oh-my","status":"publish","type":"post","link":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/2008\/09\/02\/alphabet-soupssl-aam-f5-oh-my\/","title":{"rendered":"Alphabet Soup&#8230;SSL, AAM, F5, Oh My!"},"content":{"rendered":"<p>As much as I thought I understood how Alternate Access Mappings work in SharePoint, it turns out I that pretty much had no idea.  At work, we have been trying trying to configure a SharePoint web application to sit behind a load balancer (<a href=\"http:\/\/www.f5.com\/products\/big-ip\/product-modules\/local-traffic-manager.html\" target=\"_blank\">BIG-IP F5 Local Traffic Manager<\/a>) with SSL enabled on the front side but terminated at the load balancer.  We set up the F5 with an SSL profile and certificate on the client side but not on the server side.  Basically we want HTTPS (port 443) on the front side, and HTTP (port 80) on the back side.  The virtual server configuration looks like this:<\/p>\n<p><a href=\"https:\/\/archive.bryanfriedman.me\/sharepoint\/wp-content\/uploads\/2008\/09\/f5setup.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/archive.bryanfriedman.me\/sharepoint\/wp-content\/uploads\/2008\/09\/f5setup-thumb.jpg\" style=\"border-width: 0px\" alt=\"f5setup\" border=\"0\" height=\"484\" width=\"362\" \/><\/a><\/p>\n<p>As for the SharePoint configuration, we were trying to just create the web application as follows:<\/p>\n<p><a href=\"https:\/\/archive.bryanfriedman.me\/sharepoint\/wp-content\/uploads\/2008\/09\/wrongway.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/archive.bryanfriedman.me\/sharepoint\/wp-content\/uploads\/2008\/09\/wrongway-thumb.jpg\" style=\"border-width: 0px\" alt=\"wrongway\" border=\"0\" height=\"484\" width=\"298\" \/><\/a><\/p>\n<p>Well, the worst part about this is that it <em>mostly<\/em> worked.  At first I thought everything was all good, but as we started to use the application, we noticed three things, the third of which was the most troubling:<\/p>\n<ol>\n<li>Response never returning from Ctrl-K user lookup<\/li>\n<li>Warnings around going to and from non-secure content<\/li>\n<li>Failure when creating lists!!<\/li>\n<\/ol>\n<p>So, it was back to the drawing board.  First, I found <a href=\"http:\/\/forums.technet.microsoft.com\/en-US\/sharepointadmin\/thread\/7f64d698-c412-4427-897b-35fb1fce7e75\/\" target=\"_blank\">this discussion post<\/a> which ultimately led me to the Holy Grail of Alternate Access Mappings postings.  Without finding Troy Starr&#8217;s post entitled <a href=\"http:\/\/blogs.msdn.com\/sharepoint\/archive\/2007\/03\/06\/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx\" target=\"_blank\"><em>What every SharePoint administrator needs to know about Alternate Access Mappings (Part 1 of 3)<\/em><\/a>, I don&#8217;t think we ever would have been able to get the web application configured correctly.  (His <a href=\"http:\/\/blogs.msdn.com\/sharepoint\/archive\/2007\/03\/19\/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-2-of-3.aspx\" target=\"_blank\">second<\/a> and <a href=\"http:\/\/blogs.msdn.com\/sharepoint\/archive\/2007\/04\/18\/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-3-of-3.aspx\" target=\"_blank\">third<\/a> parts are pretty helpful in general as well.)<\/p>\n<p>So following his instructions, and his fabulous Alternate Access Mappings screenshots, we created a web application, extended it, and added the additional AAM so the table ended up looking something like this:<\/p>\n<table border=\"1\" cellpadding=\"2\" cellspacing=\"0\" width=\"550\">\n<tr>\n<td valign=\"top\" width=\"256\"><strong>Internal URL<\/strong><\/td>\n<td valign=\"top\" width=\"83\"><strong>Zone<\/strong><\/td>\n<td valign=\"top\" width=\"207\"><strong>Public URL for Zone<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"256\"><font color=\"#0000ff\">http:\/\/bryanfriedman<\/font><\/td>\n<td valign=\"top\" width=\"83\"><font color=\"#000000\">Default<\/font><\/td>\n<td valign=\"top\" width=\"209\"><font color=\"#0000ff\">http:\/\/bryanfriedman<\/font><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"256\"><font color=\"#0000ff\">https:\/\/portal.bryanfriedman.com<\/font><\/td>\n<td valign=\"top\" width=\"83\"><font color=\"#000000\">Internet<\/font><\/td>\n<td valign=\"top\" width=\"210\"><font color=\"#0000ff\">https:\/\/portal.bryanfriedman.com<\/font><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"256\"><font color=\"#0000ff\">http:\/\/internal.dmz.bryanfriedman.com<\/font><\/td>\n<td valign=\"top\" width=\"83\"><font color=\"#000000\">Internet<\/font><\/td>\n<td valign=\"top\" width=\"211\"><font color=\"#0000ff\">https:\/\/portal.bryanfriedman.com<\/font><\/td>\n<\/tr>\n<\/table>\n<p>It felt like overkill to me, but it ended up working like a charm.  There was just one more step&#8230;the load balancer.<\/p>\n<p>Now instead of an F5 load balancer, Troy&#8217;s article described how to use a reverse proxy (ISA Server 2006) configuration in front of the web application.  However, I knew this could work the same way as long as we could rewrite the host header value at the F5.  Being that I am not exactly a network engineer, I had to poke around a little to find out how to do this, but I eventually found the following code for an <a href=\"http:\/\/devcentral.f5.com\/Default.aspx?tabid=75\" target=\"_blank\">iRule<\/a>:<\/p>\n<blockquote><p><tt>when HTTP_REQUEST {<br \/>\nif { [HTTP::host] equals \"portal.bryanfriedman.com\" }<br \/>\n<\/tt><tt>   {<br \/>\nHTTP::header replace Host \"internal.dmz.bryanfriedman.com\"<br \/>\n}<br \/>\nelse { }<br \/>\n}<\/tt><\/p><\/blockquote>\n<p>Once I had the network guys plug this iRule into the F5 configuration, everything started working like magic.  The three problems we saw before disappeared and all requests and responses appeared to be working as expected.  Three cheers for Alternate Access Mappings!<\/p>\n<p>Now I can&#8217;t say I fully understand how AAMs work, but I definitely understand it better than I did before, and now I have more knowledge of F5s than I ever really wanted to.  Anyway, hopefully the next person who tries to do something like this won&#8217;t run into the same problem because they will find this post (or Troy Starr&#8217;s post) and avoid my initial mistakes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As much as I thought I understood how Alternate Access Mappings work in SharePoint, it turns out I that pretty much had no idea. At work, we have been trying trying to configure a SharePoint web application to sit behind a load balancer (BIG-IP F5 Local Traffic Manager) with SSL enabled on the front side [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-26","post","type-post","status-publish","format-standard","hentry","category-administration"],"_links":{"self":[{"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/posts\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":0,"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"wp:attachment":[{"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.bryanfriedman.me\/sharepoint\/index.php\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}