Setting up Solr with SSL for Sitecore 9
As soon as I heard Sitecore 9 was out, I immediately jumped on to set it up. In order to use Analytics, Sitecore requires SSL enabled Solr. The installation experience was mostly painless using the new Sitecore Installation Framework (more on that in a separate post). However, I did notice that setting up Solr with SSL took some time. To save you the hassle, here’s a simple step-by-step guide on how to go about it.
Get Solr
Download solr-6.6.2 and unzip to C:\Program Files\solr-6.6.2:
https://archive.apache.org/dist/lucene/solr/6.6.2/solr-6.6.2.zip
Install JRE
Make sure you have JRE installed. If not download from:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Create Keystore
We will use the JDK Keytool command to create the required certificates. Run the following in command prompt with administrative privileges. Change the path to the executable based on the path of your JRE installation. You may also want to update the password and the certificate attributes (CN, OU etc):
“C:\Program Files\Java\jre-9.0.1\bin\keytool.exe” -genkeypair -alias solr-ssl -keyalg RSA -keysize 2048 -keypass secret -storepass secret -validity 9999 -keystore solr-ssl.keystore.jks -ext SAN=DNS:localhost,IP:127.0.0.1 -dname “CN=localhost, OU=Organizational Unit, O=Organization, L=Location, ST=State, C=Country”
After running the above command, a keystore file called solr-ssl.keystore.jks will be created in the current directory.
Generate certificate
Run the following in command prompt with administrative privileges. Update the password if you changed it from the default during the previous step:
“C:\Program Files\Java\jre-9.0.1\bin\keytool.exe” -importkeystore -srckeystore solr-ssl.keystore.jks -destkeystore solr-ssl.keystore.p12 -srcstoretype jks -deststoretype pkcs12
This will generate a certificate called solr-ssl.keystore.p12 in the current directory
Install certificate
Double click on the generated solr-ssl.keystore.p12 file and follow the wizard to import the certificate. When you reach the Certificate Store window, make sure to place the certificate in the Trusted Root Certification Authorities.
Move keystore and certificate to Solr
Copy the generated certificate and keystore files (solr-ssl.keystore.jks, solr-ssl.keystore.p12) to C:\Program Files\solr-6.6.2\server\etc.
Enable SSL in Solr
To enable SSL, edit the file C:\Program Files\solr-6.6.2\bin\solr.in.cmd. Uncomment properties starting with Solr_SSL_*:
Test start Solr
To start SOLR, run the following in command prompt with administrative privileges:
C:\Program Files\solr-6.6.2\bin\solr.cmd -p 8984
Once successfully started up, you should be able to navigate to https://localhost:8984 to make sure that the instance is running.
If no errors are encountered and Solr started successfully, stop Solr by running the command:
C:\Program Files\solr-6.6.2\bin\solr.cmd stop -all
Setup Solr to run as a Windows service
Download and extract Non-Sucking Service Manager from https://nssm.cc/download.
Run the following in command prompt with administrator privileges. Update path to where you extracted nssm:
“C:\nssm-x.xx\win64\nssm.exe” install SOLR6
Set the path to ‘C:\Program Files\solr-6.6.2\bin\solr.cmd’ and Arguments to ‘start -f -p 8983’:
Finally, start the SOLR6 windows service and navigate to https://localhost:8983 to make sure Sorl is running.