It's important to verify that FIPS is enabled on the system before enabling FIPS on Splunk. Please reference the Splunk Documentation for an overview of Securing Splunk Enterprise with FIPS.
In addition, refer to How to self-sign certificates and How to prepare your signed certificates for Splunk.
The steps below describe implementing Splunk in FIPS mode, on a new server where Splunk has not been run yet.
A few notes to consider:
serverAuth and clientAuth extensions). The following steps assume these are enabled by default, but your environment may vary.# fips-mode-setup --enable
#reboot
# fips-mode-setup --check FIPS mode is enabled
$SPLUNK_HOME/etc/splunk-launch.conf SPLUNK_FIPS=1
echo to verify it has been set:export OPENSSL_FIPS=1 echo $OPENSSL_FIPS
Create a new directory within the Splunk platform instance installation for the certificates:
mkdir $SPLUNK_HOME/etc/auth/mycerts
cd $SPLUNK_HOME/etc/auth/mycerts
sslPassword used in server.conf/[sslConfig] and [kvstore] stanzas:$SPLUNK_HOME/bin/splunk cmd openssl genrsa -aes256 -out myCertAuthPrivateKey.key 2048
-config <path/to/config/file.cnf> . Make sure that file contains a section for cert extensions, with serverAuth and clientAuth included, as KV Store must have both ("dual purpose").$SPLUNK_HOME/bin/splunk cmd openssl req -new -key myCertAuthPrivateKey.key -out myCertAuthCertificate.csr
$SPLUNK_HOME/bin/splunk cmd openssl x509 -req -in myCertAuthCertificate.csr -sha512 -signkey myCertAuthPrivateKey.key -CAcreateserial -out myCertAuthCertificate.pem -days 1095
$SPLUNK_HOME/bin/splunk cmd openssl genrsa -aes256 -out myServerPrivateKey.key 2048
myServerPrivateKey.key to generate a CSR for your server certificate:-config <path/to/config/file> $SPLUNK_HOME/bin/splunk cmd openssl req -new -key myServerPrivateKey.key -out myServerCertificate.csr
$SPLUNK_HOME/bin/splunk cmd openssl x509 -req -in myServerCertificate.csr -SHA256 -CA myCertAuthCertificate.pem -CAkey myCertAuthPrivateKey.key -CAcreateserial -out myServerCertificate.pem -days 1095
cat myServerCertificate.pem myServerPrivateKey.key myCertAuthCertificate.pem > merged.pem
The steps above were taken from the Splunk documentation and enhanced for FIPS requirements. Refer to the following links:
To configure the Splunk Management Port and KV Store to use your self-signed certificate:
[sslConfig]
sslRootCAPath = $SPLUNK_HOME/etc/auth/mycerts/myCertAuthCertificate.pem
serverCert = $SPLUNK_HOME/etc/auth/mycerts/merged.pem
sslPassword = <password>[kvstore]
serverCert = $SPLUNK_HOME/etc/auth/mycerts/merged.pem
sslPassword = <password>
NOTE: KV Store will default to [sslConfig]/sslRootCAPath for the root ca file (myCertAuthCertificate.pem in the example above), though it can be specified with [kvstore]/caCertFile
$SPLUNK_HOME/bin/splunk cmd openssl verify -verbose -x509_strict -CAfile <file path to sslRootCAPath or caCertFile> <file path to serverCert>
$SPLUNK_HOME/bin/splunk cmd openssl s_client -connect localhost:8089 -cert $SPLUNK_HOME/etc/auth/mycerts/merged.pem

$SPLUNK_HOME/bin/splunk restart
$SPLUNK_HOME/bin/splunk show kvstore-status
This member:
backupRestoreStatus : Ready
date : Sun Apr 16 21:37:23 2023
dateSec : 1681681043.714
disabled : 0
guid : 37BC6DC8-757F-45FE-BA7C-C7B251A22748
oplogEndTimestamp : Sun Apr 16 21:37:20 2023
oplogEndTimestampSec : 1681681040
oplogStartTimestamp : Sun Apr 16 20:22:55 2023
oplogStartTimestampSec : 1681676575
port : 8191
replicaSet : 37BC6DC8-757F-45FE-BA7C-C7B251A22748
replicationStatus : KV store captain
standalone : 1
status : ready
storageEngine : wiredTiger KV store members:
xxx.xxx.xxx.xxx:8191
configVersion : 1
electionDate : Sun Apr 16 21:18:40 2023
electionDateSec : 1681679920
hostAndPort : xxx.xxx.xxx.xxx:8191
optimeDate : Sun Apr 16 21:37:20 2023
optimeDateSec : 1681681040
replicationStatus : KV store captain
uptime : 1134
| Revision | Publish Date | Comments |
|---|---|---|
1.0 |
30-Sep-2026
|
Initial Release |