This service will be undergoing maintenance at 00:00 UTC, 2017-10-23 It is expected to last about 30 minutes
Bug 1256039 - Unable to clone IPA with external CA
Unable to clone IPA with external CA
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: pki-core (Show other bugs)
6.7
Unspecified Unspecified
urgent Severity urgent
: rc
: 6.8
Assigned To: Endi Sukma Dewata
Asha Akkiangady
Aneta Šteflová Petrová
: ZStream
Depends On:
Blocks: 1172231 1272422 1291747
  Show dependency treegraph
 
Reported: 2015-08-23 10:41 EDT by Daniel Riek
Modified: 2016-05-10 20:32 EDT (History)
19 users (show)

See Also:
Fixed In Version: pki-core-9.0.3-47.el6
Doc Type: Bug Fix
Doc Text:
Cloning a PKI server with an externally-signed CA certificate to Red Hat Enterprise Linux 7 no longer fails Previously, when a Red Hat Enterprise Linux 6 public key infrastructure (PKI) server was installed with an externally-signed certificate authority (CA) certificate, the subsystem user was not created properly. Consequently, cloning to Red Hat Enterprise Linux 7 failed. For new Red Hat Enterprise Linux 6 installations, the code has been fixed to create the subsystem user, add it to the subsystem group, and map the subsystem certificate to the user properly. For existing Red Hat Enterprise Linux 6 installations, the code has been modified to automatically restore the subsystem user to the correct configuration on restart. As a result, cloning to Red Hat Enterprise Linux 7 now succeeds in the described situation.
Story Points: ---
Clone Of:
: 1291747 (view as bug list)
Environment:
Last Closed: 2016-05-10 20:32:23 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
pki-core-9.0.3-bz1256039.patch (33.63 KB, patch)
2016-01-27 18:51 EST, Endi Sukma Dewata
no flags Details | Diff
pki-core.spec (52.02 KB, text/plain)
2016-01-27 19:04 EST, Endi Sukma Dewata
no flags Details
pki-core-9.0.3-bz1256039.patch (34.05 KB, patch)
2016-01-27 19:06 EST, Endi Sukma Dewata
no flags Details | Diff

  None (edit)
Description Daniel Riek 2015-08-23 10:41:39 EDT
Description of problem:
Following the instructions in https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Linux_Domain_Identity_Authentication_and_Policy_Guide/migrating-ipa-proc.html to upgrade IPA from RHEL 6.7 to 7.1 fails. The issue may be the missing REST API on the old master. From /var/log/ipareplica-install.log:
"""
  InsecureRequestWarning)
pkispawn    : WARNING  ....... unable to validate security domain user/password through REST interface. Interface not available
pkispawn    : ERROR    ....... Exception from Java Configuration Servlet: Failed to obtain installation token from security domain

ipa         : CRITICAL failed to configure ca instance Command ''/usr/sbin/pkispawn' '-s' 'CA' '-f' '/tmp/tmp1hNC01'' returned non-zero exit status 1

"""

Version-Release number of selected component (if applicable):
Old master:
ipa-server-3.0.0-47
pki-common-9.0.3-43
...

