Bug 1678322

Summary: httpd fails to start after installing capsule in FIPS mode
Product: Red Hat Satellite Reporter: Peter Ondrejka <pondrejk>
Component: InstallationAssignee: Ivan Necas <inecas>
Status: CLOSED ERRATA QA Contact: Peter Ondrejka <pondrejk>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.5.0CC: amasolov, aruzicka, bhoefer, bkearney, ehelms, inecas, ktordeur, pondrejk, rjerrido, spetrosi, vgrosu
Target Milestone: 6.5.0Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: puppet-certs-4.4.4 Doc Type: Known Issue
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-14 12:40:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1170174, 1667089    
Attachments:
Description Flags
installer output
none
httpd error log
none
katello-reverse-proxy_error_ssl none

Description Peter Ondrejka 2019-02-18 13:59:23 UTC
Description of problem:
Having a FIPS enabled satellite 6.5 server, attempting to install external capsule on a FIPS enabled rhel 7 server.

Installaition failses in step "Resetting puppet server version param..."
with "Systemd start for httpd failed!" (logs in attachment)

Version-Release number of selected component (if applicable):
Satellite 6.5 snap 16

How reproducible:
always

Steps to Reproduce:
1. install capsule packages on fips machine (in my case from dogfood server)
2. on satellite run capsule-certs-gernerate, copy certs to capsule
3. on capsule run satellite-installer --scenario capsule... (capsule-certs-gernerate)

Actual results:
httpd fails to start

Expected results:
capsule installed as expected 

Additional info:

Comment 1 Peter Ondrejka 2019-02-18 14:00:32 UTC
Created attachment 1535957 [details]
installer output

Comment 2 Peter Ondrejka 2019-02-18 14:02:08 UTC
Created attachment 1535958 [details]
httpd error log

Comment 3 Peter Ondrejka 2019-02-18 14:02:55 UTC
Created attachment 1535959 [details]
katello-reverse-proxy_error_ssl

Comment 9 Ivan Necas 2019-02-19 14:39:23 UTC
Info from more investigation, when looking at /etc/pki/katello/private/$(hostname)-foreman-proxy-client-bundle.pem,
on FIPS-enabled system, it has a form of pkcs1:

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

While on non-FIPS system, it is pkcs8:


-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

As https://bugzilla.redhat.com/show_bug.cgi?id=1025057 mentions, it seems like a limitation of mod_ssl to support pkcs8
keys. I was not able to convert pkcs8 to pkcs1 on FIPS-enable machine, probably because of some algorithm being used there (perhaps MD5)

The best solution I can think of is removing the SSLProxyMachineCertificateFile option, as it doesn't look like it has any reason to be there
from functionality point of view (waiting for confirmation)

Comment 11 Ivan Necas 2019-02-19 16:13:25 UTC
Combining "Note: Apache httpd mod_ssl does not support PKCS#8 key format." from https://access.redhat.com/solutions/3214421 and "You can't [use BEGIN RSA PRIVATE KEY] because the format isn't allowed in FIPS mode because it uses MD5 for key derivation." from http://openssl.6102.n7.nabble.com/Not-getting-quot-RSA-quot-keyword-for-a-key-in-fips-mode-td58588.html, it gives us the only option of not using SSLProxyMachineCertificateFile for the capsule.

Comment 12 Ivan Necas 2019-02-19 16:22:57 UTC
Created redmine issue https://projects.theforeman.org/issues/26088 from this bug

Comment 13 Ivan Necas 2019-02-19 16:49:41 UTC
The fixes are proposed in upstream (https://github.com/theforeman/puppet-certs/pull/242, https://github.com/theforeman/puppet-foreman_proxy_content/pull/194), the reproducer machine has been patched and handed over to QEs to continue with capsule validation.

Comment 16 Ivan Necas 2019-02-20 10:50:14 UTC
It seems like this workaround https://github.com/theforeman/puppet-certs/pull/243 works on FIPS machine, while keeping the setting for proxy client cert. Deployed it on the reproducer machine for more testing. The installer passed fine with that one.

Comment 20 Peter Ondrejka 2019-03-11 17:11:21 UTC
Verified on Sat 6.5 snap 19

Comment 23 errata-xmlrpc 2019-05-14 12:40:09 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:1222