Updated: Enabling SSL/HTTPS on Team Foundation Server 2010 RTM

Not too long ago I posted a set of instructions on how to setup SSL/HTTPS for TFS 2010 RTM (here).  But it had a few short comings, ie. Report Server was not over SSL and TFS had no idea the Sharepoint was running over SSL either or even the FQDN I was using for the site.  Since then I’ve been hacking away at trying to fix those short comings and as far as I can tell everything seems to be functioning now.  Instead of completely editing the old post, I’ll just give a new straight forward set of instructions.

Prerequisites:

  1. Have the basic TFS install completed along with the configuration.
  2. FQDN you would like to use, for this example I will be using “mycompany.com”
  3. A certificate from a Microsoft Certificate Services Server (this cannot be a self-signed certificate because Visual Studio Team Explorer will not accept it)
    To request the certificate from Microsoft Certificate Services use the following steps:

  • Open up the IIS Manager and select the server
  • Select “Server Certificate”
  • In the Actions pane > select “Create Domain Certificate”
  • Follow the steps in the “Create Certificate” dialog.

Here is some basic information I’ll be using during this guide:

Server Name: tfs-server
FQDN: mycompany.com
Certificate Name: tfs-cert

 

Steps:

Configure Sharepoint:
  • Open up SharePoint Administrator
  • Navigate to the “Operations” tab  
  • Select “Alternate Access Mappings”sharepoint1 
  • Click on “Edit Public URLs”sharepoint2
  • Select the “Default Web Site”sharepoint3 sharepoint4 sharepoint5
  • Change the “Default” from “http://tfs-server” to “https://mycompany.com”sharepoint6
  • Click “Save”
  • That should be it with Sharepoint Administrator.
  • One last thing is that we need to test the site.  When I did the initial configuration I was unable to navigate to the Sharepoint site from the server it self but was able to from client machines.  The site would prompt me for credentials over and over but would not let me into the site.  So just open a browser from the server and try to navigate to “https://mycompany.com/sites/defaultcollection”.  If that doesn’t work then you need to follow the next step, otherwise you are complete.
  • I came across this blog post that describes the very problem.  In the end I had to disable the loopback check, but different solutions may solve your problem.
Configure Reporting Services:
  • Open up “Reporting Services Configuration Manager”
  • Select “Web Service URL”
  • In the right panel, select “tfs-cert” as the SSL Certificate and 443 as the SSL Port.reporting1
  • Select Apply
  • Select “Report Manager URL”
  • In the right panel, select “Advanced”reporting2
  • In the “Advanced Multiple Web Site Configuration” window that pops up click “Add” under the “Multiple SSL Identities for Report Manager”reporting3
  • The “Add a Report Manager SSL Binding” window will pop-up, just select “tfs-cert” and it will automatically get the URL from the certificate.reporting4
  • Click “OK” until you get back to the main Reporting Services Configuration window.
  • That should be it for the Reporting Services Configuration.
Configure IIS:
  • Open IIS Manager, you should see something similar to the image below in your left panel.
    iis1
  • Select “Default Web Site” and select “Bindings” in the Action Pane.iis2
  • Click “Add” in the “Site Bindings” pop-up.
  • Change the following values:
    Type: https
    Port: 443
    SSL Certificate: tfs-cert

    iis3

  • Click “Ok” in the Add Site Binding and “Close” in “Site Bindings”
  • You will need to perform the same steps for the “Team Foundation Server” website except use port 8088 instead of 443.
  • That will be it for IIS Manager.
Configure Firewall:

You will need to ensure that your firewall is allowing 443 and 8088 in.

Configure TFS
  • Open up “Team Foundation Server Administration Console”
  • Navigate to the "Application Tier"
  • In the right pane, select "Change URLs".
  • In the "Change URLs" pop up, change the Notification URL to “https://mycompany.com:8088/tfs"tfs
  • Click “Ok”, we are finished configuring the Application Tier.
  • Navigate to the “Sharepoint Web Applications”
  • In the right pane, select the “http://tfs-server” application and click “Change”tfs1
  • Change the values in the “Sharepoint Web Application Settings”tfs2
    Friendly Name: mycompany.com
    Web Application URL: https://mycompany.com
    Central Administration URL: http://tfs-server:17012
    Default Location: sites
  • Navigate to “Reporting” in the left pane.
  • In the right pane select “Edit”tfs3
  • The “Reporting” window will popup.  Select the “Reports” tab.
  • Select the “Populate URLs”, this will cause the drop downs in the tab to refresh with what the Report Server has configured.
    tfs4
  • Change the drop downs in the URL section to the https addresses that were created earlier.
    Web Service: https://mycompany.com/reportserver
    Report Manager: https://mycompany.com/reports
  • Once you click “Ok”, be sure to click “Start Jobs” in the Reporting pane.

