<?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 Proper way of using a certificate chain in Security</title>
    <link>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98326#M3225</link>
    <description>&lt;P&gt;Hi,&lt;BR /&gt;
I'm trying to set authenticate the forwarders using SSL certificates. If using certificates signed by a single root CA, this causes no problems. However, when using an intermediate CA, I can't seem to get it working no matter what. I'm using Splunk 4.2.3.&lt;/P&gt;

&lt;P&gt;I'm basing my efforts on this:&lt;BR /&gt;
&lt;A href="http://www.splunk.com/wiki/Community:Splunk2Splunk_SSL_3rdPartyCA" target="_blank"&gt;http://www.splunk.com/wiki/Community:Splunk2Splunk_SSL_3rdPartyCA&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Q1) Which certificates need to be stored on the forwarder and indexer? I'm guessing both.&lt;/P&gt;

&lt;P&gt;Q2) Where should these certificates be located? Does order matter? Currently, I'm putting them both in cacert.pem. I've tried both putting the root CA first and the intermediate CA first. If I put the root CA first, the indexer will complain that the CA is untrusted. If I put the intermediate CA first, the indexer will report "routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned"&lt;/P&gt;

&lt;P&gt;Q3) On both the forwarder and the indexer, I've done this:&lt;BR /&gt;
"cat cert.pem key.pem cacert.pem &amp;gt;server.pem". (Based on the document linked to above.) Is this correct?&lt;/P&gt;

&lt;P&gt;forwarder's system/local/outputs.conf&lt;BR /&gt;
&lt;PRE&gt;&lt;CODE&gt;&lt;BR /&gt;
[tcpout]&lt;BR /&gt;
defaultGroup = default-autolb-group&lt;BR /&gt;
disabled = false&lt;/CODE&gt;&lt;/PRE&gt;&lt;/P&gt;

&lt;P&gt;[tcpout-server://indexer1.company.com:9996]&lt;BR /&gt;
sslCertPath = /opt/splunkforwarder/etc/auth/server.pem&lt;BR /&gt;
sslPassword = wouldntyouliketoknow&lt;BR /&gt;
sslRootCAPath = /opt/splunkforwarder/etc/auth/cacert.pem&lt;/P&gt;

&lt;P&gt;[tcpout:default-autolb-group]&lt;BR /&gt;
autoLB = true&lt;BR /&gt;
disabled = false&lt;BR /&gt;
server = indexer1.company.com:9996,indexer2.company.com:9996&lt;/P&gt;

&lt;P&gt;[tcpout-server://indexer2.company.com:9996]&lt;BR /&gt;
sslCertPath = /opt/splunkforwarder/etc/auth/server.pem&lt;BR /&gt;
sslPassword = wouldntyouliketoknow&lt;BR /&gt;
sslRootCAPath = /opt/splunkforwarder/etc/auth/cacert.pem&lt;BR /&gt;
&lt;/P&gt;

&lt;P&gt;indexer's system/local/inputs.conf:&lt;BR /&gt;
&lt;PRE&gt;&lt;CODE&gt;&lt;BR /&gt;
[default]&lt;BR /&gt;
host = indexer1.company.com&lt;/CODE&gt;&lt;/PRE&gt;&lt;/P&gt;

&lt;P&gt;[splunktcp-ssl:9996]&lt;/P&gt;

&lt;P&gt;[SSL]&lt;BR /&gt;
password = betyoudliketoknow&lt;BR /&gt;
requireClientCert = true&lt;BR /&gt;
rootCA = /opt/splunk/etc/auth/cacert.pem&lt;BR /&gt;
serverCert = /opt/splunk/etc/auth/server.pem&lt;BR /&gt;
&lt;/P&gt;

&lt;P&gt;Any tips would be greatly appreciated.&lt;/P&gt;</description>
    <pubDate>Mon, 28 Sep 2020 10:01:27 GMT</pubDate>
    <dc:creator>echalex</dc:creator>
    <dc:date>2020-09-28T10:01:27Z</dc:date>
    <item>
      <title>Proper way of using a certificate chain</title>
      <link>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98326#M3225</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;
I'm trying to set authenticate the forwarders using SSL certificates. If using certificates signed by a single root CA, this causes no problems. However, when using an intermediate CA, I can't seem to get it working no matter what. I'm using Splunk 4.2.3.&lt;/P&gt;

&lt;P&gt;I'm basing my efforts on this:&lt;BR /&gt;
&lt;A href="http://www.splunk.com/wiki/Community:Splunk2Splunk_SSL_3rdPartyCA" target="_blank"&gt;http://www.splunk.com/wiki/Community:Splunk2Splunk_SSL_3rdPartyCA&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Q1) Which certificates need to be stored on the forwarder and indexer? I'm guessing both.&lt;/P&gt;

&lt;P&gt;Q2) Where should these certificates be located? Does order matter? Currently, I'm putting them both in cacert.pem. I've tried both putting the root CA first and the intermediate CA first. If I put the root CA first, the indexer will complain that the CA is untrusted. If I put the intermediate CA first, the indexer will report "routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned"&lt;/P&gt;

&lt;P&gt;Q3) On both the forwarder and the indexer, I've done this:&lt;BR /&gt;
"cat cert.pem key.pem cacert.pem &amp;gt;server.pem". (Based on the document linked to above.) Is this correct?&lt;/P&gt;

&lt;P&gt;forwarder's system/local/outputs.conf&lt;BR /&gt;
&lt;PRE&gt;&lt;CODE&gt;&lt;BR /&gt;
[tcpout]&lt;BR /&gt;
defaultGroup = default-autolb-group&lt;BR /&gt;
disabled = false&lt;/CODE&gt;&lt;/PRE&gt;&lt;/P&gt;

