Trying my best to get my Sitecore 9 instance running on Windows 8.1 with IIS 8.5. As mentioned in Sitecore guide, I am noticing lot of issues while installation.

After solving a few of them, I ended up now with below. I have no clue why the certificate is missing a private key. I have cloned the certificate from what Sitecore has created under Trusted Root with name DO_NOT_TRUST_SitecoreRootCert.

At 4:00 AM in the morning, I see no point in fighting this battle alone. So, calling out to my community for help!!!

SetAppPoolCertStorePermissions : FilePermissions ---------------------------
VERBOSE: Resolving ConfigFunction extension 'ResolveCertificatePath'
VERBOSE: Resolved 'Invoke-ResolveCertificatePathConfigFunction'
VERBOSE: Resolving ConfigFunction extension 'joinpath'
VERBOSE: Resolved 'Invoke-JoinPathConfigFunction'
VERBOSE: Resolving ConfigFunction extension 'GetCertificateThumbprint'
VERBOSE: Resolved 'Invoke-GetCertificateThumbprintConfigFunction'
VERBOSE: Invoke-GetCertificateConfigFunction
VERBOSE: Id: xp0.xconnect_client
VERBOSE: CertStorePath: Cert:\Localmachine\My
VERBOSE: Found Cert with thumbprint:         
VERBOSE: Invoke-JoinPathConfigFunction
VERBOSE: Joining: Cert:\Localmachine\My     
VERBOSE: Result: 
VERBOSE: Invoke-ResolveCertificatePathConfigFunction
VERBOSE: Resolving path:     
Install-SitecoreConfiguration : Unable to parse     
[ResolveCertificatePath(variable('Security.XConnect.CertificatePath'))] - 
Exception calling "InvokeWithContext" with "2" argument(s): "The 
running command stopped because the preference variable 
"ErrorActionPreference" or common parameter is set to Stop: Certificate 
Cert:\Localmachine\My\0DF036C9C10365E9A81F5A93990E1A3688584DC2 does not 
contain Private Key. Ensure that it has been exported with the Private Key."
At D:\software\Sitecore\Sitecore 9\sc9pckg\Install.ps1:43 char:1
+ Install-SitecoreConfiguration @xconnectParams -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Write-Error],     
+ FullyQualifiedErrorId :     
  • You are not alone, the certs throw a lot of people off. Give these a look. Step by step videos. youtube.com/…
    – Chris Auer
    Commented Nov 3, 2017 at 3:04
  • could you post the contents of install.ps1? Commented Nov 3, 2017 at 4:46
  • @LonghornTaco, Dave has added the script I used in answer below. It's similar script with just SQL parameter changes
    – phani
    Commented Nov 3, 2017 at 7:32
  • @phani, did you grant read permissions from "manage private keys" menu?
    – lebeg
    Commented Nov 20, 2017 at 7:00
  • @lebeg i don't recall seeing any menu like that. Can you elaborate?
    – phani
    Commented Nov 20, 2017 at 18:44

3 Answers 3


The "secret" is in the Installation Guide, but you have to jump ahead to Section 5.1 and 5.2. When I then created this PowerShell script:

#define parameters
$prefix = "xp0"
$PSScriptRoot = "D:\downloads\sitecore\sif"
$XConnectCollectionService = "$prefix.xconnect"
$sitecoreSiteName = "$prefix.sc"
$SolrUrl = "https://localhost:8983/solr"
$SolrRoot = "D:\solr\solr-6.6.1"
$SolrService = "solr6"
$SqlServer = "."
$SqlAdminUser = "sitecore"

