<?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 Re: HEC ssl3_get_client_hello:no shared cipher in Getting Data In</title>
    <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561347#M100034</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;I am unfamiliar with how Splunk represents these suites. &amp;nbsp;Is there a supported cipher suite that can match one of those sent by splunk_hec?&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Well, this observation gives me an idea: Use *&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;cipherSuite = *&lt;/LI-CODE&gt;&lt;P&gt;This is not ideal for obvious reasons. &amp;nbsp;But at least splunk_hec is no longer complaining about no common cipher.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 29 Jul 2021 12:25:49 GMT</pubDate>
    <dc:creator>yuanliu</dc:creator>
    <dc:date>2021-07-29T12:25:49Z</dc:date>
    <item>
      <title>HEC only accepts TLS 1.2 no matter what sslVersions</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561336#M100031</link>
      <description>&lt;P&gt;My data source can't seem to negotiate TLS v1.2. &amp;nbsp;So, I am trying to "downgrade" HEC. &amp;nbsp;But no matter how I change inputs.conf, only TLS 1.2 is supported on port 8080.&lt;/P&gt;&lt;P&gt;In fact, default sslVersions for splunk_httpinput app is already *:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;$ cat etc/apps/splunk_httpinput/default/inputs.conf
[http]
disabled=1
port=8088
enableSSL=1
dedicatedIoThreads=2
maxThreads = 0
maxSockets = 0
useDeploymentServer=0
# ssl settings are similar to mgmt server
sslVersions=*,-ssl2
allowSslCompression=true
allowSslRenegotiation=true
ackIdleCleanup=true&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;openssl s_client can only negotiate within TLS 1.2, nothing lower. &amp;nbsp;If I use, say -tls1_1, splunkd.log shows "error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher", the same error my data source triggers. &amp;nbsp;Is there some way to "downgrade"?&lt;/P&gt;&lt;P&gt;The data source in question is Puppet Inc's &lt;A href="https://forge.puppet.com/modules/puppetlabs/splunk_hec/" target="_self"&gt;splunk_hec module&lt;/A&gt;&amp;nbsp;used by &lt;A href="https://splunkbase.splunk.com/app/4413/" target="_self"&gt;Puppet Report Viewer&lt;/A&gt; (Splunk base app 4413 ). &amp;nbsp;I am testing it with Puppet Server 2.7.0. (Splunk is 8.2.0.) My colleague suspects that the Jruby version (ruby 1.9) may be too old to support TLS 1.2. (I can invoke splunk_hec report in native Ruby 2.0 successfully.)&lt;/P&gt;&lt;P&gt;Update: JRuby version is probably the problem, although it does support TLS 1.2; the problem is (still) in cipher suites mismatch. &amp;nbsp;I used tcpdump and wireshark to analyze TLS exchange. &amp;nbsp;Puppet server sends the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Transport Layer Security
    TLSv1.2 Record Layer: Handshake Protocol: Client Hello
        Content Type: Handshake (22)
        Version: TLS 1.2 (0x0303)
        Length: 223
        Handshake Protocol: Client Hello
            Handshake Type: Client Hello (1)
            Length: 219
            Version: TLS 1.2 (0x0303)
            Random: c1221d62f8911dc203ac02cf12c7cf7a71093cd5141a0f56e7bad2429d4e1095
            Session ID Length: 0
            Cipher Suites Length: 12
            Cipher Suites (6 suites)
                Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
                Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
                Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)
                Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
                Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
                Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Even adding extended ciphers illustrated in default inputs.conf, i.e.,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;cipherSuite = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;they still cannot match.&lt;/P&gt;&lt;P&gt;I am unfamiliar with how Splunk represents these suites. &amp;nbsp;Is there a supported cipher suite that can match one of those sent by splunk_hec?&lt;/P&gt;</description>
      <pubDate>Fri, 30 Jul 2021 20:17:13 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561336#M100031</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2021-07-30T20:17:13Z</dc:date>
    </item>
    <item>
      <title>Re: HEC only accepts TLS 1.2 no matter what sslVersions</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561338#M100032</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/33901"&gt;@yuanliu&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have you tried lowering sslVersion in server.conf to tls1.1,&amp;nbsp; if SSL management port enabled with SSL?&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 11:51:33 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561338#M100032</guid>
      <dc:creator>venkatasri</dc:creator>
      <dc:date>2021-07-29T11:51:33Z</dc:date>
    </item>
    <item>
      <title>Re: HEC ssl3_get_client_hello:no shared cipher</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561347#M100034</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;I am unfamiliar with how Splunk represents these suites. &amp;nbsp;Is there a supported cipher suite that can match one of those sent by splunk_hec?&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Well, this observation gives me an idea: Use *&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;cipherSuite = *&lt;/LI-CODE&gt;&lt;P&gt;This is not ideal for obvious reasons. &amp;nbsp;But at least splunk_hec is no longer complaining about no common cipher.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 12:25:49 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561347#M100034</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2021-07-29T12:25:49Z</dc:date>
    </item>
    <item>
      <title>Re: HEC only accepts TLS 1.2 no matter what sslVersions</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561352#M100036</link>
      <description>&lt;P&gt;This is not management port, but HEC port 8088. &amp;nbsp;The corresponding config is under apps/splunk_httpinput/local/inputs.conf; the default sslVersion is already *. &amp;nbsp;I have tried to lower sslVersion to tls as suggested in system/local/input.conf to no effect. (In fact, that one didn't affect management port 8089, either.) &amp;nbsp;If I change system/local/web.conf, on the other hand, I can observe port 443 allowing lower grade protocols. &amp;nbsp;I believe that management port is controlled by system/local/server.conf although I didn't explicitly test.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 12:31:29 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561352#M100036</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2021-07-29T12:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: HEC ssl3_get_client_hello:no shared cipher</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561487#M100045</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;cipherSuite = *&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately, turns out splunkd - or the splunk_httpinput app portion of it, doesn't like *. &amp;nbsp;Any attempt to connect to HEC port simply times out. (Which I reported seprately in&amp;nbsp;&lt;A href="https://community.splunk.com/t5/All-Apps-and-Add-ons/Puppet-Could-not-send-report-to-Splunk-execution-expired/m-p/561362/," target="_blank" rel="noopener"&gt;https://community.splunk.com/t5/All-Apps-and-Add-ons/Puppet-Could-not-send-report-to-Splunk-execution-expired/m-p/561362/,&lt;/A&gt;&amp;nbsp;not realizing the causal connection.)&lt;/P&gt;&lt;P&gt;So, back to square one: How can I configure splunk_httpinput to match JRuby 1.9's suites? Or allow, say, TLS 1.1.&lt;/P&gt;&lt;P&gt;I have already added Windows Vista support as illustrated in comments, i.e.,&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA&lt;/LI-CODE&gt;&lt;P&gt;I would think that&amp;nbsp;ECDHE-RSA-AES128-SHA, for example, would match for&amp;nbsp;TLS_DHE_DSS_WITH_AES_128_CBC_SHA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Jul 2021 05:16:37 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561487#M100045</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2021-07-30T05:16:37Z</dc:date>
    </item>
    <item>
      <title>Re: HEC ssl3_get_client_hello:no shared cipher</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561503#M100046</link>
      <description>&lt;P&gt;To look at JRuby's offer again: they are all from SSLv3 - not applicable for TLSv1.2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;$ openssl ciphers -V |grep 0x00,0x3[23589]
          0x00,0x39 - DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
          0x00,0x38 - DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
          0x00,0x35 - AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
          0x00,0x33 - DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
          0x00,0x32 - DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, this is an impasse: On one hand, splunk_httpinput doesn't allow any version but TLS 1.2. &amp;nbsp;On the other, JRuby 1.9 offers nothing but SSL3 cipher suites.&lt;/P&gt;&lt;P&gt;Is there any way to change either behavior? &amp;nbsp;I tried to explicitly set sslVersion in etc/apps/splunk_httpinput/local/inputs.conf and every time, only TLS 1.2 is allowed. &amp;nbsp;I don't know how to influence puppetserver 2.1 to make JRuby connect method offer TLS 1.2. (TLS 1.2 isn't all that new, and SSLv3 is extremely ancient. &amp;nbsp;This client behavior is very strange even for an old version of Ruby.)&lt;/P&gt;</description>
      <pubDate>Fri, 30 Jul 2021 07:32:02 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561503#M100046</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2021-07-30T07:32:02Z</dc:date>
    </item>
    <item>
      <title>Re: HEC only accepts TLS 1.2 no matter what sslVersions</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561566#M100049</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/33901"&gt;@yuanliu&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;My data source can't seem to negotiate TLS v1.2. &amp;nbsp;So, I am trying to "downgrade" HEC. &amp;nbsp;But no matter how I change inputs.conf, only TLS 1.2 is supported on port 8080.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;... &amp;nbsp;Is there some way to "downgrade"?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I'm going to revert to the original scope and close this one: As it turns out, in order to make splunk_httpinput app (HEC interface, default port 8088) accept any protocol, that protocol must have already been accepted in web.conf.&lt;/P&gt;&lt;P&gt;By default, web.conf only accepts TLSv1.2. &amp;nbsp;Therefore splunk_httpinput can only accept TLSv1.2 no matter what etc/apps/splunk_httpintput/local/inputs.conf says. &amp;nbsp;Once I add other protocols to etc/system/local/web.conf, I can change HEC behavior by updating etc/apps/splunk_httpintput/local/inputs.conf.&lt;/P&gt;&lt;P&gt;In my opinion, splunk_httpinput app is orthogonal to splunkd's Web interface. &amp;nbsp;So, the intertwinement between the two configurations should be a bug.&lt;/P&gt;&lt;P&gt;Additionally,&amp;nbsp;[SSL] stanza in etc/system/local/inputs.conf seems to have no effect on any interface. &amp;nbsp;Not sure if that should be a bug, but at least that is not what documentation and comments in&amp;nbsp;etc/system/default/inputs.conf imply. &amp;nbsp;If it is not a product bug, it is a documentation bug.&lt;/P&gt;</description>
      <pubDate>Fri, 30 Jul 2021 21:24:36 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/561566#M100049</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2021-07-30T21:24:36Z</dc:date>
    </item>
    <item>
      <title>Re: HEC only accepts TLS 1.2 no matter what sslVersions</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/563309#M100368</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/33901"&gt;@yuanliu&lt;/a&gt;&amp;nbsp;wrote:&lt;P&gt;... As it turns out, in order to make splunk_httpinput app (HEC interface, default port 8088) accept any protocol, that protocol must have already been accepted in web.conf.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;After even more tests, it turns out that web.conf does not affect HEC, after all. &amp;nbsp;Nor does $SPLUNK_HOME/etc/system/local/inputs.conf. &amp;nbsp;My mistake was to mix up results from Puppet server with those from openssl. &amp;nbsp;To be sure, HEC by default only support TLSv1.2 despite sslVersions=*, because only TLSv1.2 supports the default cipherSuite (which is &lt;STRONG&gt;not&lt;/STRONG&gt; exemplified in $SPLUNK_HOME/etc/apps/splunk_httpinput/default/inputs.conf).&lt;/P&gt;&lt;P&gt;In order for HEC to support TLSv1.1 (as well as TLSv1.2), therefore, I have to copy default &lt;FONT face="courier new,courier"&gt;cipherSuite&lt;/FONT&gt; values from $SPLUNK_HOME/etc/system/default/web.conf (or server.conf), then add suitable TLSv1.1 ciphers (such as AES256_SHA) into&amp;nbsp;$SPLUNK_HOME/etc/apps/splunk_httpinput/local/inputs.conf. &amp;nbsp;No need to alter web.conf.)&lt;/P&gt;</description>
      <pubDate>Mon, 16 Aug 2021 01:16:03 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/HEC-only-accepts-TLS-1-2-no-matter-what-sslVersions/m-p/563309#M100368</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2021-08-16T01:16:03Z</dc:date>
    </item>
  </channel>
</rss>

