EST Protocol
Enrollment over Secure Transport (EST) is a certificate enrollment protocol that operates over HTTPS, offering strong client authentication and enhanced security features. This implementation of EST (Enrollment over Secure Transport), as defined in RFC 7030 (https://www.rfc-editor.org/rfc/rfc7030.html), supports basic certificate enrollment and retrieval of CA certificates. Communication is secured using HTTPS (HTTP over TLS) over TCP, and client authentication is performed using HTTP Basic Authentication.
Prerequisites
Registration
In emCA, EST (Enrollment over Secure Transport) requests are authenticated using Basic Authentication. Therefore, before utilizing the EST protocol, the client must first register through the emCA Portal.
Steps to be followed by the emCA Team:
Once the emCA team receives the client's username, password, and IP address,
The emCA Administrator should log in to the emCA portal using an Admin account,
And proceed to register the client details to authorize EST access.
emCA Administrator should login to the emCA portal as Admin/CA Admin and navigate to “Application Settings‟ -> “External Applications‟ as shown in the figure.

Click on “New‟ The following screen will be displayed.


Once the details are entered, click on “Proceed‟.
The “Verify and Confirm‟ page will be displayed where the Admin/CA Admin should verify and entered details and authenticate by entering the Username and Password

Click on “Sign and Save‟.

Create Certificate Template
Create the appropriate certificate template in emCA by following the steps outlined in Section – Manage Profiles of the emCA User Manual. Be sure to record important details such as the Profile Name or Certificate Profile ID, as these will be required during the certificate enrollment process.
Configure Properties
EST configuration must be defined in the database. The required values must be updated in the `api_properties` table to enable EST CA server functionality.
est.ca.server.user.profile
EST Cert Profile name/ID
Active
est.ca.server.group.id
Group Id
Active
Please find the following script to update the necessary values in the database:
-- Certificate template profile ID
UPDATE api_properties
SET prop_value = 'xxxx', prop_status = 1
WHERE prop_key = 'est.ca.server.user.profile';
-- EST CA server group information
UPDATE api_properties
SET prop_value = '1', prop_status = 1
WHERE prop_key = ‘est.ca.server.group.id';
Note: To apply the configuration changes, it is necessary to restart the Tomcat services. Please follow the steps below to restart Tomcat:
EST Endpoint
Base URL: https://www.example.com/emCAServices/est
Supported Endpoints
Endpoint
Type of Method
Description
/cacerts
GET
Retrieves the CA certificates (trust anchors).
/simpleenroll
POST
Accepts CSR and returns a signed certificate (enrollment).
API Specifications
Get/est/cacerts
Purpose: Returns a response with the CA certificates (trust anchors)
Sample Request
GET /est/cacerts HTTP/1.1 Host: emca.example.com Authorization: Basic <Base64(username:password)> Accept: application/pkcs7-mime
Sample Response
Status: 200 OK Content-Type: application/pkcs7-mime Body: PKCS#7 SignedData containing the CA certificate chain.
POST/est/simpleenroll
Purpose: Submits a certificate signing request (CSR) and returns a signed certificate.
Sample Request
POST /emCAServices/est/simpleenroll HTTP/1.1
Host: emca.example.com
Authorization: Basic <Base64(username:password)>
Content-Type: application/pkcs10
Content-Transfer-Encoding: <Base64-encoded PKCS#10 CSR>
Sample Response
Status: 200 OK if successful,
Content-Type: application/pkcs7-mime
Body: PKCS#7 SignedData with the signed certificate
Authentication
EST (Enrollment over Secure Transport) uses HTTP Basic Authentication to verify client identity before processing requests.
Clients must provide valid username and password credentials in the Authorization header of each request.
Only authenticated clients are permitted to access endpoints.
HTTP Response Status Codes
200
OK
Returned when a request (e.g., CSR Attributes, CA Certs, and enrollment) completes successfully.
400
Bad Request
Returned when a CSR is malformed, missing required fields, or improperly encoded.
401
Unauthorized
Returned when the client fails to provide correct authentication (HTTP auth, TLS cert).
500
Internal Server Error
Unexpected error on the EST server
Last updated