Congratulations!  You have finished the configuration.  Enjoy!

 

Update (5/18/2010): Thanks to the comment by Jason, I have added an extra step to configure the Application Tier in the TFS Administration Console.

    Enabling SSL/HTTPS on Team Foundation Server 2010 RTM

    Update: I’ve been working on some of the issues from this guide and figured out a good portion of them.  Please take a look at my updated guide here.

    I’ve found lots of guides on the internet on setting up SSL/HTTPS on Team Foundation Server 2008, but not much on 2010 RTM.  It’s pretty much the same process but I had to figure a few things out differently because of IIS7 and just my personal preferences.

    First of all, if you are using Visual Studio 2008 you will need to make sure you have the following (doesn’t really have anything to do with enabling SSL/HTTPS, but you’ll need it to connect to TFS 2010 anyways):

    • Download and install the Visual Studio Team System 2008 Service Pack 1 Forward Compatibility Update for Team Foundation Server 2010 (Installer) found here.  Fun little name isn’t it?
    • Ensure that you’ve installed Visual Studio 2008 SP1 after installing TFS Team Explorer.
        You’ll first need two SSL certifications, one for SharePoint and one for TFS application layer.  It maybe possible to use one SSL certification but I like to have two so i can give each a different address.  Ex. mycompany.com and mycompanysource.com.  First I tried using two self-signed certificates but that didn’t work because Team Explorer doesn’t like self-signed certificates, but the certificate for SharePoint can use a self-signed certificate.  We used Microsoft Certificate Services to provide the certificate necessary for the TFS application layer.
        To request the certificate from Microsoft Certificate Services use the following steps:
    • Open up the IIS Manager and select the server
    • Select “Server Certificate”
    • In the Actions pane > select “Create Domain Certificate”
    • Follow the steps in the “Create Certificate” dialog.
      Once you have your two certificates, follow the next configuration steps:
    Configure IIS
    • Open IIS Manager and select the server
    • Expand the “Sites”, you should see a list similar to the following
      iismanager1
      Default Web Site = SharePoint Site
      Team Foundation Sever = TFS Application Layer
      SharePoint redirector = redirector for SharePoint (I’ll explain later)
    • Select the “Default Web Site”
    • In the Actions Pane select “Bindings…”
    • In the Site Bindings window, select “Add”, which will bring up the “Edit Site Binding” page.
      iismanager2
    • Select the following:
      Type: https
      IP Address: all unassigned
      Port: 443
      SSL certificate: the certificate you created for SharePoint
    • Click “Ok”, then “Close” in the “Site Bindings” window.
    • Perform the same steps with the “Team Foundation Server” site, except use port 8088 for the port and the certificate created for the TFS application layer.
    • Close IIS Manager, we are done with it.
    Configure Firewall
    • Open “Windows Firewall with Advanced Security”
    • Select ‘”Inbound Rules”
    • Find “Team Foundation Server TFSWebSite:8080”, right click and choose disable.
    • In the right Actions pane, select “New Rule”
    • In the “New Inbound rule wizard” fill the following:
      Type: Port
      TCP/UDP: TCP
      Specific local port: 8088
      Allow the Connection
      Domain,Private,Public
      Name: Name of your choice
    Configure SharePoint
    • Open up the SharePoint Administrator
    • Select the “Operations” tab, then under “Global Configuration” select “Alternate Access Mappings”
      sharepoint1
    • In the “Alternate Access Mappings” select “Edit Public URLs”
    • First select the “Alternate Access Mapping Collection” and choose the “Default Web Site” in the pop-up.
    • Fill in the default and Internet addresses.
      Default: http://servername (leave default alone)
      Internet: https://mycompanysource.com
    • Click “Save”

    At this point you should have SSL setup for both the TFS SharePoint sites and the TFS application layer.  In Team Explorer you should be able to add a server by entering “https://mycompanysource.com:8088/tfs” as the address.

    The only thing left to do is make the SharePoint sites a bit easier to access.  Right now you would have to access the SharePoint site by going to https://mycompany.com/tfs/defaultcollection, but wouldn’t it be nice to just type mycompany.com in the address bar and be redirected?  Once you complete these final steps you should be able to do just that.

    • Open up IIS manager.
    • Select your server and right click on “Sites” and choose “Add Web Site”
    • Fill in the following information:
      Site Name: “SharePoint Redirector”
      Physical Path: doesn’t matter i use c:\inetpub
      Binding: Leave as port 80 and defaults.
    • Click “Ok”
    • Select the redirector and in the main window double-click on “HTTP Redirect”
    • Check Redirect request to destination and fill in your target destination. i.e.. https://mycompany.com/sites/defaultcollection
    • Click “Apply” in the Actions Pane

    Ok that’s all I got for this post, today.  Enjoy your newly secured TFS server.

    Update (4/26/2010):  Apparently there is a little funny business with accessing the report server from the outside network.  Instead of using the FQDN to get to the report server it uses the computer name.  So outside the local network it doesn’t work from the SharePoint site.  There are some steps to get it working, but I can’t quite get SharePoint over SSL to work properly on the server itself resulting in some problems with the TFS configuration tool.

    First setting up SharePoint SSL slightly differently than I’ve stated above similar to the instructions here. Then the following steps are the issues.

    Part of the problem is that I cannot access https://mycompany.com/tfs/defaultcollection from the server itself, but I can access it from other computers.  I believe that because of this problem changing the configuration using TFS Administration Console is a problem.  Clicking on the Grant Access button

    tfs4

    Fill in the information for Url for Team Foundation Server : to https://mycompanysource:8088/tfs.  Then in the “SharePoint Web Application” select the https://.. site from the drop down.  When you click on ok I get an error message saying TFS cannot access the SharePoint site.

    tfs5

    Once this issue with the SharePoint SSL is resolved it should also resolve configuring Reporting Services for SSL, then modifying the configuration for TFS Administration Console for SSL reporting services.

    Configuring SSL for reporting services is pretty straight forward.

    Open up the Reporting Services Configuration Manager and go to the “Web Service URL”.  Configure the SSL Certificate and the SSL Port.

    reporting1

    So one problem is sort of holding up the whole issue with configuring the server to accept the reporting services over SSL.  Anyone have any ideas, I’m open to suggestions.

    Update (5/7/2010) : I’ve been working on some of the issues from this guide and figured out a good portion of them.  Please take a look at my updated guide here.

    Configuring Team Foundation Server Permissions for Small Groups

    Team Foundation Server (TFS) is a pretty good source control and process guidance tool, especially with the release of the latest version TFS 2010.  One benefit is that it allows extremely granular permissions which are great for large enterprise setups, but I work in a small group where everyone needs to have access to everyone’s files.  So it becomes sort of a pain because unless you add everyone into the administrators group you need to add permissions manually to everything.

    One thing to understand about TFS is that it is really 3 separate applications working together, TFS Application Layer, Microsoft SQL Server Reporting Services and Microsoft Sharepoint Services.  And since they don’t really talk with each other about permissions, these need to be granted individually to each application.

    I’ve come up with the following steps, even though they may not be best practices they work for my environment.  Before beginning I recommend setting up a security group that will contain all of your users that you wish to have access to the TFS server.

    TFS Application Layer Permissions
    • Open up the Team Foundation Server Administration Console
    • Expand Server Name > Application Tier > Team Project Collections
    • Select “Group Membership”
    • tfs-adminconsole1
    • In the “Global Groups on http://localhost:8080/tfs/defaultcollection” window click “New…” button.
    • In the “Create New Team Foundation Server Group” fill in “User” as “Group Name” and a Description if you choose.  And click “Ok”
    • tfs-adminconsole2
    • In the “Global Groups on http://localhost:8080/tfs/defaultcollection” window, select the newly created group and click the “Properties” button.
    • In the properties window add your users that you wish to have access to all projects.
    Sharepoint Permissions

    Sharepoint permissions need to be sort of granted individually for each project that you have.  But with the way I have it set up it should be slightly easier to manage.  All users are granted to the main site in Sharepoint.  Each project’s site is a sub site of the main site and can inherit the permissions from the main site.  The first part is granting permissions to the main site.

    • Log in to your Sharepoint site (most likely http://localhost/tfs/defaultcollection) as an administrator
    • Select “Site Action” > “Site Settings” > “Advanced Permissions”
    • In the permissions page you will want to add all of your users as contributors, this is where that security group will come in handy as well.

    The next step is for each project that you have going on, you need to set it to inherit permissions.

    • Once again log into your Sharepoint site.
    • Select the project you would like to change (url example http://localhost/tfs/defaultcollection/projectname)
    • Select “Site Action” > “Site Settings” > “Advanced Permissions”
    • In the permissions page select “Actions” > “Inherit Permissions”

    In the end permissions will be automatically updated if you edit the permissions on the main site or if you decided to setup the Active Directory group changing membership in the group.

    Report Server Permissions
    • Log in to your reporting services management site (usually http://localhost/reports)
    • Click on “Properties” > “New Role Assignment”
    • In the “New Role Assignment” screen, add your user (or security group) and select the “Browser” role.
    • reportingservices1

    Congratulations your permissions are now granted so everyone in your group can access all the Sharepoint sites and all the source control.