Certificate Autoenrollment
Certificate Autoenrollment is a feature of Safeguard Authentication Services based on Microsoft Open Specifications. Certificate Autoenrollment allows macOS/macOS® clients to take advantage of existing Microsoft infrastructure to automatically enroll for and install certificates. Certificate policy controls which certificates are enrolled and what properties those certificates will have.
With Certificate Autoenrollment, a public/private key pair is automatically generated according to certificate template parameters defined in Group Policy. The public key is sent to the Certification Authority (CA), and the CA responds with a new certificate corresponding to the public key, which is installed along with the private key into the appropriate system or user keychain on the Mac client.
You can use Group Policy to automatically configure which certificate enrollment policy servers to use for Certificate Autoenrollment and to periodically run Certificate Autoenrollment.
This section explains the system requirements for Certificate Autoenrollment and walks you through policy setup as well as client-side usage and troubleshooting.
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 back end script is certstore-mac.sh. This script provides a fully functional implementation that uses the /usr/bin/security tool to integrate with macOS keychains.
Prior to installing One Identity Certificate Autoenrollment, ensure your system meets the following minimum hardware and software requirements.
Table 2: Certificate Autoenrollment: Minimum requirements
Operating system |
macOS 10.13 (or later) |
Java unlimited strength policy files |
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:
- Microsoft Certificate Enrollment Web Services
In order for Certificate Autoenrollment to function on client computers, you must configure the following policies:
- Certificate Services Client - Auto-Enrollment Group Policy
- Certificate Services Client - Certificate Enrollment PolicyGroup Policy
- Certificate Templates
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:
- JRE: The lib/security directory usually holds these files.
- JDK: The jre/lib/security directory usually holds these files.