Sandor Molnar created KNOX-3263:
-----------------------------------

             Summary: CM service discovery issue in FIPS clusters
                 Key: KNOX-3263
                 URL: https://issues.apache.org/jira/browse/KNOX-3263
             Project: Apache Knox
          Issue Type: Bug
    Affects Versions: 3.0.0
            Reporter: Sandor Molnar
            Assignee: Sandor Molnar
             Fix For: 3.0.0
         Attachments: image-2026-02-26-09-27-27-015.png

In FIPS-enabled clusters with JDK17 (on RH9), Knox cannot connect to CM during 
initial service discovery (nor during the periodical config analysis events), 
because CM's ApiClient is trying to load the JVM's default truststore (via 
'{{{}new OkHttpClient(){}}}' in line 59, see below) before we reach to the 
point where we can set the properly configured SSL truststore. The reason is: 
the default truststore's password is missing. 

Knox configures the truststore properly later, but the {{DiscoveryApiClient}} 
is a child class of that -> we implicitly call the default constructor of CM's 
{{{}ApiClient{}}}, that looks like this (as of today):

!image-2026-02-26-09-27-27-015.png|height=400!

I tried to reach out to the CM team and asked them to provide a new version of 
this class where Knox could provide the '{{{}httpClient{}}}' as a constructor 
argument, but I hit the wall multiple times, they insisted on putting the 
`'{{{}-Djavax.net.ssl.trustStorePassword{}}}' System property as a JVM 
argument, which could result in a security leak in certain environments (please 
note this is FIPS, with end-users apply the highest security standards).

This leaves us no other option but to bypass this and set the above System 
property in a way such that:
 * it's not exposed in plain text on a simple '{{{}ps aux{}}}'
 * it's only set for a very short time window, when we actually need it (when 
we initiate Knox's own DiscoveryApiClient)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to