Most of the Certificate Autoenrollment code is implemented in Java. After this code has successfully requested a certificate from a CA, it invokes platform-specific code to store the private key and certificate in a suitable way for the operating system or for particular applications. This platform-specific code is implemented as a shell script, certstore.sh, in the /var/opt/quest/vascert/script directory.
The certstore.sh script is a platform-agnostic front end that chooses and loads a platform-specific back end script:
-
For macOS, the backend script is certstore-mac.sh. This script provides a fully functional implementation that uses the /usr/bin/security tool to integrate with macOS keychains.
-
For UNIX/Linux, the backend script is certstore-DEV.sh. This script provides a skeletal implementation that is convenient for initial experimentation and may be used as the basis for implementation; the script itself does not provide a fully functional implementation:
-
Some of the shell functions in certstore-DEV.sh simply print "UNIMPLEMENTED" and return a non-zero exit status to indicate failure.
-
The following shell functions in certstore-DEV.sh are mock implementations designed to facilitate simple experimentation with the "vascert pulse" command for a user:
-
importIdentity()
-
exportUserCerts()
-
These mock implementations assume that the openssl command is installed and available on the default PATH.
-
The mock implementations also make some platform-specific assumptions (for example, they invoke the mv command with the --backup option), but these are not critical and can be removed.
As a consequence, on UNIX/Linux some important Certificate Autoenrollment commands, such as "vascert pulse" for the superuser will NOT work until the necessary platform-specific functionality has been implemented in certstore-DEV.sh or a similar script.
See the Examples and further explanation for modifying certstore-DEV.sh on Linux and Unix (284711) KB article for more information on modifying certstore-DEV.sh and a simple example script.
Prior to installing One Identity Certificate Autoenrollment, ensure your system meets the following minimum hardware and software requirements.
Table 18: Certificate Autoenrollment: Minimum requirements
Operating system |
macOS 10.13 (or later)
Red Hat® Enterprise Linux® 6 (or later)
Oracle Solaris® 11 (or later)
SUSE® Linux Enterprise Server 11 (or later)
Ubuntu® 14.04 LTS (or later) |
Java unlimited strength policy files |
For more information, see For more information, see Java requirement: Unlimited Strength Jurisdiction Policy Files.. |
Authentication Services |
One Identity Authentication Services version 4.1.2 (or later). |
Additional software |
Certificate Autoenrollment depends on services provided by a Microsoft Enterprise Certificate Authority (CA) in your environment.
In addition to Active Directory and an Enterprise CA, you must install the following software in your environment:
In order for Certificate Autoenrollment to function on client computers, you must configure the following policies:
Additionally, you must configure Java 1.6 (or later) as the default JVM for your system.
NOTE: Install JRE (Java Runtime Environment) on all platforms other than macOS. macOS requires JDK (Java Development Kit). Typing java on the command line provides instructions.
-
For Linux/UNIX operating systems, install JRE 1.6 (or later).
-
For Mac OS X (that is, your operating system tells you to get it from Apple), install what Apple provides (JRE).
-
For macOS (that is, your operating system tells you to get it from Oracle), install the JDK. |
Rights |
Enterprise Administrator rights to install software and configure Group Policy and Certificate Template policy (only if Certificate Autoenrollment is not already configured for Windows hosts in your environment.) |
By default, most JRE and JDK implementations enforce limits on cryptographic key strengths that satisfy US export regulations. These limits are often insufficient for Certificate Autoenrollment and may lead to "java.security.InvalidKeyException: Illegal key size" failures. The "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files" can be installed to remove these limits and enable Certificate Autoenrollment to function properly.
Do I need the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files?
In general the answer is: Yes, these files are needed.
Java 9 and above do not require these files, but Java 6, 7, and 8 rely on these files.
Obtaining and installing the policy files
For Java implementations from IBM, the policy files are usually bundled with the JDK but not the JRE, so it may be more convenient to install the JDK rather than just the JRE. Once the JDK is installed its demo/jce/policy-files/unrestricted directory should contain two JAR files:
-
local_policy.jar
-
US_export_policy.jar
Use these files to replace the corresponding JAR files in the jre/lib/security directory of the JDK. Alternatively, the "Unrestricted SDK JCE policy files" can be downloaded from ibm.com.
For Java implementations from Sun, Oracle and Apple and for OpenJDK implementations, the policy files must be downloaded from Oracle. Each major Java version requires its own policy files:
Each of these downloads is a zip file that includes a README.txt and two JAR files, local_policy.jar and US_export_policy.jar. Use these JAR files to replace the corresponding files in the JRE or JDK:
The following procedures walk you through the installation and configuration of the required components. If Certificate Autoenrollment is already configured for Windows hosts in your environment, you can skip to Using Certificate Autoenrollment.
To perform these procedures, you need Enterprise Administrator rights to install software and configure Group Policy and Certificate Template policy.
Note: Microsoft has documented all of the steps to install and configure Certificate Enrollment Web Services.
Certificate Enrollment Web Services are now installed. Next, you will configure policy settings to enable Certificate Autoenrollment.