Secure your deployment server and clients using certificate authentication
Authentication using signed certificates between deployment servers and clients is not recommended, because the configuration data pushed from the deployment server to client does not generally provide exploitable information. Configuring certificate authentication for a deployment server and clients impacts the rest of your configuration as follows:
- Splunk Web will fail to authenticate unless you also configure it to use the certificate.
- The CLI will be not be able to communicate with the deployment server.
You may find certificate authentication necessary in certain distributed configurations, perhaps where extremely sensitive server configuration data is sent to a variety of locations outside your firewall. You can manually configure each indexer to communicate with your Deployment Server:
Note: The deployment server cannot properly push certificates to peers. You must configure each member separately.
1. Create one or more certificates using the same root CA.
2. Distribute the certificates to your deployment server and clients.
server.conf to provide the location of your certificates:
[sslConfig] enableSplunkdSSL = true sslVersions = Defaults to "*,-ssl2" (anything newer than SSLv2). This is the recommended setting. serverCert = The full path to the PEM format server certificate file. Default certificates ($SPLUNK_HOME/etc/auth/server.pem) are generated by Splunk at start. To secure Splunk, you should replace the default cert with your own PEM file. sslPassword = password sslRootCAPath = absolute path to the operating system's root CA (Certificate Authority) PEM format file containing one or more root CA. Do not configure this attribute on Windows.
server.conf to authenticate against your certificates by adding the following attribute to the [sslConfig] stanza in previous step:
requireClientCert = true
requireClientCert is set to "false" by default. If you change it to true to force Splunk to check your client's certificates, Splunk Web and the CLI will also be checked for certificates. Your CLI connection will no longer work because your CLI is unable to present a certificate as a client.
web.conf to present a certificate signed by the same root CA so that Splunk Web can connect to the server.
The following is an example of an edited settings stanza:
[settings] enableSplunkWebSSL = true privKeyPath = etc/auth/splunkweb/mySplunkWebPrivateKey.key serverCert = etc/auth/splunkweb/mySplunkWebCertificate.pem cipherSuite = <your chosen cipher suite (optional)>
Note: Splunk Web does not support passwords, so you must remove the password from the private key. For more information, see "Get certificates signed by a third party for Splunk Web."
Securing distributed search heads and peers
Secure your clusters with pass4SymmKey
This documentation applies to the following versions of Splunk® Enterprise: 6.5.0, 6.5.1, 6.5.1612 (Splunk Cloud only), 6.5.2, 6.5.3, 6.5.4, 6.5.5, 6.5.6, 6.5.7, 6.5.8, 6.5.9, 6.5.10, 6.6.0, 6.6.1, 6.6.2, 6.6.3, 6.6.4, 6.6.5, 6.6.6, 6.6.7, 6.6.8, 6.6.9, 6.6.10, 6.6.11, 6.6.12, 7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4