-
Notifications
You must be signed in to change notification settings - Fork 0
SCEP
-
In the DMZ, install the Dogtag Perl-based RA. Point this RA to the IPA-CA. (ipa-host:443). It will talk to the IPA-CA directly. As part of the setup, an RA agent is created that allows the RA to send agent authenticated requests to the IPA-CA (similar tot IPA-RA plugin)
-
Populate RA with relevant agents/users
-
On the ipa server, replace
/etc/httpd/conf.d/ipa-pki-proxy.conf
with the following:
# VERSION 1 - DO NOT REMOVE THIS LINE ProxyRequests Off # matches for ee port <LocationMatch "^/ca/ee/ca/checkRequest|^/ca/ee/ca/getCertChain|^/ca/ee/ca/getTokenInfo|^/ca/ee/ca/tokenAuthenticate|^/ca/ocsp|^/ca/ee/ca/updateNumberRange|^/ca/ee/ca/profileSubmit"> NSSOptions +StdEnvVars +ExportCertData +StrictRequire +OptRenegotiate NSSVerifyClient none ProxyPassMatch ajp://localhost:9447/ ProxyPassReverse ajp://localhost:9447/ </LocationMatch> # matches for admin port <LocationMatch "^/ca/admin/ca/getCertChain|^/ca/admin/ca/getConfigEntries|^/ca/admin/ca/getCookie|^/ca/admin/ca/getStatus|^/ca/admin/ca/securityDomainLogin|^/ca/admin/ca/getDomainXML|^/ca/admin/ca/registerRaUser|^/ca/admin/ca/getBySerial"> NSSOptions +StdEnvVars +ExportCertData +StrictRequire +OptRenegotiate NSSVerifyClient none ProxyPassMatch ajp://localhost:9447/ ProxyPassReverse ajp://localhost:9447/ </LocationMatch> # matches for agent port and eeca port <LocationMatch "^/ca/agent/ca/displayBySerial|^/ca/agent/ca/doRevoke|^/ca/agent/ca/doUnrevoke|^/ca/agent/ca/updateDomainXML|^/ca/eeca/ca/profileSubmitSSLClient|^/ca/ee/ca/pkiclient"> NSSOptions +StdEnvVars +ExportCertData +StrictRequire +OptRenegotiate NSSVerifyClient require ProxyPassMatch ajp://localhost:9447/ ProxyPassReverse ajp://localhost:9447/ </LocationMatch>
-
Note that this adds the following servlets:
/ca/ee/ca/profileSubmit
,/ca/admin/ca/registerRaUser
,/ca/admin/ca/getBySerial
for installation of the RA, and/ca/ee/ca/pkiclient
for SCEP operations./ca/ee/ca/pkiclient
must be added to the stanza for those operations that require client auth. -
Change/add the following parameter in
/var/lib/pki-ca/conf/CS.cfg
:ca.scep.enable=true
-
Restart IPA
-
When installing the RA, make sure to refer to the security domain CA as
https://{ipa_hostname}:443
. -
This was tested using an SCEP client (sscep) modified to use sha-2 encryption. (link to be provided)
-
client contacts dogtag-RA and requests a pin (one time password). This generates a pin request on the RA.
-
An agent connects to the RA using a browser and provides a agent cert for authentication. The agent approves the pin request and a pin is generated.
-
The agent provides the pin to the client in an out-of-band method. (phone, email)
-
Client router sends SCEP requests to enroll to dogtag RA, providing the pin as the challenge password.
-
RA sends agent authenticated request to IPA-CA to decode the SCEP message. The CA decodes the message and sends it back to the RA.
-
RA reads the decoded message from IPA and confirms that the pin is correct. If so, it passes an agent authenticated request to the IPA-CA to perform the enrolment operation. The RA retrieves the issued cert.
-
RA deletes the pin from its database
-
RA provides cert to the client router.
-
RA maintains its own identity store of authorized agents. This means dual maintenanceof identity information (ipa and ra).
-
RA store is in sqlite - which has no real time replication mechanism (sqlite has an online, optimized, replication mechanism — see http://www.sqlite.org/backup.html. It would be enough to call the backup API from the RA)
-
RA is in DMZ. Better not to have identity/pin info in the DMZ.
-
IPA would be the location for identity and pin operations.
-
Clients inside the firewall would connect directly to IPA.
-
Clients outside the firewall would connect to a scaled down RA, which would simply proxy the requests to IPA.
-
User contacts IPA and provides kerberos credentials. Through some UI or CLI command, he requests that router X be able to enroll via SCEP. As the user is authenticated as an agent, IPA generates a pin and provides it to the user.
-
router contacts IPA with relevant pin in SCEP request.
-
IPA verifies pin and sends an agent authenticated SCEP request (from the extended IPA-RA plugin) to the IPA-CA.
-
IPA-CA issues the cert
-
IPA returns cert to client router
-
Client contacts new dummy RA in the DMZ and requests a pin.
-
Pin request is proxied to IPA.
-
Agent contacts IPA and provides kerberos credentials. Through some UI or CLI command, he lists the pending pin requests and approves the pin request. IPA generates a pin and displays it. The agent provides the pin to the client in an out-of-band manner.
-
router contacts the RA with relevant pin in SCEP request.
-
RA proxies this request to IPA
-
IPA verifies pin and sends an agent authenticated SCEP request (from the extended IPA-RA plugin) to the IPA-CA.
-
IPA-CA issues the cert
-
IPA returns cert to the RA, which returns it to the client router.