Implementing SSL with PowerShell for existing SharePoint 2013 farm – Part 6

We’re almost there. In this 6th part of the series I focus on re-configuring SharePoint services to use the new HTTPS addresses. Think of Search and User Profiles.

User Profiles

Let’s start with the User Profile service. The location of the MySite Host has changed. It’s now. This is configured in one place luckily, so you can have it changed using Central Administration, Manage Service Applications, your User Profile Service Application and then under MySite Settings, click Setup My Sites:


To do this by PowerShell:

$newURL = ""

$context = Get-SPServiceContext("")
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)

Write-Host -f Yellow Current location My Site Host:
Write-Host `t $upm.MySiteHostUrl

$upm.MySiteHostUrl = $newURL

#Get a refreshed UserProfileManager object to retrieve the new value
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)

Write-Host -f Green New location My Site Host:
Write-Host `t $upm.MySiteHostUrl


Note: in order to run this script successfully, the account running the script needs to have Full Control permissions on the User Profile Service Application.


Now I have changed all URLs to any content for search, I can update the Search index. This still contains all old HTTP URLs.

$ssa = Get-SPEnterpriseSearchServiceApplication

$sources = Get-SPEnterpriseSearchCrawlContentSource -SearchApplication $ssa

$sources | % {

    $source = $_
    $startAddresses = ""
    $source.StartAddresses | % { $startAddresses += $_.ToString() + "," }
    $startAddresses = $startAddresses.SubString(0, $startAddresses.Length-1).Replace("http://", "https://").Replace("sps3://", "sps3s://")
    Write-Host -f White $source.Name
    Write-Host $source.StartAddresses
    Write-Host -f yellow "changing to: "$startAddresses
    Set-SPEnterpriseSearchCrawlContentSource $source -StartAddresses $startAddresses


Doing a full crawl of all content sources should do the trick. Start with the content source Local People Search.

$ssa = Get-SPEnterpriseSearchServiceApplication
$source = Get-SPEnterpriseSearchCrawlContentSource "Local People Search" -SearchApplication $ssa

Other services

Besides User Profile and Search service, there could be more services for you to check and modify. For example, Excel services. There is a configuration for Trusted File Locations.


By default, there is an address for http://, meaning the complete SharePoint environment is trusted. You should change this to https://

$sa = Get-SPExcelServiceApplication

$locations = Get-SPExcelFileLocation -ExcelServiceApplication $sa

$locations | % {

    $location = $_
    $address = $location.Address.Replace("http://", "https://")
    Write-Host -f White Trusted location : $location.Identity
    Write-Host $location.Address
    Write-Host -f yellow "Changing to: "$address
    Set-SPExcelFileLocation $location -ExcelServiceApplication $sa -Address $address



A lot can be achieved using PowerShell, even for services. After changing the webapplications and site collections to use HTTPS, this post described what and how to change services that were configured to use HTTP.

Don’t forget to download your scripts…