SSL Off Box Termination not Working on MOSS 2007<p align=left><font face=Arial size=2></font> </p> <p>I have a BIG-IP F5 load balancer that also handles off box SSL termination.  I have a web server farm, set up accordingly:</p> <p align=left> </p><font size=2> <p>SSL resides on the F5. </p> <p>User talks with the F5 on port 443 (HTTPS. User never talks directly to MOSS web servers. </p> <p>F5 talks to the MOSS web servers on regular port 80 (HTTP). </p> <p> </p> <p>user -&gt; HTTPS -&gt; F5 -&gt; HTTP -&gt; MOSS web servers</p> <p align=left></font> </p> <p align=left>I set up AAM using the instructions for <a title="http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx" href="http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx">http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx</a> and while this worked on an ISA reverse proxy scenario, it does NOT work for the above F5 scenario.</p> <p align=left> </p> <p align=left>Symptoms:  Most things work fine.  However, whenever I try to create a list or library based on a list template, I get the following error:</p> <p align=left> </p> <p align=left><span id="ctl00_PlaceHolderMain_LabelMessage">Object reference not set to an instance of an object.   at ASP._layouts_new_aspx.OnLoad(EventArgs e) <br>   at System.Web.UI.Control.LoadRecursive() <br>   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</span> </p> <p align=left> </p> <p align=left>When I go around the F5 and hit the web server(s) individually, I am able to create lists/libraries without seeing the above error.</p> <p> </p> <p align=left>Any help resolving this issue would be appreciated.</p> <p align=left> </p> <p align=left>Thanks,</p> <p align=left>Yoshio</p>© 2009 Microsoft Corporation. All rights reserved.Fri, 17 Jul 2009 08:54:48 Z7f64d698-c412-4427-897b-35fb1fce7e75http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#7f64d698-c412-4427-897b-35fb1fce7e75http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#7f64d698-c412-4427-897b-35fb1fce7e75Y Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007<p align=left><font face=Arial size=2></font> </p> <p>I have a BIG-IP F5 load balancer that also handles off box SSL termination.  I have a web server farm, set up accordingly:</p> <p align=left> </p><font size=2> <p>SSL resides on the F5. </p> <p>User talks with the F5 on port 443 (HTTPS. User never talks directly to MOSS web servers. </p> <p>F5 talks to the MOSS web servers on regular port 80 (HTTP). </p> <p> </p> <p>user -&gt; HTTPS -&gt; F5 -&gt; HTTP -&gt; MOSS web servers</p> <p align=left></font> </p> <p align=left>I set up AAM using the instructions for <a title="http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx" href="http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx">http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx</a> and while this worked on an ISA reverse proxy scenario, it does NOT work for the above F5 scenario.</p> <p align=left> </p> <p align=left>Symptoms:  Most things work fine.  However, whenever I try to create a list or library based on a list template, I get the following error:</p> <p align=left> </p> <p align=left><span id="ctl00_PlaceHolderMain_LabelMessage">Object reference not set to an instance of an object.   at ASP._layouts_new_aspx.OnLoad(EventArgs e) <br>   at System.Web.UI.Control.LoadRecursive() <br>   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</span> </p> <p align=left> </p> <p align=left>When I go around the F5 and hit the web server(s) individually, I am able to create lists/libraries without seeing the above error.</p> <p> </p> <p align=left>Any help resolving this issue would be appreciated.</p> <p align=left> </p> <p align=left>Thanks,</p> <p align=left>Yoshio</p>Mon, 19 Nov 2007 17:08:00 Z2007-11-28T20:49:16Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#bbd720ae-889f-4318-984f-85f24b49786dhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#bbd720ae-889f-4318-984f-85f24b49786dTroy Starr [MSFT]http://social.technet.microsoft.com/Profile/en-US/?user=Troy%20Starr%20%5bMSFT%5dSSL Off Box Termination not Working on MOSS 2007<p>Hi Yoshio -</p> <p align=left> </p> <p align=left>To better understand your environment, could you include the output of the following stsadm.exe command?</p> <p align=left> </p> <p align=left>stsadm.exe -o enumalternatedomains</p> <p align=left> </p> <p align=left>Feel free to obfuscate the URLs that are listed, although try to keep the protocol scheme and port numbers the same, i.e. <a title="https://www.contoso.com:1234" href="https://www.contoso.com:1234">https://www.contoso.com:1234</a> --&gt; <a title="https://www.foo.com:1234" href="https://www.foo.com:1234">https://www.foo.com:1234</a>.</p> <p align=left> </p> <p align=left>Also, is this just with custom list templates or is it also with the out-of-box list types such as Announcements, Document Library, etc.?  Does the error occur when selecting the list template from the _layouts/create.aspx page or when clicking the Create button on the _layouts/new.aspx page?</p> <p align=left> </p> <p align=left>- Troy Starr [MSFT]</p> <p align=left><font face=Arial size=2></font> </p>Tue, 27 Nov 2007 04:20:19 Z2007-11-27T04:20:19Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#3aadd8fd-fa05-4da4-8b3d-cf7d6db2b835http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#3aadd8fd-fa05-4da4-8b3d-cf7d6db2b835Y Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007<p>I am in the process of collecting the diagnostic information you requested. </p> <p align=left> </p> <p align=left>I did not try creating a custom list; the error happens when trying to create a list from an out-of-the-box type, e.g. Contacts, Announcements, Discussions, etc.  Strangely enough, I can create sites though.  The error occurs on line 23 when clicking the Create button on the _layouts/new.aspx page.</p> <p align=left> </p> <p align=left>Yoshio</p> <p align=left><font face=Arial size=2></font> </p>Tue, 27 Nov 2007 16:15:02 Z2007-11-27T16:15:02Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#9d29df38-c862-4134-9991-55cb6feb16c9http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#9d29df38-c862-4134-9991-55cb6feb16c9Y Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007<p align=left><font face=Arial size=2></font> </p> <p><a title="http://moss:80" href="http://moss:80">http://moss:80</a> --&gt; <a title="http://moss:80" href="http://moss:80">http://moss:80</a>   (Default) Load balanced URL</p> <p align=left><a title="https://moss.contoso.com:80" href="https://moss.contoso.com:80">https://moss.contoso.com:80</a> --&gt; <a title="https://moss.contoso.com:80" href="https://moss.contoso.com:80">https://moss.contoso.com:80</a>  (Intranet zone)</p> <p align=left><a title="http://portal.contoso.com:80" href="http://portal.contoso.com:80">http://portal.contoso.com:80</a> --&gt; <a title="https://moss.contoso.com:80" href="https://moss.contoso.com:80">https://moss.contoso.com:80</a> (Intranet zone)</p>Tue, 27 Nov 2007 17:12:15 Z2007-11-27T17:12:15Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#c03d5bf5-478f-4f60-ad03-6152019e5b3dhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#c03d5bf5-478f-4f60-ad03-6152019e5b3dY Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007<p align=left><font face=Arial size=2>FYI, this is BIG-IPs F5 support engineers response to the issue.  Perhaps the detail will help troubleshoot the issue:</font></p> <p align=left> </p> <p align=left>As per our conversation,<strong><u> this does not appear to be an error specific to the BigIP</u></strong>.  I've looked through the packet traces you sent me, and have seen the following behavior.  I use the following shorthand:<br><br>C  =  Client<br>S  =  Server<br>B  =  BigIP<br>Thus, C&gt;S would be from Client to Server, and so on.<br>Each Line begins with the Frame Number in the dump where the packet is encountered.<br><br>To begin with, let's look at a working connection, over http port 80, direct to the server.  This is detailed in dump2:<br><br>336 C&gt;S  POST /_layouts/new.aspx  NTLMSSP_NEGOTIATE<br>368 S&gt;C  HTTP/1.1 401 Unauthorized  NTLMSSP_CHALLENGE<br>372 C&gt;S  POST /_layouts/new.aspx  NTLMSSP_AUTH + Creds<br>376 S&gt;C  HTTP/1.1 302 Found <a title="http://moss.ttx.com/Lists/test33/AllItems.aspx/r/n" href="http://moss.ttx.com/Lists/test33/AllItems.aspx/r/n">http://moss.ttx.com/Lists/test33/AllItems.aspx\r\n</a><br>377 C&gt;S  GET /Lists/test33/AllItems.aspx  NTLMSSP_NEGOTIATE<br>379 S&gt;C  HTTP/1.1 401 Unauthorized  NTLMSSP_CHALLENGE<br>381 C&gt;S  GET /Lists/test33/AllItems.aspx  NTLM_AUTH + Creds<br>393 S&gt;C  HTTP/1.1 200 OK<br><br>The Client begins the exchange by sending a POST to new.aspx with no post data attached; it appears to be a dummy to start up the NTLM authentication.  The Server responds with a 401 and the NTLM Challenge.  The client then POSTs again, this time with the AUTH credentials and the full post data.  Once the server receives and processes the post data, it sends a 302 Redirect to AllItems.aspx (fairly common behavior for a web-app), the two Auth again, and we're left with a 200 Ok and success.<br><br>Now, when we connect through the BigIP, the following occurs.  First, the Client tries to connect to the Virtual Server on the BigIP on http port 80:<br><br>C&gt;B  POST /_layouts/new.aspx  NTLMSSP_NEGOTIATE<br>B&gt;C  HTTP/1.1 302 Found <a title="https://moss.ttx.com/_layouts/new.aspx" href="https://moss.ttx.com/_layouts/new.aspx">https://moss.ttx.com/_layouts/new.aspx</a><br><br>The refering page specifically directs the client to POST to http.  However, we're trying to do everything via https, hence the iRule designed to redirect all http requests to https.  Now, in dump1, on https 443, from the Client, through the BigIP to the Server (BigIP does not alter the packets in any way):<br><br>14 C&gt;S  GET /_layouts/new.aspx  NTLMSSP_NEGOTIATE<br>17 S&gt;C  HTTP/1.1 401 Unauthorized  NTLMSSP_CHALLENGE<br>18 C&gt;S  GET /_layouts/new.aspx  NTLMSSP_AUTH + Creds<br>20 S&gt;C  HTTP/1.1 200 OK  Error Page<br><br>As you can see, upon receiving the 302 from the BigIP iRule, the Client switched methods from POST to GET.  It starts to NTLM Auth with the server, but because it's now a GET operation, the post data the server is expecting is never sent, resulting in the application generating an Error Page.<br><br>Per the Status Code definitions in RFC 2616 at <a title="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html</a>, the following is stated of 302:<br><br>&quot;10.3.3 302 Found<br><br>The requested resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client SHOULD continue to use the Request-URI for future requests. This response is only cacheable if indicated by a Cache-Control or Expires header field.<br><br>The temporary URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s).<br><br>If the 302 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.&quot;<br><br>It would appear that the user agent, rather than ask the user for confirmation, just defaults to a GET method upon receiving a 302 Redirect,<u><strong> thus complying with the RFC</strong></u>.  So, the situation here is that we're attempting to set up an implementation that offloads the SSL to the load balancer, but the Application is still sending http links.  With normal GETs this would not be a problem, as the BigIP can redirect them to https, but in this specific case, a redirect won't work because of the behavior of the browser.<br><br>The simplest solution in this case would be for the <strong><u>application to send it's links either relative, or hardcoded https</u></strong>.  This would <strong><u>prevent any need to send redirects to the client</u></strong>, as the public-facing connection will stay encrypted from start to finish. <br></p>Tue, 27 Nov 2007 17:34:52 Z2007-11-27T17:34:52Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#ad3b80ac-9740-456c-8536-e8122f9808e0http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#ad3b80ac-9740-456c-8536-e8122f9808e0Troy Starr [MSFT]http://social.technet.microsoft.com/Profile/en-US/?user=Troy%20Starr%20%5bMSFT%5dSSL Off Box Termination not Working on MOSS 2007<p align=left>Hi Yoshio -</p> <p align=left> </p> <p align=left>There's a high probably that your AAM rules do not match your F5 BIG-IP configuration, resulting in the incorrect links and the error.  Specifically, the F5 engineer's comment that their iRule was fixing up an http:// link in the HTTP 302 redirect to become an https:// link.  This shouldn't be necessary if AAM's configuration matched your BIG-IP configuration.</p> <p align=left> </p> <p align=left>Without seeing the output of stsadm.exe -o enumalternatedomains, it's a little tricky for me to determine what the cause is for sure, but here are some suggestions...</p> <ol> <li> <div align=left>Ensure that your public URL for a zone is the URL that end users are typing in, i.e. <a title="https://moss.ttx.com" href="https://moss.ttx.com">https://moss.ttx.com</a>.  Note that this is not on port 80, but port 443.  I suspect that you already have this properly configured.</div> <li> <div align=left>Ensure that you've added an internal URL for the same zone is the URL of the request that BIG-IP is forwarding to the SharePoint server.  I suspect that this is where the problem is.  You probably already have the protocol scheme (http) and port number (80) of the internal URL properly configured.  However, you may not have the hostname properly configured since BIG-IP may or may not be forwarding the original HTTP HOST header.  If possible, run a packet capture between the BIG-IP and the SharePoint server.  In the HTTP request, note the destination TCP port (probably 80) and the HTTP HOST header.  The value of the host header should match the hostname of the internal URL and the destination TCP port should match the port number of the internal URL.</div></li></ol> <p align=left>- Troy Starr [MSFT]</p>Wed, 28 Nov 2007 02:07:19 Z2007-11-28T20:49:16Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#32f3ffab-2f89-4f0d-8e75-97737bcc804bhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#32f3ffab-2f89-4f0d-8e75-97737bcc804bY Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007<p> </p> <p align=left><font face=Arial size=2></font> </p>Wed, 28 Nov 2007 15:22:32 Z2007-11-28T15:22:32Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#02da62f7-f4cc-48fb-a841-b489d6da2c7ehttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#02da62f7-f4cc-48fb-a841-b489d6da2c7eY Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007<p>Wait, the Internal URLs have to be what MOSS expects, so they must all be <a title="http://xxx.xxx.xxx" href="http://xxx.xxx.xxx">http://xxx.xxx.xxx</a>  Only the Outbound URL will have <a title="https://xxx.xxx.xxx," href="https://xxx.xxx.xxx,">https://xxx.xxx.xxx,</a> I gather.</p> <p align=left> </p> <p align=left>So just have one Zone, say Default, and have Inbound URLs <a title="http://xxx.xxx.xxx" href="http://xxx.xxx.xxx">http://xxx.xxx.xxx</a> and do I need to set up an Internal URL for each server on the farm as well?</p> <p align=left><font face=Arial size=2></font> </p>Wed, 28 Nov 2007 16:15:57 Z2007-11-28T16:15:57Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#65937c10-a6a2-4dac-b38f-83c9e86d72f5http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#65937c10-a6a2-4dac-b38f-83c9e86d72f5Y Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007<p align=left><font face=Arial size=2></font> </p> <p>Ok, I think I figured this out.</p> <p align=left> </p> <p align=left>Create the site collection using a different DNS entry, say <a title="http://portal.contoso.com" href="http://portal.contoso.com">http://portal.contoso.com</a>, this will be the Default zone.</p> <p align=left> </p> <p align=left>Now, create a new zone, Intranet, that looks like this:</p> <p align=left> </p> <p align=left><a title="http://moss.contoso.com" href="http://moss.contoso.com">http://moss.contoso.com</a> -&gt;  <a title="https://moss.contoso.com" href="https://moss.contoso.com">https://moss.contoso.com</a> (port 443)</p> <p align=left><a title="http://web1.contoso.com" href="http://web1.contoso.com">http://web1.contoso.com</a> -&gt; <a title="https://moss.contoso.com" href="https://moss.contoso.com">https://moss.contoso.com</a> (port 443)</p> <p align=left><a title="http://web2.contoso.com" href="http://web2.contoso.com">http://web2.contoso.com</a> -&gt; <a title="https://moss.contoso.com" href="https://moss.contoso.com">https://moss.contoso.com</a> (port 443)</p> <p align=left> </p> <p align=left>I'll write back once I can give this a try.</p> <p align=left> </p> <p align=left> </p>Wed, 28 Nov 2007 16:53:17 Z2007-11-28T16:53:17Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#acb93bde-dcf8-4fef-a684-c5cb5893d1fdhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#acb93bde-dcf8-4fef-a684-c5cb5893d1fdY Kurtzhttp://social.technet.microsoft.com/Profile/en-US/?user=Y%20KurtzSSL Off Box Termination not Working on MOSS 2007Got it working.  Thanks to Troy Starr for his guidance.  Hopefully others will be able to find this solution via a search engine and avoid the issues I did. <p align=left><font face=Arial size=2></font> </p>Wed, 28 Nov 2007 17:49:10 Z2007-11-28T17:49:10Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#28ea0fa5-ae6c-4b46-b334-45bdbb5c0166http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#28ea0fa5-ae6c-4b46-b334-45bdbb5c0166Julien C_http://social.technet.microsoft.com/Profile/en-US/?user=Julien%20C_SSL Off Box Termination not Working on MOSS 2007<p>Hi Y Kurtz,</p> <p align=left> </p> <p align=left>I am in the exact same configuration as you, and I can't make it work.</p> <p align=left>There is something I don't understand in what you said, it is :</p> <p align=left> <div class=quote> <table width="85%"> <tbody> <tr> <td class=txt4> <strong>Y Kurtz wrote:</strong></td></tr> <tr> <td class=quoteTable> <table width="100%"> <tbody> <tr> <td class=txt4 valign=top width="100%"> <p></p> <p align=left>Create the site collection using a different DNS entry, say <a title="http://portal.contoso.com" href="http://portal.contoso.com/">http://portal.contoso.com</a>, this will be the Default zone.</p> <p></p></td></tr></tbody></table></td></tr></tbody></table></div> <p></p> <p>What do you mean by different DNS entry. I already have a Web Application, I need to extend it, and what do I change, the &quot;host header&quot; or the URL?</p> <p align=left> </p> <p align=left>Hope you are still registered to this thread :-)</p> <p align=left> </p> <p align=left>Thanks</p> <p align=left>Julien</p>Thu, 13 Mar 2008 16:18:15 Z2008-03-13T16:18:15Zhttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#4158ce03-aef6-431c-b8f1-9a04db248cdahttp://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/7f64d698-c412-4427-897b-35fb1fce7e75#4158ce03-aef6-431c-b8f1-9a04db248cdaAra Chttp://social.technet.microsoft.com/Profile/en-US/?user=Ara%20CSSL Off Box Termination not Working on MOSS 2007Hello Guys,<br/><br/>I am into same situation.. still not clear on the solution..<br/><br/>Hope to get more inputs on fixing the issue... <br/><br/>Thanks<br/><br/>AraFri, 17 Jul 2009 08:54:47 Z2009-07-17T08:54:47Z