#install client certificate for xconnect
$certParams = @{
     Path = "$PSScriptRoot\xconnect-createcert.json"
     CertificateName = "$prefix.xconnect_client"
Install-SitecoreConfiguration @certParams -Verbose 

#install solr cores for xdb
$solrParams = @{
     Path = "$PSScriptRoot\xconnect-solr.json"
     SolrUrl = $SolrUrl
     SolrRoot = $SolrRoot
     SolrService = $SolrService
     CorePrefix = $prefix
Install-SitecoreConfiguration @solrParams 

#deploy xconnect instance
$xconnectParams = @{
     Path = "$PSScriptRoot\xconnect-xp0.json"
     Package = "$PSScriptRoot\Sitecore 9.0.0 rev. 171002 (OnPrem)_xp0xconnect.scwdp.zip"
     LicenseFile = "$PSScriptRoot\license.xml"
     Sitename = $XConnectCollectionService
     XConnectCert = $certParams.CertificateName
     SqlDbPrefix = $prefix
     SqlServer = $SqlServer
     SqlAdminUser = $SqlAdminUser
     SqlAdminPassword = $SqlAdminPassword
     SolrCorePrefix = $prefix
     SolrURL = $SolrUrl
Install-SitecoreConfiguration @xconnectParams 

#install solr cores for sitecore
$solrParams = @{
     Path = "$PSScriptRoot\sitecore-solr.json"
     SolrUrl = $SolrUrl
     SolrRoot = $SolrRoot
     SolrService = $SolrService
     CorePrefix = $prefix
Install-SitecoreConfiguration @solrParams 

#install sitecore instance
$xconnectHostName = "$prefix.xconnect"
$sitecoreParams = @{
    Path = "$PSScriptRoot\sitecore-XP0.json"
    Package = "$PSScriptRoot\Sitecore 9.0.0 rev. 171002 (OnPrem)_single.scwdp.zip" 
    LicenseFile = "$PSScriptRoot\license.xml"
    SqlDbPrefix = $prefix
    SqlServer = $SqlServer
    SqlAdminUser = $SqlAdminUser
    SqlAdminPassword = $SqlAdminPassword
    SolrCorePrefix = $prefix
    SolrUrl = $SolrUrl
    XConnectCert = $certParams.CertificateName
    Sitename = $sitecoreSiteName
    XConnectCollectionService = "https://$XConnectCollectionService"
Install-SitecoreConfiguration @sitecoreParams

. Kam also created an excellent blog post: https://kamsar.net/index.php/2017/10/All-about-xConnect-Security/

Also look into SIFless - http://www.rockpapersitecore.com/2017/10/introducing-sif-less-for-easy-sitecore-9-installation/

  • 1
    Thanks Dave. This is the exact script I followed. But the SitecoreFundamentals (C:\Program Files\WindowsPowerShell\Modules\SitecoreFundamentals\1.0.0\Public\WebFeature\SSL\New-SignedCertificate.ps1) module has issues generating New-SignedCertificate on Windows 8.1
    – phani
    Commented Nov 3, 2017 at 7:30
  • Okay. Thanks. I am on Windows 10. Commented Nov 3, 2017 at 13:56
  • He mentioned Win 8.1 in the question. Sitecore Fundamentals is not supported on 8.1 - only Win 10. Trying to find the reference for that.
    – Richard Seal
    Commented Nov 3, 2017 at 13:58
  • Seems that getting Sitecore 9 setup on a Windows 8.1 machine is super challenging. I have someone in our office that has been trying on their machine for the last 3 days (and still hasn't succeeded). I have a machine with 8.1, and will have to give it a shot and post my journey. My advice, upgrade to Windows 10 if that's possible. But I know for some, that's just not possible. Commented Nov 10, 2017 at 13:49
  • You are a life-saver. The 50 page installation guide is a mine-field of tiny details that are easily missed. I wasted 2 days getting the install to work on Windows 10. If this script fails on any step after the database creation you also need to tear down the databases before you can retry (or copy this script into multiple steps, each with a single Install-SitecoreConfiguration call and start with the last failed step). Took over a dozen attempts to get past every error, but got there in the end :) Commented Feb 3, 2018 at 21:38

Use latest version of Sitecore Installation Framework (SIF) 1.2 which is solving issue with certificate creation on Windows Server 2012 R2.

See release notes here -> https://dev.sitecore.net/Downloads/Sitecore%20Installation%20Framework/1x/Sitecore%20Installation%20Framework%2012/Release%20Notes

SIF 1.2 Download page -> https://dev.sitecore.net/Downloads/Sitecore_Installation_Framework/1x/Sitecore_Installation_Framework_12.aspx


I basically experience the same exact issue on a Windows 8.1 machine. All prerequisites were installed including Powershell 5.1, Solr with SSL.

Sadly I wasn't able to overcome it. I tried running Windows updates until no more of those were available but no luck.

I tried the same process in a Windows 10 machine and the SIF scripts worked very smoothly.

If possible please update your machine OS to Windows 10 (with all its updates up to date), for sure it will work then.

  • Hopefully the forthcoming 1.1.0 release of the SitecoreFundamentals module should address the PKI issues that have been reported on Windows Server 2012 and Windows 8.1.
    – Kevin Obee
    Commented Dec 8, 2017 at 16:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.