&lt;P&gt;[tcpout-server://indexer1.company.com:9996]&lt;BR /&gt;
sslCertPath = /opt/splunkforwarder/etc/auth/server.pem&lt;BR /&gt;
sslPassword = wouldntyouliketoknow&lt;BR /&gt;
sslRootCAPath = /opt/splunkforwarder/etc/auth/cacert.pem&lt;/P&gt;

&lt;P&gt;[tcpout:default-autolb-group]&lt;BR /&gt;
autoLB = true&lt;BR /&gt;
disabled = false&lt;BR /&gt;
server = indexer1.company.com:9996,indexer2.company.com:9996&lt;/P&gt;

&lt;P&gt;[tcpout-server://indexer2.company.com:9996]&lt;BR /&gt;
sslCertPath = /opt/splunkforwarder/etc/auth/server.pem&lt;BR /&gt;
sslPassword = wouldntyouliketoknow&lt;BR /&gt;
sslRootCAPath = /opt/splunkforwarder/etc/auth/cacert.pem&lt;BR /&gt;
&lt;/P&gt;

&lt;P&gt;indexer's system/local/inputs.conf:&lt;BR /&gt;
&lt;PRE&gt;&lt;CODE&gt;&lt;BR /&gt;
[default]&lt;BR /&gt;
host = indexer1.company.com&lt;/CODE&gt;&lt;/PRE&gt;&lt;/P&gt;

&lt;P&gt;[splunktcp-ssl:9996]&lt;/P&gt;

&lt;P&gt;[SSL]&lt;BR /&gt;
password = betyoudliketoknow&lt;BR /&gt;
requireClientCert = true&lt;BR /&gt;
rootCA = /opt/splunk/etc/auth/cacert.pem&lt;BR /&gt;
serverCert = /opt/splunk/etc/auth/server.pem&lt;BR /&gt;
&lt;/P&gt;

&lt;P&gt;Any tips would be greatly appreciated.&lt;/P&gt;</description>
      <pubDate>Mon, 28 Sep 2020 10:01:27 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98326#M3225</guid>
      <dc:creator>echalex</dc:creator>
      <dc:date>2020-09-28T10:01:27Z</dc:date>
    </item>
    <item>
      <title>Re: Proper way of using a certificate chain</title>
      <link>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98327#M3226</link>
      <description>&lt;P&gt;One thing I noticed.  You mentioned:&lt;/P&gt;

&lt;P&gt;Q3) On both the forwarder and the indexer, I've done this:&lt;BR /&gt;
"cat cert.pem key.pem cacert.pem &amp;gt;server.pem". (Based on the document linked to above.) Is this correct?&lt;/P&gt;

&lt;P&gt;You might want to try:&lt;BR /&gt;
"cat cert.pem key.pem intermediatecacert.pem rootcacert.pem &amp;gt; server.pem"&lt;/P&gt;</description>
      <pubDate>Mon, 21 Nov 2011 21:44:33 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98327#M3226</guid>
      <dc:creator>trross33</dc:creator>
      <dc:date>2011-11-21T21:44:33Z</dc:date>
    </item>
    <item>
      <title>Re: Proper way of using a certificate chain</title>
      <link>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98328#M3227</link>
      <description>&lt;P&gt;I'm commenting a bit late, I know, but...&lt;BR /&gt;
In effect, that's what I've done, tross33. You see the cacert.pem has been created by doing&lt;/P&gt;

&lt;P&gt;cat intermediatecacert.pem rootcacert.pem &amp;gt;cacert.pem&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jan 2012 11:22:17 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98328#M3227</guid>
      <dc:creator>echalex</dc:creator>
      <dc:date>2012-01-12T11:22:17Z</dc:date>
    </item>
    <item>
      <title>Re: Proper way of using a certificate chain</title>
      <link>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98329#M3228</link>
      <description>&lt;P&gt;This issue was solved after installing Splunk 4.3. For one thing, one has to make sure that the certificates are chained correctly, as tross33 pointed out.&lt;/P&gt;

&lt;P&gt;However, the real problem was that the certificate used in the forwarders had the purpose-field set to server. The SSL library doesn't want to accept that purpose for client certificates. The solution is to make sure the certificate is either a client certificate or multi-purpose. This must be done by the CA when signing.&lt;/P&gt;

&lt;P&gt;Installing Splunk 4.3 helped, since it improved the error reporting on SSL problems:&lt;/P&gt;

&lt;P&gt;For info on a certificate's supported purposes, you can use the openssl utility:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;foo@bar:~/certs $ openssl x509 -purpose  -noout -in certificate.pem
Certificate purposes:
SSL client : Yes
SSL client CA : No
SSL server : Yes
SSL server CA : No
Netscape SSL server : Yes
Netscape SSL server CA : No
S/MIME signing : Yes (WARNING code=2)
S/MIME signing CA : No
S/MIME encryption : Yes (WARNING code=2)
S/MIME encryption CA : No
CRL signing : Yes
CRL signing CA : No
Any Purpose : Yes
Any Purpose CA : Yes
OCSP helper : Yes
OCSP helper CA : No
Time Stamp signing : No
Time Stamp signing CA : No
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 26 Apr 2012 10:52:43 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Security/Proper-way-of-using-a-certificate-chain/m-p/98329#M3228</guid>
      <dc:creator>echalex</dc:creator>
      <dc:date>2012-04-26T10:52:43Z</dc:date>
    </item>
  </channel>
</rss>

