Bug 1678322 - httpd fails to start after installing capsule in FIPS mode
Summary: httpd fails to start after installing capsule in FIPS mode
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite 6
Classification: Red Hat
Component: Installer
Version: 6.5.0
Hardware: Unspecified
OS: Unspecified
unspecified
urgent vote
Target Milestone: Released
Assignee: Ivan Necas
QA Contact: Peter Ondrejka
URL:
Whiteboard:
Depends On:
Blocks: 1170174 1667089
TreeView+ depends on / blocked
 
Reported: 2019-02-18 13:59 UTC by Peter Ondrejka
Modified: 2019-10-07 17:20 UTC (History)
11 users (show)

Fixed In Version: puppet-certs-4.4.4
Doc Type: Known Issue
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-05-14 12:40:09 UTC


Attachments (Terms of Use)
installer output (6.91 KB, text/plain)
2019-02-18 14:00 UTC, Peter Ondrejka
no flags Details
httpd error log (187 bytes, text/plain)
2019-02-18 14:02 UTC, Peter Ondrejka
no flags Details
katello-reverse-proxy_error_ssl (94 bytes, text/plain)
2019-02-18 14:02 UTC, Peter Ondrejka
no flags Details


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2019:1222 None None None 2019-05-14 12:40:23 UTC
Github theforeman puppet-certs pull 243 None None None 2019-02-26 13:44:04 UTC
Foreman Issue Tracker 24974 None None None 2019-02-19 17:00:13 UTC

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


Note You need to log in before you can comment on or make changes to this bug.