Fuse is a Microsoft Partner, based in Northampton. We help organisations of all sizes to maximise IT efficiencies through the use of Microsoft cloud computing solutions.
Publishing SharePoint Service Applications
We have two SharePoint farms, the first is used for the Intranet and team sites. The second farm is used for the public facing web site.
Both SharePoint farms have application servers which are underutilised as the number of users and the amount of content is quite low.
- 15 Users
- <10,000 documents
When editors were working on the publishing farm they would try and follow content unsuccessfully as the User Profile server was not provisioned, we also had a search server doing very little.
The plan was the streamline the SharePoint infrastructure by removing the application server from the publishing farm and allowing the publishing farm to use the search and application services from the intranet farm.
The first step was to create a trust between the two farms:
1. On the Web Servers on both farms open the SharePoint 2013 Management Shell
2. On the Intranet Farm run the following PowerShell command
$rootCert = (Get-SPCertificateAuthority).RootCertificate
$rootCert.Export("Cert") | Set-Content C:\Temp\IntranetFarmRoot.cer -Encoding byte
3. On the Publishing Farm run the following PowerShell command
$rootCert = (Get-SPCertificateAuthority).RootCertificate
$rootCert.Export("Cert") | Set-Content C:\Temp\ConsumingFarmRoot.cer -Encoding byte
$stsCert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate
$stsCert.Export("Cert") | Set-Content C:\Temp\ConsumingFarmSTS.cer -Encoding byte
4. Copy the certificate from C:\temp on the Intranet Farm to C:\temp on the Publishing farm
5. Copy the 2 certificates from C:\temp on the Publishing Farm to C:\temp on the Intranet farm
6. Run the following PowerShell command on the Publishing farm
$rootCert = (Get-SPCertificateAuthority).RootCertificate
$rootCert.Export("Cert") | Set-Content C:\Temp\PublishingFarmRoot.cer -Encoding byte
7. Run the following PowerShell command on the Intranet farm
$trustCert = Get-PfxCertificate C:\Temp\ConsumingFarmRoot.cer
New-SPTrustedRootAuthority IntranetFarm -Certificate $trustCert
$stsCert = Get-PfxCertificate c:\Temp\ConsumingFarmSTS.cer
New-SPTrustedServiceTokenIssuer WebPublishingFarm -Certificate $stsCert
Once trust has been created the Service Applications that I wanted the Publishing farm to use had to be published from SharePoint.
- Open SharePoint Central administration on the Intranet farm
- Click on Application Management > Manage Service Applications
- Select the Search Service application and click on Publish in the ribbon
- Select Publish the Service Application to other farms
- Copy the Published URL and click OK
- Open SharePoint Central administration on the Publishing farm
- Click on Application Management > Manage Service Applications
- Click on Connect > Search Service Proxy
- Paste the Published URL into the box and click OK
- Repeat this process for the User Profile Service
Once this process has been completed I needed to add a content source to the search service on the Intranet farm to allow it to crawl the Publishing site. I then removed the application server from the publishing farm.