New replica:
ipa-server-4.1.0-18.el7_1.4
pki-base-10.1.2-7.el7
...
Comment 2 Petr Vobornik 2015-08-24 04:38:58 EDT
Daniel, did this fail occur after you applied the patch from bug 1256038 ?
Comment 3 Daniel Riek 2015-08-24 12:45:06 EDT
(In reply to Petr Vobornik from comment #2)
> Daniel, did this fail occur after you applied the patch from bug 1256038 ?

Yes, this is after that workaround. This failure happens during the CA setup.

I think this may be the issue described here: 

https://www.redhat.com/archives/freeipa-users/2015-July/msg00359.html

"""
The problem is in pki-* packages. The old version that is used with freeipa-3.0 does not have REST API and the one that is used in freeipa-4.1 does not expect that. The issue is fixed in pki 10.2.6 but I'm not sure if it is available in CentOS, yet.
"""

pki 10.2.6 is not available in RHEL yet as far as I can see.
Comment 4 Martin Kosek 2015-08-26 04:24:53 EDT
I am confused, does it mean pki-core in RHEL-6 is again incompatible with the one in RHEL-7 and we cannot create RHEL-7 clone out of it?

CCing PKI folks.
Comment 5 Ade Lee 2015-08-27 13:09:49 EDT
The Dogtag issue for this is https://fedorahosted.org/pki/ticket/1495
and I have verified that this fix has not been backported to the 10.1 branch.

Still trying to figure out how the need for this fix was introduced.  Basically it means that some async update broke migration, necessitating this fix.

We need to start testing IPA migration with async updates.

Assuming this is in fact the issue - and I'd like to see logs to verify this - we should attempt backporting the fix in 1495.


Please attach logs  -->

clone:
/var/log/pki/pki-tomcat/ca/debug
journalctl -u pki-tomcatd@pki-tomcat.service
logs under /var/log/pki/pki-tomcat

master:
logs under: /var/log/pki-ca

so we can be sure this is the real issue.
Comment 8 Endi Sukma Dewata 2015-08-27 19:48:13 EDT
Hi, Matt created a scratch build that contains the backport of the fix for ticket #1495 for RHEL 7.1:
https://brewweb.devel.redhat.com/taskinfo?taskID=9759387

Please save the current logs as Ade requested in comment #5, then please try installing the scratch build on the replica and try the migration again. If the problem still happens after installing the scratch build, please post the logs. Thanks.
Comment 9 Daniel Riek 2015-08-29 10:49:16 EDT
Update: to add to the confusion, I just tried the same with a freshly installed instance of IPA 3 from RHEL 6.7 and I *was* able to create the 7.1 replica. The only difference is (other than that this is a fresh install), that the new installation does not use an external Root CA.

I will try the fix later today and report back.
Comment 10 Daniel Riek 2015-08-29 11:07:50 EDT
(In reply to Daniel Riek from comment #9)
> Update: to add to the confusion, I just tried the same with a freshly
> installed instance of IPA 3 from RHEL 6.7 and I *was* able to create the 7.1
> replica. The only difference is (other than that this is a fresh install),
> that the new installation does not use an external Root CA.
>
Actually, another difference was, that on the fresh install the CA never was manually renewed.
 
> I will try the fix later today and report back.
The new packages did not fix the issue. 

[root@ipaserver2 ~]# rpm -qa pki\*
pki-tools-10.1.2-8.scratch.el7_1.x86_64
pki-javadoc-10.1.2-8.scratch.el7_1.noarch
pki-tks-10.1.2-8.scratch.el7_1.noarch
pki-symkey-10.1.2-8.scratch.el7_1.x86_64
pki-ca-10.1.2-8.scratch.el7_1.noarch
pki-server-10.1.2-8.scratch.el7_1.noarch
pki-ocsp-10.1.2-8.scratch.el7_1.noarch
pki-kra-10.1.2-8.scratch.el7_1.noarch
pki-base-10.1.2-8.scratch.el7_1.noarch
pki-tps-tomcat-10.1.2-8.scratch.el7_1.noarch


-----
2015-08-29T15:02:08Z DEBUG stderr=/usr/lib/python2.7/site-packages/urllib3/connectionpool.py:769: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)
pkispawn    : WARNING  ....... unable to validate security domain user/password through REST interface. Interface not available
pkispawn    : ERROR    ....... Exception from Java Configuration Servlet: Failed to obtain installation token from security domain: org.jboss.resteasy.client.ClientResponseFailure: Error status 404 Not Found returned


I am attaching the log.
Comment 37 Scott Poore 2015-11-11 11:30:32 EST
Endi,

FYI, I was able to reproduce the same way David did on RHEL6.7.  So, this is a RHEL6 issue not a RHEL7 replica issue right?

And the ipa-server-install failure was mostly a result of the missing subsystem user that can be restored with the tool you mentioned?  Shouldn't something in the ipa-server-install process make sure that user exists?

Thanks,
Scott
Comment 38 Petr Vobornik 2015-11-11 12:09:13 EST
I regard the missing subsystem users as PKI upgrade issue on  RHEL 6. As such I don't think it would clean to fix it in ipa-server-install which is run on different host. Creating workarounds in other components instead of fixing bugs does not scale.

Product in this bug should be changed to RHEL 6.
Comment 39 Scott Poore 2015-11-11 12:29:47 EST
I'm not sure I understand how this is an upgrade issue.  I was unable to see the subsystem user after a fresh IPA install on RHEL6.7 (with the patch for bug #1263703) finished.  Is PKI being upgraded in some way during an ipa-server-install that's causing the user to not be in place?

So where exactly is the bug?  Should the PKI install/config have created the user?  That would make sense I guess.  So should this bug then handle creating that subsystem user instead of requiring the restore script workaround?
Comment 49 Petr Vobornik 2015-12-01 04:56:48 EST
Endi, isn't it possible to run check for missing subsystem user and then its restore on pki package update?

I would say that smooth migration path is very important.
Comment 50 Endi Sukma Dewata 2015-12-01 12:00:55 EST
Petr, we may be able to call the restore script automatically from PKI server startup script. That way we know that the DS is running so the script can perform the changes in the database. I'd rather not call the script during package update (i.e. in RPM spec) because there's no guarantee the DS will be running at that time.

Does IPA require the admin to restart the server during upgrade? Or is it done automatically? If there are multiple replicas are they upgraded & restarted in certain order?
Comment 51 Petr Vobornik 2015-12-01 12:54:14 EST
IPA on update of ipa-server package runs 
  /usr/sbin/ipa-ldap-updater --upgrade
Which performs various update tasks and restarts DS other services couple of times. `ipacatl restart` doesn't need to be run.

In theory ipa can run restore-subsystem-user.py but I don't think it belongs to there.

Replicas are updated as admins run the rpm update. Should be one at a time.
Comment 64 Scott Poore 2016-01-11 16:50:29 EST
Verified.

Version ::

ipa-server-3.0.0-50.el6.x86_64
pki-ca-9.0.3-44.el6.noarch
python-nss-0.16.0-1.el6.x86_64

Results :: 

[root@vm6 ~]# ipa-server-install -a Secret123 -p Secret123 -r EXAMPLE.TEST --external-ca -U

The log file for this installation can be found in /var/log/ipaserver-install.log
==============================================================================
This program will set up the IPA Server.

This includes:
  * Configure a stand-alone CA (dogtag) for certificate management
  * Configure the Network Time Daemon (ntpd)
  * Create and configure an instance of Directory Server
  * Create and configure a Kerberos Key Distribution Center (KDC)
  * Configure Apache (httpd)

To accept the default shown in brackets, press the Enter key.

The domain name has been determined based on the host name.


The IPA Master Server will be configured with:
Hostname:      vm6.example.test
IP address:    192.168.122.156
Domain name:   example.test
Realm name:    EXAMPLE.TEST

Configuring NTP daemon (ntpd)
  [1/4]: stopping ntpd
  [2/4]: writing configuration
  [3/4]: configuring ntpd to start on boot
  [4/4]: starting ntpd
Done configuring NTP daemon (ntpd).
Configuring directory server for the CA (pkids): Estimated time 30 seconds
  [1/3]: creating directory server user
  [2/3]: creating directory server instance
  [3/3]: restarting directory server
Done configuring directory server for the CA (pkids).
Configuring certificate server (pki-cad): Estimated time 3 minutes 30 seconds
  [1/4]: creating certificate server user
  [2/4]: creating pki-ca instance
  [3/4]: configuring certificate server instance
The next step is to get /root/ipa.csr signed by your CA and re-run ipa-server-install as:
ipa-server-install --external_cert_file=/path/to/signed_certificate --external_ca_file=/path/to/external_ca_certificate
[root@vm6 ~]# CADIR=/root/RootCA
[root@vm6 ~]# mkdir $CADIR
[root@vm6 ~]# cd $CADIR
[root@vm6 RootCA]# rm  -f *
[root@vm6 RootCA]# echo Secret123 > $CADIR/mypass1
[root@vm6 RootCA]# certutil -N -d $CADIR -f $CADIR/mypass1
[root@vm6 RootCA]# SERNUM=$RANDOM
[root@vm6 RootCA]# SERNUM=$(( SERNUM += 1 ))
[root@vm6 RootCA]# echo -e "y\n10\ny\n" | \
> certutil -S -d $CADIR \
>     -n RootCA \
>     -s "CN=MyRootCA, O=fakerealm1" \
>     -x \
>     -t "CTu,CTu,CTu" \
>     -g 2048 \
>     -m $SERNUM\
>     -v 60 \
>     -z /etc/group \
>     -2 \
>     --keyUsage certSigning \
>     --nsCertType sslCA,smimeCA,objectSigningCA \
>     -f $CADIR/mypass1


Generating key.  This may take a few moments...

Is this a CA certificate [y/N]?
Enter the path length constraint, enter to skip [<0 for unlimited path]: > Is this a critical extension [y/N]?
Notice: Trust flag u is set automatically if the private key is present.
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# certutil -L -d $CADIR -n "RootCA" -a >> /root/ipacacert.asc
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# certutil -d $CADIR -C -m $RANDOM -a -i /root/ipa.csr -o /root/ipa.crt -c RootCA -1 -2
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 0
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 1
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 5
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 6
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 9
Is this a critical extension [y/N]?
y
Is this a CA certificate [y/N]?
y
Enter the path length constraint, enter to skip [<0 for unlimited path]: > 
Is this a critical extension [y/N]?
y
Enter Password or Pin for "NSS Certificate DB":
[root@vm6 RootCA]# ipa-server-install -p Secret123 --external_cert_file /root/ipa.crt --external_ca_file /root/ipacacert.asc

The log file for this installation can be found in /var/log/ipaserver-install.log
==============================================================================
This program will set up the IPA Server.

This includes:
  * Configure a stand-alone CA (dogtag) for certificate management
  * Configure the Network Time Daemon (ntpd)
  * Create and configure an instance of Directory Server
  * Create and configure a Kerberos Key Distribution Center (KDC)
  * Configure Apache (httpd)

To accept the default shown in brackets, press the Enter key.


The IPA Master Server will be configured with:
Hostname:      vm6.example.test
IP address:    192.168.122.156
Domain name:   example.test
Realm name:    EXAMPLE.TEST

Configuring certificate server (pki-cad): Estimated time 3 minutes 30 seconds
  [1/20]: creating certificate server user
  [2/20]: configuring certificate server instance
  [3/20]: disabling nonces
  [4/20]: creating CA agent PKCS#12 file in /root
  [5/20]: creating RA agent certificate database
  [6/20]: importing CA chain to RA certificate database
  [7/20]: fixing RA database permissions
  [8/20]: setting up signing cert profile
  [9/20]: set up CRL publishing
  [10/20]: set certificate subject base
  [11/20]: enabling Subject Key Identifier
  [12/20]: setting audit signing renewal to 2 years
  [13/20]: configuring certificate server to start on boot
  [14/20]: restarting certificate server
  [15/20]: requesting RA certificate from CA
  [16/20]: issuing RA agent certificate
  [17/20]: adding RA agent as a trusted user
  [18/20]: configure certificate renewals
  [19/20]: configure Server-Cert certificate renewal
  [20/20]: Configure HTTP to proxy connections
Done configuring certificate server (pki-cad).
Configuring directory server (dirsrv): Estimated time 1 minute
  [1/38]: creating directory server user
  [2/38]: creating directory server instance
  [3/38]: adding default schema
  [4/38]: enabling memberof plugin
  [5/38]: enabling winsync plugin
  [6/38]: configuring replication version plugin
  [7/38]: enabling IPA enrollment plugin
  [8/38]: enabling ldapi
  [9/38]: disabling betxn plugins
  [10/38]: configuring uniqueness plugin
  [11/38]: configuring uuid plugin
  [12/38]: configuring modrdn plugin
  [13/38]: enabling entryUSN plugin
  [14/38]: configuring lockout plugin
  [15/38]: creating indices
  [16/38]: enabling referential integrity plugin
  [17/38]: configuring ssl for ds instance
  [18/38]: configuring certmap.conf
  [19/38]: configure autobind for root
  [20/38]: configure new location for managed entries
  [21/38]: restarting directory server
  [22/38]: adding default layout
  [23/38]: adding delegation layout
  [24/38]: adding replication acis
  [25/38]: creating container for managed entries
  [26/38]: configuring user private groups
  [27/38]: configuring netgroups from hostgroups
  [28/38]: creating default Sudo bind user
  [29/38]: creating default Auto Member layout
  [30/38]: adding range check plugin
  [31/38]: creating default HBAC rule allow_all
  [32/38]: Upload CA cert to the directory
  [33/38]: initializing group membership
  [34/38]: adding master entry
  [35/38]: configuring Posix uid/gid generation
  [36/38]: enabling compatibility plugin
  [37/38]: tuning directory server
  [38/38]: configuring directory to start on boot
Done configuring directory server (dirsrv).
Configuring Kerberos KDC (krb5kdc): Estimated time 30 seconds
  [1/10]: adding sasl mappings to the directory
  [2/10]: adding kerberos container to the directory
  [3/10]: configuring KDC
  [4/10]: initialize kerberos container
  [5/10]: adding default ACIs
  [6/10]: creating a keytab for the directory
  [7/10]: creating a keytab for the machine
  [8/10]: adding the password extension to the directory
  [9/10]: starting the KDC
  [10/10]: configuring KDC to start on boot
Done configuring Kerberos KDC (krb5kdc).
Configuring kadmin
  [1/2]: starting kadmin 
  [2/2]: configuring kadmin to start on boot
Done configuring kadmin.
Configuring ipa_memcached
  [1/2]: starting ipa_memcached 
  [2/2]: configuring ipa_memcached to start on boot
Done configuring ipa_memcached.
Configuring the web interface (httpd): Estimated time 1 minute
  [1/14]: setting mod_nss port to 443
  [2/14]: setting mod_nss protocol list to TLSv1.0 - TLSv1.2
  [3/14]: setting mod_nss password file
  [4/14]: enabling mod_nss renegotiate
  [5/14]: adding URL rewriting rules
  [6/14]: configuring httpd
  [7/14]: setting up ssl
  [8/14]: setting up browser autoconfig
  [9/14]: publish CA cert
  [10/14]: creating a keytab for httpd
  [11/14]: clean up any existing httpd ccache
  [12/14]: configuring SELinux for httpd
  [13/14]: restarting httpd
  [14/14]: configuring httpd to start on boot
Done configuring the web interface (httpd).
Applying LDAP updates
Restarting the directory server
Restarting the KDC
Sample zone file for bind has been created in /tmp/sample.zone.C0SFm7.db
Restarting the web server
==============================================================================
Setup complete

Next steps:
	1. You must make sure these network ports are open:
		TCP Ports:
		  * 80, 443: HTTP/HTTPS
		  * 389, 636: LDAP/LDAPS
		  * 88, 464: kerberos
		UDP Ports:
		  * 88, 464: kerberos
		  * 123: ntp

	2. You can now obtain a kerberos ticket using the command: 'kinit admin'
	   This ticket will allow you to use the IPA tools (e.g., ipa user-add)
	   and the web user interface.

Be sure to back up the CA certificate stored in /root/cacert.p12
This file is required to create replicas. The password for this
file is the Directory Manager password
Comment 66 Endi Sukma Dewata 2016-01-27 18:45:51 EST
It looks like the patch was applied incorrectly and the verification was incomplete. Reopening the bug.
Comment 67 Endi Sukma Dewata 2016-01-27 18:51 EST
Created attachment 1118909 [details]
pki-core-9.0.3-bz1256039.patch

This is the correct patch that has been rebased.
Comment 68 Endi Sukma Dewata 2016-01-27 19:04 EST
Created attachment 1118910 [details]
pki-core.spec

The spec file has been updated to remove the incorrect patch and to add the correct and rebased patch to the bottom.
Comment 69 Endi Sukma Dewata 2016-01-27 19:06 EST
Created attachment 1118911 [details]
pki-core-9.0.3-bz1256039.patch

Fixed rebase issue.
Comment 70 Endi Sukma Dewata 2016-01-27 19:21:33 EST
The proper verification is described in comment #29 (execute all steps except 10-11) which basically:
1. Install IPA on RHEL 6 with externally signed CA (you can use NSS database)
2. Clone IPA to another RHEL 6.

To fix existing installation, this fix need to be installed on both master and clone. Make sure the master is restarted after installation, then retry the cloning process.
Comment 72 Endi Sukma Dewata 2016-01-28 15:42:58 EST
Correction, in comment #70 the second step should have said "Clone IPA to RHEL 7."
Comment 74 Scott Poore 2016-01-29 09:41:03 EST
Endi,

Just to confirm, from my incomplete verification in comment #64, I'm missing the replica prepare and install on a RHEL7 host right?

Is there anything I specifically need to check other than master and replica installs as expected?

Thanks,
Scott
Comment 75 Endi Sukma Dewata 2016-01-29 10:54:34 EST
Yes, you only need to add cloning to RHEL 7. This is basically a RHEL 6 to 7 migration bug. If the clone is installed successfully the bug is verified.
Comment 76 Scott Poore 2016-02-16 11:05:59 EST
Verified.

Version ::

On RHEL 6.8 IPA Master:

ipa-server-3.0.0-50.el6.x86_64
pki-ca-9.0.3-47.el6.noarch
python-nss-0.16.0-1.el6.x86_64

On RHEL 7.2 IPA Replica:

ipa-server-4.2.0-15.el7_2.5.x86_64
pki-ca-10.2.5-6.el7.noarch
python-nss-0.16.0-3.el7.x86_64

Results ::

########################### RHEL 6.8 IPA MASTER ###########################

[root@vm6 ~]# ipa-server-install -a Secret123 -p Secret123 -r EXAMPLE.TEST --external-ca -U

The log file for this installation can be found in /var/log/ipaserver-install.log
==============================================================================
This program will set up the IPA Server.

This includes:
  * Configure a stand-alone CA (dogtag) for certificate management
  * Configure the Network Time Daemon (ntpd)
  * Create and configure an instance of Directory Server
  * Create and configure a Kerberos Key Distribution Center (KDC)
  * Configure Apache (httpd)

To accept the default shown in brackets, press the Enter key.

The domain name has been determined based on the host name.


The IPA Master Server will be configured with:
Hostname:      vm6.example.test
IP address:    192.168.122.156
Domain name:   example.test
Realm name:    EXAMPLE.TEST

Configuring NTP daemon (ntpd)
  [1/4]: stopping ntpd
  [2/4]: writing configuration
  [3/4]: configuring ntpd to start on boot
  [4/4]: starting ntpd
Done configuring NTP daemon (ntpd).
Configuring directory server for the CA (pkids): Estimated time 30 seconds
  [1/3]: creating directory server user
  [2/3]: creating directory server instance
  [3/3]: restarting directory server
Done configuring directory server for the CA (pkids).
Configuring certificate server (pki-cad): Estimated time 3 minutes 30 seconds
  [1/4]: creating certificate server user
  [2/4]: creating pki-ca instance
  [3/4]: configuring certificate server instance
The next step is to get /root/ipa.csr signed by your CA and re-run ipa-server-install as:
ipa-server-install --external_cert_file=/path/to/signed_certificate --external_ca_file=/path/to/external_ca_certificate
[root@vm6 ~]# 
[root@vm6 ~]# 
[root@vm6 ~]# 
[root@vm6 ~]# CADIR=/root/RootCA
[root@vm6 ~]# mkdir $CADIR
[root@vm6 ~]# cd $CADIR
[root@vm6 RootCA]# rm  -f *
[root@vm6 RootCA]# echo Secret123 > $CADIR/mypass1
[root@vm6 RootCA]# certutil -N -d $CADIR -f $CADIR/mypass1
[root@vm6 RootCA]# SERNUM=$RANDOM
[root@vm6 RootCA]# SERNUM=$(( SERNUM += 1 ))
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# echo -e "y\n10\ny\n" | \
> certutil -S -d $CADIR \
>      -n RootCA \
>      -s "CN=MyRootCA, O=fakerealm1" \
>      -x \
>      -t "CTu,CTu,CTu" \
>      -g 2048 \
>      -m $SERNUM\
>      -v 60 \
>      -z /etc/group \
>      -2 \
>      --keyUsage certSigning \
>      --nsCertType sslCA,smimeCA,objectSigningCA \
>      -f $CADIR/mypass1


Generating key.  This may take a few moments...

Is this a CA certificate [y/N]?
Enter the path length constraint, enter to skip [<0 for unlimited path]: > Is this a critical extension [y/N]?
Notice: Trust flag u is set automatically if the private key is present.
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# certutil -L -d $CADIR -n "RootCA" -a >> /root/ipacacert.asc
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# certutil -d $CADIR -C -m $RANDOM -a -i /root/ipa.csr -o /root/ipa.crt -c RootCA -1 -2
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 0
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 1
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 5
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 6
		0 - Digital Signature
		1 - Non-repudiation
		2 - Key encipherment
		3 - Data encipherment
		4 - Key agreement
		5 - Cert signing key
		6 - CRL signing key
		Other to finish
 > 9
Is this a critical extension [y/N]?
y
Is this a CA certificate [y/N]?
y
Enter the path length constraint, enter to skip [<0 for unlimited path]: > 
Is this a critical extension [y/N]?
y
Enter Password or Pin for "NSS Certificate DB":
[root@vm6 RootCA]# ls /root/
anaconda-ks.cfg  install.log  install.log.syslog  ipacacert.asc  ipa.crt  ipa.csr  RootCA
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# ipa-server-install -p Secret123 --external_cert_file /root/ipa.crt \
>     --external_ca_file /root/ipacacert.asc

The log file for this installation can be found in /var/log/ipaserver-install.log
==============================================================================
This program will set up the IPA Server.

This includes:
  * Configure a stand-alone CA (dogtag) for certificate management
  * Configure the Network Time Daemon (ntpd)
  * Create and configure an instance of Directory Server
  * Create and configure a Kerberos Key Distribution Center (KDC)
  * Configure Apache (httpd)

To accept the default shown in brackets, press the Enter key.


The IPA Master Server will be configured with:
Hostname:      vm6.example.test
IP address:    192.168.122.156
Domain name:   example.test
Realm name:    EXAMPLE.TEST

Configuring certificate server (pki-cad): Estimated time 3 minutes 30 seconds
  [1/20]: creating certificate server user
  [2/20]: configuring certificate server instance
  [3/20]: disabling nonces
  [4/20]: creating CA agent PKCS#12 file in /root
  [5/20]: creating RA agent certificate database
  [6/20]: importing CA chain to RA certificate database
  [7/20]: fixing RA database permissions
  [8/20]: setting up signing cert profile
  [9/20]: set up CRL publishing
  [10/20]: set certificate subject base
  [11/20]: enabling Subject Key Identifier
  [12/20]: setting audit signing renewal to 2 years
  [13/20]: configuring certificate server to start on boot
  [14/20]: restarting certificate server
  [15/20]: requesting RA certificate from CA
  [16/20]: issuing RA agent certificate
  [17/20]: adding RA agent as a trusted user
  [18/20]: configure certificate renewals
  [19/20]: configure Server-Cert certificate renewal
  [20/20]: Configure HTTP to proxy connections
Done configuring certificate server (pki-cad).
Configuring directory server (dirsrv): Estimated time 1 minute
  [1/38]: creating directory server user
  [2/38]: creating directory server instance
  [3/38]: adding default schema
  [4/38]: enabling memberof plugin
  [5/38]: enabling winsync plugin
  [6/38]: configuring replication version plugin
  [7/38]: enabling IPA enrollment plugin
  [8/38]: enabling ldapi
  [9/38]: disabling betxn plugins
  [10/38]: configuring uniqueness plugin
  [11/38]: configuring uuid plugin
  [12/38]: configuring modrdn plugin
  [13/38]: enabling entryUSN plugin
  [14/38]: configuring lockout plugin
  [15/38]: creating indices
  [16/38]: enabling referential integrity plugin
  [17/38]: configuring ssl for ds instance
  [18/38]: configuring certmap.conf
  [19/38]: configure autobind for root
  [20/38]: configure new location for managed entries
  [21/38]: restarting directory server
  [22/38]: adding default layout
  [23/38]: adding delegation layout
  [24/38]: adding replication acis
  [25/38]: creating container for managed entries
  [26/38]: configuring user private groups
  [27/38]: configuring netgroups from hostgroups
  [28/38]: creating default Sudo bind user
  [29/38]: creating default Auto Member layout
  [30/38]: adding range check plugin
  [31/38]: creating default HBAC rule allow_all
  [32/38]: Upload CA cert to the directory
  [33/38]: initializing group membership
  [34/38]: adding master entry
  [35/38]: configuring Posix uid/gid generation
  [36/38]: enabling compatibility plugin
  [37/38]: tuning directory server
  [38/38]: configuring directory to start on boot
Done configuring directory server (dirsrv).
Configuring Kerberos KDC (krb5kdc): Estimated time 30 seconds
  [1/10]: adding sasl mappings to the directory
  [2/10]: adding kerberos container to the directory
  [3/10]: configuring KDC
  [4/10]: initialize kerberos container
  [5/10]: adding default ACIs
  [6/10]: creating a keytab for the directory
  [7/10]: creating a keytab for the machine
  [8/10]: adding the password extension to the directory
  [9/10]: starting the KDC
  [10/10]: configuring KDC to start on boot
Done configuring Kerberos KDC (krb5kdc).
Configuring kadmin
  [1/2]: starting kadmin 
  [2/2]: configuring kadmin to start on boot
Done configuring kadmin.
Configuring ipa_memcached
  [1/2]: starting ipa_memcached 
  [2/2]: configuring ipa_memcached to start on boot
Done configuring ipa_memcached.
Configuring the web interface (httpd): Estimated time 1 minute
  [1/14]: setting mod_nss port to 443
  [2/14]: setting mod_nss protocol list to TLSv1.0 - TLSv1.2
  [3/14]: setting mod_nss password file
  [4/14]: enabling mod_nss renegotiate
  [5/14]: adding URL rewriting rules
  [6/14]: configuring httpd
  [7/14]: setting up ssl
  [8/14]: setting up browser autoconfig
  [9/14]: publish CA cert
  [10/14]: creating a keytab for httpd
  [11/14]: clean up any existing httpd ccache
  [12/14]: configuring SELinux for httpd
  [13/14]: restarting httpd
  [14/14]: configuring httpd to start on boot
Done configuring the web interface (httpd).
Applying LDAP updates
Restarting the directory server
Restarting the KDC
Sample zone file for bind has been created in /tmp/sample.zone.CMq0Oz.db
Restarting the web server
==============================================================================
Setup complete

Next steps:
	1. You must make sure these network ports are open:
		TCP Ports:
		  * 80, 443: HTTP/HTTPS
		  * 389, 636: LDAP/LDAPS
		  * 88, 464: kerberos
		UDP Ports:
		  * 88, 464: kerberos
		  * 123: ntp

	2. You can now obtain a kerberos ticket using the command: 'kinit admin'
	   This ticket will allow you to use the IPA tools (e.g., ipa user-add)
	   and the web user interface.

Be sure to back up the CA certificate stored in /root/cacert.p12
This file is required to create replicas. The password for this
file is the Directory Manager password
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# 
[root@vm6 RootCA]# cd
[root@vm6 ~]# ipa-replica-prepare -p Secret123 vm7.example.test
Preparing replica for vm7.example.test from vm6.example.test
Creating SSL certificate for the Directory Server
Creating SSL certificate for the dogtag Directory Server
Creating SSL certificate for the Web Server
Exporting RA certificate
Copying additional files
Finalizing configuration
Packaging replica information into /var/lib/ipa/replica-info-vm7.example.test.gpg
[root@vm6 ~]# scp /var/lib/ipa/replica-info-vm7.example.test.gpg 192.168.122.157:/root
The authenticity of host '192.168.122.157 (<no hostip for proxy command>)' can't be established.
RSA key fingerprint is 1d:dd:91:12:62:34:a3:a2:7d:1b:58:c9:5c:c8:d3:77.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.122.157' (RSA) to the list of known hosts.
root@192.168.122.157's password: 
replica-info-vm7.example.test.gpg                                    100%   40KB  40.5KB/s   00:00    


[root@vm6 ~]# scp 192.168.122.157:/usr/share/ipa/copy-schema-to-ca.py .
root@192.168.122.157's password: 
copy-schema-to-ca.py                                                 100% 3606     3.5KB/s   00:00    


[root@vm6 ~]# python /root/copy-schema-to-ca.py 
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60kerberos.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60samba.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60ipaconfig.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60basev2.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60basev3.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60ipadns.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/61kerberos-ipav3.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/65ipasudo.ldif
ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/05rfc2247.ldif
ipa         : INFO     Restarting CA DS
ipa         : INFO     Schema updated successfully


########################### RHEL 7.2 IPA MASTER ###########################


[root@vm7 ~]# ipa-replica-install --setup-ca -w Secret123 -p Secret123 /root/replica-info-vm7.example.test.gpg
Run connection check to master
Check connection from replica to remote master 'vm6.example.test':
   Directory Service: Unsecure port (389): OK
   Directory Service: Secure port (636): OK
   Kerberos KDC: TCP (88): OK
   Kerberos Kpasswd: TCP (464): OK
   HTTP Server: Unsecure port (80): OK
   HTTP Server: Secure port (443): OK
   PKI-CA: Directory Service port (7389): OK

The following list of ports use UDP protocol and would need to be
checked manually:
   Kerberos KDC: UDP (88): SKIPPED
   Kerberos Kpasswd: UDP (464): SKIPPED

Connection from replica to master is OK.
Start listening on required ports for remote master check
Get credentials to log in to remote master
Check SSH connection to remote master
Execute check on remote master
Check connection from master to remote replica 'vm7.example.test':
   Directory Service: Unsecure port (389): OK
   Directory Service: Secure port (636): OK
   Kerberos KDC: TCP (88): OK
   Kerberos KDC: UDP (88): OK
   Kerberos Kpasswd: TCP (464): OK
   Kerberos Kpasswd: UDP (464): OK
   HTTP Server: Unsecure port (80): OK
   HTTP Server: Secure port (443): OK

Connection from master to replica is OK.

Connection check OK
Configuring NTP daemon (ntpd)
  [1/4]: stopping ntpd
  [2/4]: writing configuration
  [3/4]: configuring ntpd to start on boot
  [4/4]: starting ntpd
Done configuring NTP daemon (ntpd).
Configuring directory server (dirsrv). Estimated time: 1 minute
  [1/38]: creating directory server user
  [2/38]: creating directory server instance
  [3/38]: adding default schema
  [4/38]: enabling memberof plugin
  [5/38]: enabling winsync plugin
  [6/38]: configuring replication version plugin
  [7/38]: enabling IPA enrollment plugin
  [8/38]: enabling ldapi
  [9/38]: configuring uniqueness plugin
  [10/38]: configuring uuid plugin
  [11/38]: configuring modrdn plugin
  [12/38]: configuring DNS plugin
  [13/38]: enabling entryUSN plugin
  [14/38]: configuring lockout plugin
  [15/38]: creating indices
  [16/38]: enabling referential integrity plugin
  [17/38]: configuring ssl for ds instance
  [18/38]: configuring certmap.conf
  [19/38]: configure autobind for root
  [20/38]: configure new location for managed entries
  [21/38]: configure dirsrv ccache
  [22/38]: enable SASL mapping fallback
  [23/38]: restarting directory server
  [24/38]: setting up initial replication
Starting replication, please wait until this has completed.
Update in progress, 9 seconds elapsed
Update succeeded

  [25/38]: updating schema
  [26/38]: setting Auto Member configuration
  [27/38]: enabling S4U2Proxy delegation
  [28/38]: importing CA certificates from LDAP
  [29/38]: initializing group membership
  [30/38]: adding master entry
  [31/38]: initializing domain level
  [32/38]: configuring Posix uid/gid generation
  [33/38]: adding replication acis
  [34/38]: enabling compatibility plugin
  [35/38]: activating sidgen plugin
  [36/38]: activating extdom plugin
  [37/38]: tuning directory server
  [38/38]: configuring directory to start on boot
Done configuring directory server (dirsrv).
Configuring certificate server (pki-tomcatd). Estimated time: 3 minutes 30 seconds
  [1/23]: creating certificate server user
  [2/23]: configuring certificate server instance
  [3/23]: stopping certificate server instance to update CS.cfg
  [4/23]: backing up CS.cfg
  [5/23]: disabling nonces
  [6/23]: set up CRL publishing
  [7/23]: enable PKIX certificate path discovery and validation
  [8/23]: starting certificate server instance
  [9/23]: creating RA agent certificate database
  [10/23]: importing CA chain to RA certificate database
  [11/23]: fixing RA database permissions
  [12/23]: setting up signing cert profile
  [13/23]: setting audit signing renewal to 2 years
  [14/23]: importing RA certificate from PKCS #12 file
  [15/23]: authorizing RA to modify profiles
  [16/23]: configure certmonger for renewals
  [17/23]: configure certificate renewals
  [18/23]: configure Server-Cert certificate renewal
  [19/23]: Configure HTTP to proxy connections
  [20/23]: restarting certificate server
  [21/23]: migrating certificate profiles to LDAP
  [22/23]: importing IPA certificate profiles
  [23/23]: adding default CA ACL
Done configuring certificate server (pki-tomcatd).
Restarting the directory and certificate servers
Configuring Kerberos KDC (krb5kdc). Estimated time: 30 seconds
  [1/8]: adding sasl mappings to the directory
  [2/8]: configuring KDC
  [3/8]: creating a keytab for the directory
  [4/8]: creating a keytab for the machine
  [5/8]: adding the password extension to the directory
  [6/8]: enable GSSAPI for replication
  [7/8]: starting the KDC
  [8/8]: configuring KDC to start on boot
Done configuring Kerberos KDC (krb5kdc).
Configuring kadmin
  [1/2]: starting kadmin 
  [2/2]: configuring kadmin to start on boot
Done configuring kadmin.
Configuring ipa_memcached
  [1/2]: starting ipa_memcached 
  [2/2]: configuring ipa_memcached to start on boot
Done configuring ipa_memcached.
Configuring the web interface (httpd). Estimated time: 1 minute
  [1/18]: setting mod_nss port to 443
  [2/18]: setting mod_nss protocol list to TLSv1.0 - TLSv1.2
  [3/18]: setting mod_nss password file
  [4/18]: enabling mod_nss renegotiate
  [5/18]: adding URL rewriting rules
  [6/18]: configuring httpd
  [7/18]: configure certmonger for renewals
  [8/18]: setting up ssl
  [9/18]: importing CA certificates from LDAP
  [10/18]: publish CA cert
  [11/18]: creating a keytab for httpd
  [12/18]: clean up any existing httpd ccache
  [13/18]: configuring SELinux for httpd
  [14/18]: create KDC proxy user
  [15/18]: create KDC proxy config
  [16/18]: enable KDC proxy
  [17/18]: restarting httpd
  [18/18]: configuring httpd to start on boot
Done configuring the web interface (httpd).
Configuring ipa-otpd
  [1/2]: starting ipa-otpd 
  [2/2]: configuring ipa-otpd to start on boot
Done configuring ipa-otpd.
Applying LDAP updates
Upgrading IPA:
  [1/9]: stopping directory server
  [2/9]: saving configuration
  [3/9]: disabling listeners
  [4/9]: enabling DS global lock
  [5/9]: starting directory server
  [6/9]: upgrading server
  [7/9]: stopping directory server
  [8/9]: restoring configuration
  [9/9]: starting directory server
Done.
Restarting the directory server
Restarting the KDC
Restarting the web server


[root@vm7 ~]# ipa cert-find
-----------------------
14 certificates matched
-----------------------
  Serial number (hex): 0x1
  Serial number: 1
  Status: VALID
  Subject: CN=OCSP Subsystem,O=EXAMPLE.TEST

  Serial number (hex): 0x2
  Serial number: 2
  Status: VALID
  Subject: CN=vm6.example.test,O=EXAMPLE.TEST

  Serial number (hex): 0x3
  Serial number: 3
  Status: VALID
  Subject: CN=CA Subsystem,O=EXAMPLE.TEST

  Serial number (hex): 0x4
  Serial number: 4
  Status: VALID
  Subject: CN=CA Audit,O=EXAMPLE.TEST

  Serial number (hex): 0x5
  Serial number: 5
  Status: VALID
  Subject: CN=ipa-ca-agent,O=EXAMPLE.TEST

  Serial number (hex): 0x6
  Serial number: 6
  Status: VALID
  Subject: CN=IPA RA,O=EXAMPLE.TEST

  Serial number (hex): 0x7
  Serial number: 7
  Status: VALID
  Subject: CN=vm6.example.test,O=EXAMPLE.TEST

  Serial number (hex): 0x8
  Serial number: 8
  Status: VALID
  Subject: CN=vm6.example.test,O=EXAMPLE.TEST

  Serial number (hex): 0x9
  Serial number: 9
  Status: VALID
  Subject: CN=vm6.example.test,O=EXAMPLE.TEST

  Serial number (hex): 0xA
  Serial number: 10
  Status: VALID
  Subject: CN=Object Signing Cert,O=EXAMPLE.TEST

  Serial number (hex): 0xB
  Serial number: 11
  Status: VALID
  Subject: CN=vm7.example.test,O=EXAMPLE.TEST

  Serial number (hex): 0xC
  Serial number: 12
  Status: VALID
  Subject: CN=vm7.example.test,O=EXAMPLE.TEST

  Serial number (hex): 0xD
  Serial number: 13
  Status: VALID
  Subject: CN=vm7.example.test,O=EXAMPLE.TEST

  Serial number (hex): 0xE
  Serial number: 14
  Status: VALID
  Subject: CN=vm7.example.test,O=EXAMPLE.TEST
-----------------------------
Number of entries returned 14
-----------------------------
[root@vm7 ~]#
Comment 81 errata-xmlrpc 2016-05-10 20:32:23 EDT
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://rhn.redhat.com/errata/RHBA-2016-0909.html

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