<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to configure SSL certificates to securely forward logs from multiple universal forwarders to our indexer server? in Getting Data In</title>
    <link>https://community.splunk.com/t5/Getting-Data-In/How-to-configure-SSL-certificates-to-securely-forward-logs-from/m-p/136975#M28196</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;We have a requirement to forward logs from clients (Splunk universal Forwarders) to a server using SSL (tls1.2)&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;CODE&gt;First Try:&lt;/CODE&gt;&lt;/EM&gt; We installed same server certificate on both server and clients (as mentioned in the examples  in splunk documentation and in splunk blogs). It worked fine.&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;CODE&gt;Change request:&lt;/CODE&gt;&lt;/EM&gt; Each client should have its own client certificate. &lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;CODE&gt;Second Try:&lt;/CODE&gt;&lt;/EM&gt; We created multiple client certificates, one for each client. Installed those certificates on the client. We started getting a error: connection is not established.&lt;/P&gt;

&lt;P&gt;For second try, we followed the below mentioned steps&lt;BR /&gt;
Step 1: Created a CA Certificate - &lt;STRONG&gt;CACert.pem&lt;/STRONG&gt;&lt;BR /&gt;
Step 2: Created a Server Certificate using the above CA Certificate - &lt;STRONG&gt;ServerCert.pem&lt;/STRONG&gt;&lt;BR /&gt;
Step 3: Created four client certificates using the above CA Certificate - &lt;STRONG&gt;Client1Cert.pem, Client2Cert.pem, Client3Cert.pem, and Client4Cert.pem&lt;/STRONG&gt;&lt;BR /&gt;
Step 4: Installed certificates&lt;BR /&gt;
Step 5: Restarted Splunk on server and clients.&lt;BR /&gt;
...... Started seeing connection related errors in splunkd.log ............&lt;/P&gt;

&lt;P&gt;Client1 outputs.conf file&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;[tcpout]
disabled = false
defaultGroup = mac

[tcpout:mac]
server = xxx.xxx.xxx.xxx:YYYY
sslRootCAPath = $SPLUNK_HOME/etc/certs/CACert.pem
sslCertPath = $SPLUNK_HOME/etc/certs/Client1Cert.pem
sslPassword = Client1_privkey_password
sslVerifyServerCert = true
sslCommonNameToCheck=commonnametest
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;Client2 outputs.conf file&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;[tcpout]
disabled = false
defaultGroup = mac

[tcpout:mac]
server = xxx.xxx.xxx.xxx:YYYY
sslRootCAPath = $SPLUNK_HOME/etc/certs/CACert.pem
sslCertPath = $SPLUNK_HOME/etc/certs/Client2Cert.pem
sslPassword = Client2_privkey_password
sslVerifyServerCert = true
sslCommonNameToCheck=commonnametest
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;similarly for other clients......&lt;/P&gt;

&lt;P&gt;Server inputs.conf file&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;[SSL]
rootCA = $SPLUNK_HOME/etc/certs/CACert.pem
serverCert = $SPLUNK_HOME/etc/certs/ServerCert.pem
password = server_privkey_password
requireClientCert = true
sslVersions = tls1.2
allowSslRenegotiation = true

[splunktcp-ssl:YYYY]
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;How will universal forwarder clients validate that the server certificate that is presented is valid? Similarly, how will the server validate that the client certificate that is presented is valid?&lt;BR /&gt;
What is wrong here? Could you please help.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;BR /&gt;
Strive&lt;/P&gt;</description>
    <pubDate>Tue, 07 Apr 2015 11:10:09 GMT</pubDate>
    <dc:creator>strive</dc:creator>
    <dc:date>2015-04-07T11:10:09Z</dc:date>
    <item>
      <title>How to configure SSL certificates to securely forward logs from multiple universal forwarders to our indexer server?</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/How-to-configure-SSL-certificates-to-securely-forward-logs-from/m-p/136975#M28196</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;We have a requirement to forward logs from clients (Splunk universal Forwarders) to a server using SSL (tls1.2)&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;CODE&gt;First Try:&lt;/CODE&gt;&lt;/EM&gt; We installed same server certificate on both server and clients (as mentioned in the examples  in splunk documentation and in splunk blogs). It worked fine.&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;CODE&gt;Change request:&lt;/CODE&gt;&lt;/EM&gt; Each client should have its own client certificate. &lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;CODE&gt;Second Try:&lt;/CODE&gt;&lt;/EM&gt; We created multiple client certificates, one for each client. Installed those certificates on the client. We started getting a error: connection is not established.&lt;/P&gt;

