Configure SSL for SharePoint 2013
In this tutorial I will show you how to configure SSL for SharePoint 2013.
Prerequisites:
- IIS 8
- SharePoint 2013
- Windows Server 2012
- HTTP Web Application on Port 80
Steps:
- Create Self Signed Certificate on IIS 8
- Import Self Signed Certificate to SharePoint Certificate store
- Add Self Signed Certificate to trust management in Central Administration
- Configure IIS Binding
- Configure AAM
- Notes
- Issues
Note: Make sure to perform these steps with admin privileges.
Step 1: Create Self Signed Certificate on IIS 8
Open IIS Manager and then go to Server name and choose IIS Section “Server Certificates”
Click on Create Self-Signed Certificate... on Actions pane
Specify a name like “SharePointSelfSignedCert” and click Ok
Double click on this created Certificate and go to details Tab and click copy to File...
Click Next (Welcome…),
Select No, do not export the private key and click Next ,
Select DER encoded binary and click Next,
Specify the location for the certificate and Click Next and then finish (Imported).
Step 2: Import Self Signed Certificate to SharePoint Certificate store
Open Manage Compute Certificate on Windows Server 2012 and go to SharePoint node and then right click All tasks >> import …
Click Next and then specify the location of exported certificate in previous step and then Click Next,
Make sure Certificate store is SharePoint and Click Next and then finish (Exported)
Step 3: Add Self Signed Certificate to trust management in Central Administration
Go to Central Administration >> Security >> Manage Trust (to inform SharePoint to trust this certificate also).
And Click New
And a name and specify the location for the certificate and Click Ok.
Step 4: Configure IIS Binding
Go to IIS Manager and choose your web application and then click on Binding in Actions pane
Click Add..
Type: Https
SSL Certificate: SharePointSlefSignedCert (which created previously).
Click Ok.
Step 5: Configure AAM
Go Central Administration >> Alternate Access Mapping and Choose your web application
And click on Edit Public URLs and then add HTTPS URL
And Click Save.
Now try to brows your site with HTTPS URL
Notes:
- Don’t use Self-Signed Certification in production sites (you need to use commercial Certificates).
https://www.digicert.com/ssl-certificate-installation-microsoft-iis-7.htm - If you add the Self-Signed Certificate to Trusted Root Certification Authorities then Certification error will disappear .
- IIS 8 and windows server 2012 introduce New Feature Called “Server Name Indication-SNI” which allows an IIS 8 to host multiple SSL sites and certificates on a single IP Address based on Host Headers.
https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability - You can use URL Rewirte module in IIS 8 to redirect from HTTP to HTTPS or vice versa.
https://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module
https://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/ - SSL Certificates required for Federation Services.
- Test the SSL implementation using https://www.ssllabs.com/ssltest/ and make changes as in this article https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12
Issues:
Issue #1: Mixed HTTP and HTTPS Content
If you login with HTTPS URL and then redirect the user to HTTP , the browser will ask the user again to login with HTTP URL.
Fix:
Go To Central Administration
Open Alternate Access Mapping (AAM)
Select your will application from the dropdown menu on top right
Click on Edit Public URLs and remove HTTPS URL
Click on Add Internal URLs and add HTTPS URL and select the same zone as HTTP URL
Comments
Anonymous
January 20, 2013
Thanks Fady, Good Knowledge :)Anonymous
January 21, 2013
Good Post.Anonymous
January 23, 2013
Thanks FadiAnonymous
January 23, 2013
بارك الله فيك يا فادي، الموضوع اكثر من رائعAnonymous
April 13, 2013
good information good articel mounikasharepoint.blogspot.in/.../sharepoint-2010-and-sharepoint-2013.htmlAnonymous
June 02, 2013
Nice tutorial ! I'm stuck on step 3 when I open the certmgr ( I am using Windows Server 2008) it doesn't contain the node SharePoint. How to fix this?Anonymous
June 07, 2013
Make sure you open Certificates add on using Computer Account and not my user account.Anonymous
July 25, 2013
Great overview, thank you!Anonymous
November 10, 2013
Excellent Post. Thanks !!!Anonymous
November 11, 2013
great post - works perfectly apart from the apps :(Anonymous
November 13, 2013
Can one certificate used for multiple web applications?Anonymous
November 14, 2013
If It's a wildcard Certificate and all web applications share the same domain (*.abc.com) then you can configure them to use this certificate , but If It's not then you need A certificate for each web application and Dedicated IP address for each web application if It's not IIS 8 and Windows 2012. You can find more information in the following Ref: www.harbar.net/.../ssl.aspx www.iis.net/.../iis-80-server-name-indication-sni-ssl-scalabilityAnonymous
November 23, 2013
Very helpful thanksAnonymous
December 30, 2013
after I changed according to this article, I cann't access skydrive and newsfeed .how to solve this issue ?Anonymous
December 31, 2013
Hi Don_NJ , I don't think this issue related to SSL but try to check SharePoint Logs maybe you find something useful. Also try to run the below commands to enable OAuth authentication over HTTP $config = (Get-SPSecurityTokenServiceConfig)
$config.AllowOAuthOverHttp = $true
$config.Update()Anonymous
January 09, 2014
Hi Fadi, After performing all the steps as you mentioned, shouldn't I get prompted for authentication? Or does it happen only when SSL is bought from trusted CA and does not happen in Self Signed Certificate.Anonymous
January 10, 2014
No relation between SSL Certification and Authentication , check if your web application is enabled with anonymous access or not.Anonymous
January 19, 2014
In my opinion the AAM configuration is incorrect:
- You haven't extended the web application to "Internet" zone but you are setting it in AAM.
- The most secure URL should be for default zone because it is the one used for rendering the URLs if mapping is not found. If you want to switch the web application to SSL (without extending web app), provide mapping like this: Internal URL | Zone | Public URL http://sps2013 | Default | https://sps2013 https://sps2013 | Default | https://sps2013 This will cause that when you access your web application with either HTTP or HTTPS, the links in the web will all render with HTTPS. If you want to use also HTTP to access your web application you can extend it with different URL.
Anonymous
March 12, 2014
Thanks, this was very helpful!Anonymous
March 19, 2014
If anyone getting error on step 3 please use below powershell common $cert = Get-PfxCertificate -filepath "<Path of certifcate file with cer extension>" New-SPTrustedRootAuthority -Name "<Certifcate Friendly Name>" -Certificate $CertAnonymous
March 31, 2014
Hi, I am really lost and I need a little help. On step 4, when I am configuring IIS Binding, I do clic into textbox Type and put "https" and after I do not see in textbox SSL certificate my own certificate. I have done every previous steps. I have bought a certificate .crt and I began on step 2. The CA gave me two file,one is called "gs_intermediate_ca" and the other "STAR_dominio_com" and I have done this process with the two certificates and the result is the same. Thank very muchAnonymous
March 31, 2014
In step 1 : try to Complete Certificate Request instead of Create Self Signed Certificate so after you complete the wizard you will find your certificate list it under Server Certificates.Anonymous
April 01, 2014
Hi fadi, i'm about to purchase a individual ssl certificate for my sharepoint . The sharepoint is manage by an outsource vendor, my biggest concern is when SSL certificates is deploy, will it be any changes has to be done in the source code of the sharepoint application such as changing the link in the sourcecode from http to htpps. Because according to the vendor, it will takes a lot of change request in the sharepoint source code and they charge will unreasonable price. Supposedly SSL is just a communication between server and user right?Anonymous
April 01, 2014
The comment has been removedAnonymous
April 02, 2014
Contact your certificate vendor and explain the issue to him and maybe they will suggest to use wildcard certificate.Anonymous
April 03, 2014
Hi Dig Dang , No need to change anything from your source code because As you said SSL is just a communication matter and make to use hyphen urls , for example /pages/test.aspx and don't use http://url/pages/test.aspx.Anonymous
May 07, 2014
The comment has been removedAnonymous
June 25, 2014
it deosn't work with me, every time when i import certificate in AAM it gives me error that the certificate is password protected. i want to know why its showing this error. please help me on this problem.Anonymous
July 07, 2014
I'm about a year and a half late to this party, but I completely agree with the earlier response by "eXavier_777" (Mon, Jan 20 2014 7:48 AM) in that your AAMs are incorrect (and manually modified from Central Admin without extending the Web App, which is even worse because it will cause inconsistencies for SP). He is exactly correct, so to reiterate (and by that, I mean copy/paste what he wrote)... If you want to switch the web application to SSL (without extending web app), provide mapping like this: Internal URL | Zone | Public URL http://sps2013 | Default | https://sps2013 https://sps2013 | Default | https://sps2013 This will cause that when you access your web application with either HTTP or HTTPS, the links in the web will all render with HTTPS. If you want to use also HTTP to access your web application you can extend it with different URL.Anonymous
July 24, 2014
I am getting error on step 3. When i import the certificate into AAM, it gives me error saying that certificate is password protected.Anonymous
August 01, 2014
bspender and eXavier_777, Specifically how do you confgure the mappings that way? I can't figure out how to get mine to look like that using the web UI.Anonymous
August 21, 2014
I ve created a site and configured it with all the self signed certificates..everything just works fine..except for the last step...the https site doesnt open..it shows an error - HTTP unauthorized 404,,,,though i've logged in as the admin!!! pls help.Anonymous
August 31, 2014
Hi, Nice post. Can someone tell me, how to configure https for the web application that is running on different port than 80 and configure AAM?Anonymous
November 05, 2014
I am liking your post so far, came in off the Bing and am about to attempt this.Anonymous
November 05, 2014
The comment has been removedAnonymous
November 19, 2014
Any thoughts on this note . Note: strongly recommend to use Central Administration or PowerShell to extend the web application with port HTTPS instead of doing the manual HOST name entry IIS by adding a new URL in AAM like the below method . Once you get the second IIS website , you can configure the SSL ................. blogs.msdn.com/.../how-to-enable-ssl-on-a-sharepoint-web-application.aspxAnonymous
June 15, 2015
HI i want to change our internet facing existing HTTP web application to HTTPS. so its already sharepoint 80 application on default zone. so if i extend web application to 443 port , how i will configure webapplication to open default on HTTPSAnonymous
June 17, 2015
HI Fadi, i did all steps and when i type my site with https in browser it working good, but how i open my site by default with https protocal, when i type mysite.com in browser it should open with httpsAnonymous
January 20, 2016
The comment has been removed