&lt;P&gt;For second try, we followed the below mentioned steps&lt;BR /&gt;
Step 1: Created a CA Certificate - &lt;STRONG&gt;CACert.pem&lt;/STRONG&gt;&lt;BR /&gt;
Step 2: Created a Server Certificate using the above CA Certificate - &lt;STRONG&gt;ServerCert.pem&lt;/STRONG&gt;&lt;BR /&gt;
Step 3: Created four client certificates using the above CA Certificate - &lt;STRONG&gt;Client1Cert.pem, Client2Cert.pem, Client3Cert.pem, and Client4Cert.pem&lt;/STRONG&gt;&lt;BR /&gt;
Step 4: Installed certificates&lt;BR /&gt;
Step 5: Restarted Splunk on server and clients.&lt;BR /&gt;
...... Started seeing connection related errors in splunkd.log ............&lt;/P&gt;

&lt;P&gt;Client1 outputs.conf file&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;[tcpout]
disabled = false
defaultGroup = mac

[tcpout:mac]
server = xxx.xxx.xxx.xxx:YYYY
sslRootCAPath = $SPLUNK_HOME/etc/certs/CACert.pem
sslCertPath = $SPLUNK_HOME/etc/certs/Client1Cert.pem
sslPassword = Client1_privkey_password
sslVerifyServerCert = true
sslCommonNameToCheck=commonnametest
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;Client2 outputs.conf file&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;[tcpout]
disabled = false
defaultGroup = mac

[tcpout:mac]
server = xxx.xxx.xxx.xxx:YYYY
sslRootCAPath = $SPLUNK_HOME/etc/certs/CACert.pem
sslCertPath = $SPLUNK_HOME/etc/certs/Client2Cert.pem
sslPassword = Client2_privkey_password
sslVerifyServerCert = true
sslCommonNameToCheck=commonnametest
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;similarly for other clients......&lt;/P&gt;

&lt;P&gt;Server inputs.conf file&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;[SSL]
rootCA = $SPLUNK_HOME/etc/certs/CACert.pem
serverCert = $SPLUNK_HOME/etc/certs/ServerCert.pem
password = server_privkey_password
requireClientCert = true
sslVersions = tls1.2
allowSslRenegotiation = true

[splunktcp-ssl:YYYY]
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;How will universal forwarder clients validate that the server certificate that is presented is valid? Similarly, how will the server validate that the client certificate that is presented is valid?&lt;BR /&gt;
What is wrong here? Could you please help.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;BR /&gt;
Strive&lt;/P&gt;</description>
      <pubDate>Tue, 07 Apr 2015 11:10:09 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/How-to-configure-SSL-certificates-to-securely-forward-logs-from/m-p/136975#M28196</guid>
      <dc:creator>strive</dc:creator>
      <dc:date>2015-04-07T11:10:09Z</dc:date>
    </item>
    <item>
      <title>Re: How to configure SSL certificates to securely forward logs from multiple universal forwarders to our indexer server?</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/How-to-configure-SSL-certificates-to-securely-forward-logs-from/m-p/136976#M28197</link>
      <description>&lt;P&gt;requireClientCert = false , makes it work.&lt;/P&gt;

&lt;P&gt;As per this &lt;A href="http://wiki.splunk.com/Community:Splunk2Splunk_SSL_3rdPartyCA"&gt;link&lt;/A&gt; , setting "requireClientCert = true" would require the following conditions to be met :&lt;BR /&gt;
a) "rootCA" must point to a file containing the CA's public key. &lt;BR /&gt;
b) The forwarder's server certificate defined by "sslCertPath" in outputs.conf is signed by that CA.&lt;BR /&gt;
c) The forwarder has the password to read its own certificate ("sslPassword" in outputs.conf).&lt;/P&gt;

&lt;P&gt;In our case, we were meeting all the conditions but still we faced issues. &lt;/P&gt;

&lt;P&gt;In the same link, there is point which says -- "The purpose of this requireClientCert=true is to ensure that only forwarders that you have distributed a signed certificate to can connect to this indexer."&lt;/P&gt;

&lt;P&gt;So, here is my observation:&lt;BR /&gt;
requireClientCert = true should be set, when we are using same signed certificate on the server(receiver) and on all the clients (forwarders)&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2015 06:35:28 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/How-to-configure-SSL-certificates-to-securely-forward-logs-from/m-p/136976#M28197</guid>
      <dc:creator>strive</dc:creator>
      <dc:date>2015-04-12T06:35:28Z</dc:date>
    </item>
  </channel>
</rss>

