Complete Contents
About This Guide
PART 1: Netscape Certificate Management System
Chapter 1: Introduction to Certificate Management System
Chapter 2: Administration Tasks and Tool
Chapter 3: Configuration
PART 2: Managing Certificate Management System
Chapter 4: Installing and Uninstalling CMS Instances
Chapter 5: Starting and Stopping CMS Instances
PART 3: System-Level Configuration
Chapter 6: Configuring Ports, Database, and SMTP Settings
Chapter 7: Managing Privileged Users and Groups
Chapter 8: Keys and Certificates
PART 4: Authentication
Chapter 9: Introduction to Authentication
Chapter 10: Authentication Modules for End-Entity Enrollment
Chapter 11: Using the PIN Generator Tool
Chapter 12: Configuring Authentication for End Users
Chapter 13: Developing Custom Authentication Modules
PART 5: Job Scheduling and Notification
Chapter 14: Introduction to Job Scheduling and Notifications
Chapter 15: Configuring Schedulable Jobs
PART 6: Policies
Chapter 16: Introduction to Policy
Chapter 17: Constraints-Specific Policy Modules
Chapter 18: Extension-Specific Policy Modules
Chapter 19: Configuring a Subsystem's Policies
PART 7: Publishing
Chapter 20: Introduction to Publishing Certificates and CRLs
Chapter 21: Modules for Publishing Certificates and CRLs
Chapter 22: Configuring a Certificate Manager for Publishing
PART 8: Agent and End-Entity Interfaces
Chapter 23: Introduction to End-Entity and Agent Interfaces
Chapter 24: Customizing End-Entity and Agent Interfaces
PART 9: Logs
Chapter 25: Introduction to Logs
Chapter 26: Managing Logs
PART 10: Issuance and Management of End-Entity Certificates
Chapter 27: Issuing and Managing End-Entity Certificates
Chapter 28: Recovering Encrypted Data
PART 11: Appendixes
Appendix A: Distinguished Names
Appendix B: Backing Up and Restoring Data
Appendix C: Command-Line Utilities
Appendix D: Certificate Database Tool
Appendix E: Key Database Tool
Appendix F: Netscape Signing Tool
Appendix G: SSL Strength Tool
Appendix H: SSL Debugging Tool
Netscape Certificate Management System Administrator's Guide: Constraints-Specific Policy Modules
Previous Next Contents Index Bookshelf


Chapter 17 Constraints-Specific Policy Modules

You can configure Certificate Management System to apply certain organizational policies to an end entity's certificate enrollment, renewal, and revocation requests before servicing them. For example, some of the policies you might want Certificate Management System to apply to these requests may include setting a minimum and maximum limit on validity period and key length of certificates, setting extensions based on the end entity's role within an organization, setting signing algorithms, and so on.

Certificate Management System comes with various policy plug-in modules that define the formulation of a certificate's content and govern the server's certificate generation and management operations. The modules are categorized, based on their functionality, into two groups: constraints-specific policy modules and extension-specific policy modules.

This chapter explains the constraints-specific policy plug-in modules in detail--it lists and briefly describes the modules that are installed with Certificate Management System, and then explains each one in detail. For details on extension-specific modules, see "Extension-Specific Policy Modules".

The chapter has the following sections:


Overview of Constraints-Specific Policy Modules
Constraints-specific policy plug-in modules help you define rules or constraints that Certificate Management System uses to evaluate an incoming certificate enrollment, renewal, or revocation request. Each module enables you to configure the server to check the request for particular attributes, and, based on the configured criteria, either modify these attributes or reject the request altogether.

Policy plug-in modules are implemented as Java classes and are registered in the CMS policy framework. The Policy Plugin Registration tab of the CMS window (Figure 17.1) lists all the modules that are registered with a CMS instance.

Figure 17.1 CMS window showing policy modules registered with a Certificate Manager

Table 17.1 lists constraints-specific policy modules that are installed with a Certificate Manager. An installation of a Registration Manager also includes all these modules, expect for the ones noted below:

You can use whichever modules you need in order to define policy rules for a Certificate Manager or Registration Manager. Note that no modules are provided for the Data Recovery Manager. Both Certificate Manager and Registration Manager subject a request to policy checking as explained in "Policy Processor". Keep in mind that the changes made to a request by a Registration Manager may be overwritten by a Certificate Manager when it subjects the request to its own policy checks.

Table 17.1 Default constraints-specific policy plug-in modules

Plug-in module name
Function
DSAKeyConstraints
Certifies only those DSA keys that have specific key lengths. For details, see "DSA Key Constraints Policy".
IssuerConstraints
Checks for certificates that have been issued by a particular CA. For details, see "Issuer Constraints Policy".
KeyAlgorithmConstraints
Certifies only those keys that are generated using one of the permitted algorithms, such as RSA or DSA. For details, see "Key Algorithm Constraints Policy".
PinPresentConstraints
Checks for the presence of end users' PINs in the authentication directory when they request a certificate and accordingly approves or rejects the request. For details, see "PIN Present Policy".
RenewalConstraints
Allows or rejects requests for renewal of expired certificates. For details, see "Renewal Constraints Policy".
RevocationConstraints
Allows or rejects requests for revocation of expired certificates. For details, see "Revocation Constraints Policy".
RenewalValidityConstraints
Enforces the number of days before which a currently active certificate can be renewed and sets a new validity period for the renewed certificate. For details, see "Renewal Validity Constraints Policy".
RSAKeyConstraints
Certifies only those RSA keys that have specific key lengths. For details, see "RSA Key Constraints Policy".
SigningAlgorithmConstraints
Specifies the signature algorithm to be used by the CA (a Certificate Manager) to sign certificates. For details, see "Signing Algorithm Constraints Policy".
SubCANameConstraints
Checks for issuer name uniqueness and prevents a CA from issuing a subordinate CA certificate with issuer name same as its own. For details, see "Subordinate CA Name Constraints Policy".
UniqueSubjectNameConstraints
Checks for certificate subject name uniqueness and prevents issuance of multiple certificates with same subject names. For details, see "Unique Subject Name Constraints Policy".
ValidityConstraints
Checks whether the validity period of a certificate falls within a specific validity period. For details, see "Validity Constraints Policy".


DSA Key Constraints Policy
The DSAKeyConstraints plug-in module implements the DSA key constraints policy. This policy imposes constraints on the following:

The policy restricts the key size to one of the sizes, such as 512 or 1024, supported by Certificate Management System.

You may apply this policy to end-entity certificate enrollment and renewal requests. For example, if you want your CA to certify public keys up to 512 bits in length for end users and 1024 for servers, you can configure Certificate Management System to do so using the policy.

During installation, Certificate Management System automatically creates an instance of the DSA key constraints policy. See "DSAKeyRule Rule".

DSAKeyConstraints Module

The Java class that implements the DSA key constraints policy is as follows:

com.netscape.certsrv.policy.DSAKeyConstraints

Figure 17.2 shows how configurable parameters for the DSAKeyConstraints module are displayed in the CMS window.

Figure 17.2 Parameters of the DSAKeyConstraints module

The configuration shown in Figure 17.2 creates a policy rule named DSAKeySizeForClientCert, which enforces a rule that the server should restrict the minimum and maximum key sizes for all DSA key-based client certificates to 512 and 1024, respectively.

Table 17.2 describes each of the parameters.

Table 17.2 Description of parameters defined in the DSAKeyConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

minSize
Specifies the minimum length, in bits, for the key (the length of the modulus in bits). The value must be smaller than or equal to the one specified by the maxSize parameter.

In general, a longer key size results in a key pair that is more difficult to crack. You may want to enforce a minimum length to ensure a minimum level of security.

Permissible values: 512 or 1024. You may also enter a custom key size that is between 512 and 1024, in increments of 64 bits. The default value is 512.

Example: 512

maxSize
Specifies the maximum length, in bits, for the key.

Permissible values: 512 or 1024. You may also enter a custom key size that is between 512 and 1024, in increments of 64 bits. The default value is 1024.

Example: 1024

exponents
Limits the possible public exponent values. Use commas to separate different values.

Some exponents are more widely used than others. The following exponent values are recommended for arithmetic and security reasons: 17 and 65537. Of these two values, 65537 is preferred. (This setting is mainly an issue if you are using your own software for generating key pairs. Key-generation programs in Netscape clients and servers use 3 or 65537.)

Permissible values: A combination of 3, 7, 17, and 65537, separated by commas. The default value is 3,7,17,65537.

Example: 17,65537

DSAKeyRule Rule

The rule named DSAKeyRule is an instance of the DSAKeyConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.2. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Issuer Constraints Policy
The IssuerConstraints plug-in module implements the issuer constraints policy. The policy enables you to effectively deploy certificate-based enrollment explained in "Certificate-Based Enrollment".

The policy enables the Certificate Manager to authenticate an end user by checking the issuer DN of the CA that has issued the certificate the user presents as an enrollment token during enrollment. Note that in the current implementation, the CA that issues the new certificates must be the same as the one that has issued the certificates used for SSL client authentication; that is, the issuer DN in the authentication certificate must match the issuer DN specified in the policy configuration.

During installation, Certificate Management System automatically creates an instance of the issuer constraints policy. See "IssuerRule Rule". The server also provides appropriate enrollment forms for the three certificate-based enrollment scenarios explained above; see "Enrollment Forms".

IssuerConstraints Module

The name of the Java class that implements the issuer constraints policy is as follows:

com.netscape.certsrv.policy.IssuerConstraints

Figure 17.3 shows how the configurable parameters for the IssuerConstraints module are displayed in the CMS window.

Figure 17.3 Parameters of the IssuerConstraints module

The configuration shown in Figure 17.3 creates a policy rule named IssuerNameCheckInCert, which enforces a rule that the server should check for certificates issued by a CA, whose issuer DN is CN=bulkGenCA,OU=Information Systems,O=Siroe Corp,C=US.

Table 17.3 describes each parameter.

Table 17.3 Description of parameters defined in the IssuerConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client AND certauthEnroll==on

issuerDN
Specifies the name of the CA that has issued certificates that are to be checked. You should enter the issuer name as it appears in the CA's signing certificate; the same name also appears as the issuer name in certificates the CA signs.

Permissible values: A valid issuer name.

Example: CN=bulkGenCA,OU=Information Systems,O=Siroe Corp,C=US

IssuerRule Rule

The rule named IssuerRule is an instance of the IssuerConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.3. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Key Algorithm Constraints Policy
The KeyAlgorithmConstraints plug-in module implements the key algorithm constraints policy. This policy restricts the key algorithm requested in certificates to the algorithms, such as RSA and DSA, supported by Certificate Management System. In other words, this policy allows you to set restrictions on the types of public keys certified by Certificate Management System.

You may apply this policy to end-entity certificate enrollment and renewal requests. For example, if you want your CA to certify only those public keys that comply with the PKCS-1 RSA Encryption Standard, you can configure the server for that using the policy.

During installation, Certificate Management System automatically creates an instance of the key algorithm constraints policy. See "KeyAlgRule Rule".

KeyAlgorithmConstraints Module

The name of the Java class that implements the key algorithm constraints policy is as follows:

com.netscape.certsrv.policy.KeyAlgorithmConstraints

Figure 17.4 shows how the configurable parameters for the KeyAlgorithmConstraints module are displayed in the CMS window.

Figure 17.4 Parameters of the KeyAlgorithmConstraints module

The configuration shown in Figure 17.4 creates a policy rule named KeyAlgForClientServerCert, which enforces a rule that the server should restrict the key algorithm of all client and server certificates to RSA.

Table 17.4 gives details about each of the parameters.

Table 17.4 Description of parameters defined in the KeyAlgorithmConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client AND HTTP_PARAMS.certType==server

algorithms
Specifies the key type the server should certify. The default is RSA.

Permissible values: RSA, DSA, or RSA,DSA.

Example: RSA

KeyAlgRule Rule

The rule named KeyAlgRule is an instance of the KeyAlgorithmConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.4. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


PIN Present Policy
The PinPresentConstraints plug-in module implements the PIN present policy. This policy checks for the presence of a user's PIN in the authentication directory and accordingly allows or rejects the certificate request. This policy enables you to effectively deploy one of the directory-based enrollment methods, the password and PIN-based enrollment with PIN removal, by restricting users from enrolling for multiple certificates. For details, see "Setting Up Authentication for End-User Enrollment".

In the password and PIN-based enrollment method, users enroll for a certificate using their directory user ID, password and PIN. After a PIN has been used to successfully authenticate a user, the Certificate Manager calls the PinRemovalListener module. This module removes the PIN from the authentication directory when the Certificate Manager issues the requested certificate.

Note that listeners in Certificate Management System are objects which register themselves as interested in knowing about certain events--for example, change in the state of a request--and carry out a specific task. For more information on listeners, check the samples directory:

<server_root>/cms_sdk/samples/listeners

Once the PIN is removed from the authentication directory, it prevents the user from enrolling for another certificate.

The above mentioned process works smoothly if a Certificate Manager or Registration Manager is configured to use the master directory for authenticating users. The process may not work smoothly in deployment scenarios that involve replicated directories. In these scenarios, you need to use the PIN present policy to verify that the PIN has been removed from the directory. Here's an example of such a scenario:

A Registration Manager acts as an enrollment authority, passing authenticated certificate requests to a Certificate Manager; the users have no direct interaction with the Certificate Manager. The Certificate Manager (CA) and the master corporate directory are behind the firewall. The Registration Manager and a replica of the corporate directory are outside the firewall. The Certificate Manager is configured to communicate with the master corporate directory. The Registration Manager has read-only permission to the replicated corporate directory, and it uses the directory for authenticating end entities. Both the Certificate Manager and Registration Manager are configured for password and PIN-based enrollment with the PIN removal feature turned on. The master corporate directory is configured to update its replica (outside the firewall) every 10 minutes.

When a user enrolls for a certificate request using the End Entity Service interface of the Registration Manager, it authenticates the user against the replica of the corporate directory. If the user presents a valid user ID, password and PIN, the Registration Manager authenticates the user successfully and forwards the request to the Certificate Manager. As the Registration Manager is configured for PIN-based enrollment with PIN removal, it attempts to remove the PIN from the directory, but it can't as it has no write permission to the replicated directory; the PIN is still around.

When the Certificate Manager processes the request forwarded by the Registration Manager, it calls the PinRemovalListener module, which in turn removes the PIN from the master corporate directory when the Certificate Manager issues the certificate. (The Certificate Manager sends the certificate to the Registration Manager, which in turn sends it to the user.)

Although the CA has removed the PIN from the master directory, the replicated directory still has the PIN, because the update hasn't occurred. In the meantime, the user may enroll again successfully (from the Registration Manager) for another certificate and receive it from the Certificate Manager.

The PIN present policy enables you to prevent users from successfully enrolling for multiple certificates from the Registration Manager during the time interval between directory updates. If you configure the CA to use this policy to check the master directory for PINs before issuing certificates, successive certificate requests would fail because the PIN has been removed from the master directory. This way, even if the Registration Manager authenticates successive request, the Certificate Manager rejects them, thus ensuring that a user has only one certificate.

Unlike some of the other policy modules, Certificate Management System does not create an instance of the PIN present policy during installation. If you want a Certificate Manager or Registration Manager to check for PINs, you must create an instance of the PinPresentConstraints module and configure it. For instructions, see "Step 3. Enable the PIN Present Policy".

PinPresentConstraints Module

The Java class that implements the PIN present policy is as follows:

com.netscape.certsrv.policy.PinPresentConstraints

Figure 17.5 shows how the configurable parameters for the PinPresentConstraints module are displayed in the CMS window.

Figure 17.5 Parameters of the PinPresentConstraints module

The configuration shown in Figure 17.5 creates a policy rule named PinCheckForClientCert, which specifies that the server should check the configured authentication directory for PINs before issuing a client certificate. To locate the user's PIN attribute in the directory, the server should start the search from the O=siroe.com node.

Table 17.5 gives details about each of the parameters.

Table 17.5 Description of parameters defined in the PinPresentConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

ldap.basedn
Specifies the base DN for searching the authentication directory--the server uses the user ID from the HTTP input (what a user enters in the enrollment from) and the base DN to construct an LDAP search filter. Note that the base DN you specify here must match the one specified in the authentication rule.

Permissible values: Any valid DN string of up to 255 characters.

Example: O=siroe.com


Renewal Constraints Policy
The RenewalConstraints plug-in module implements the renewal constraints policy. This policy imposes constraints on renewal of expired certificates--it allows or restricts the server from renewing expired certificates. You may apply this policy to end-entity certificate renewal requests. For example, if you don't want to allow renewal of expired certificates, you can configure the server accordingly using the policy.

In certain situations you may want to allow renewal of expired certificates. Here's one such scenario: the renewal validity constraints policy (see "Renewal Validity Constraints Policy") allows you to delay renewal of certificates as long as possible to reduce the overhead of processing new certificate requests. Typically, you would limit the renewal process to the last few weeks of validity of the certificate. However, if the interval specified in the policy rule is not sufficient for renewal to occur, some of your users may not be able to renew their certificates prior to the expiration time and end up owning expired certificates.

Note that the policy also allows you to specify how long after the expiration of a certificate can it be renewed. If you don't specify this, the server will renew all expired certificates that are submitted for renewal.

During installation, Certificate Management System automatically creates an instance of the renewal constraints policy. See "RenewalConstraintsRule Rule".

RenewalConstraints Module

The Java class that implements the renewal constraints policy is as follows:

com.netscape.certsrv.policy.RenewalConstraints

Figure 17.6 shows how the configurable parameters for the RenewalConstraints module are displayed in the CMS window.

Figure 17.6 Parameters of the RenewalConstraints module

The configuration shown in Figure 17.6 creates a policy rule named RenewExpiredClientCert, which specifies that the server should allow renewal of expired client certificates, if it's done within 30 days from the expiry date.

Table 17.6 gives details about each of the parameters.

Table 17.6 Description of parameters defined in the RenewalConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

allowExpiredCerts
Specifies whether to allow or prevent renewal of expired certificates. Check the box if you want the server to renew expired certificates (default). Uncheck the box if you don't want the server to renew expired certificates.

renewalNotAfter
Specifies how long, in days, after the expiration of a certificate can it be renewed. The default value is 30 days. If you leave the field blank, the server will renew all expired certificates that are submitted for renewal.

Example: 15

RenewalConstraintsRule Rule

The rule named RenewalConstraintsRule is an instance of the RenewalConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.6. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Revocation Constraints Policy
The RevocationConstraints plug-in module implements the revocation constraints policy. This policy imposes constraints on revocation of expired certificates--it allows or restricts the server from revoking expired certificates. You may apply this policy to end-entity certificate revocation requests. For example, if you don't want to allow revocation of expired certificates in your PKI setup, you can configure the server accordingly using the policy.

During installation, Certificate Management System automatically creates an instance of the revocation constraints policy. See "RevocationConstraintsRule Rule".

RevocationConstraints Module

The Java class that implements the revocation constraints policy is as follows:

com.netscape.certsrv.policy.RevocationConstraints

Figure 17.7 shows how the configurable parameters for the RevocationConstraints module are displayed in the CMS window.

Figure 17.7 Parameters of the RevocationConstraints module

The configuration shown in Figure 17.7 creates a policy rule named RevokeExpiredClientCert, which specifies that the server should allow revocation of expired client certificates.

Table 17.7 gives details about each of the parameters.

Table 17.7 Description of parameters defined in the RevocationConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

allowExpiredCerts
Specifies whether to allow or prevent revocation of expired certificates. Check the box if you want the server to revoke expired certificates (default). Uncheck the box if you don't want the server to revoke expired certificates.

RevocationConstraintsRule Rule

The rule named RevocationConstraintsRule is an instance of the RevocationConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.7. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Renewal Validity Constraints Policy
The RenewalValidityConstraints plug-in module implements the renewal validity constraints policy. This policy governs the formulation of content in the renewed certificate based on the currently issued certificate.

Every certificate issued by Certificate Management System is valid for a limited duration, which is determined by the validity period specified in the validity constraints policy (see "Validity Constraints Policy") at the time the certificate is issued. In order to continue to participate in the PKI-using system beyond this validity period, the entity owning the certificate must renew the certificate; the new certificate generally contains a new validity time period and some updated attributes.

To eliminate administrative overhead of monitoring certificate validity periods and reminding users to renew their certificates, Certificate Management System provides a schedulable job that can detect any to-be-expired certificates and automatically remind users to renew their certificates; for details about this job, see "Certificate Renewal Notifications".

The renewal validity constraints policy enables you to enforce certain restrictions on certificate-renewal requests, when end entities attempt to renew their certificates. You can specify restrictions on the following:

Note that you may apply this policy to certificate renewal requests only, and the renewal process to which this policy is applied can be manual (a request needs to be approved by an agent) or automated; for details, see "Certificate Renewal". In both cases, the currently issued certificate must be either presented during SSL client authentication by the end entity or selected by the agent approving the renewal request.

By default, any validity requested in a certificate-renewal request cannot exceed beyond that of the expiration time specified in the CA's signing certificate (see "CA Signing Key Pair and Certificate"). If the Certificate Manager (CA) finds a request with validity period extending beyond that of its CA signing certificate, it automatically truncates the validity period to end on the day the CA signing certificate expires. For example, if the CA signing certificate expires on June 10, 2004, any renewal request with validity period beyond June 10, 2004 will have validity period truncated to end on June 10, 2004.

However, you can configure the Certificate Manager to renew certificates with validity periods beyond that of its CA signing certificate by selecting the "Override validity nesting requirement" option; see "Step 6. Enable End-Entity Interaction".

During installation, Certificate Management System automatically creates an instance of the renewal validity constraints policy. See "DefaultRenewalValidityRule Rule".

RenewalValidityConstraints Module

The Java class that implements the renewal validity constraints policy is as follows:

com.netscape.certsrv.policy.RenewalValidityConstraints

Figure 17.8 shows how the configurable parameters for the RenewalValityConstraints module are displayed in the CMS window.

Figure 17.8 Parameters of the RenewalValidityConstraints module

The configuration shown in Figure 17.8 creates a policy rule named RenewalRuleForClientCert, which enforces a rule that the server should renew only those client certificates that are due to expire within the next 15 days. The renewed certificates are valid for at least 60 days (two months) and require renewing after 180 days (six months).

Table 17.8 gives details about each of the parameters.

Table 17.8 Description of parameters defined in the RenewalValidityConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

minValidity
Specifies the minimum validity period, in days, for renewed certificates.

Permissible values: As applicable. The default value is 180 days.

Example: 60

maxValidity
Specifies the maximum validity period, in days, for renewed certificates.

Permissible values: As applicable. The default value is 730 days.

Example: 180

renewalInterval
Specifies how many days before its expiration that a certificate can be renewed.

Permissible values: As applicable. The default value is 15 days.

Example: 15

DefaultRenewalValidityRule Rule

The rule named DefaultRenewalValidityRule is an instance of the RenewalValidityConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.8. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


RSA Key Constraints Policy
The RSAKeyConstraints plug-in module implements the RSA key constraints policy. This policy imposes constraints on the following:

The policy restricts the key size to one of the sizes supported by Certificate Management System--512, 1024, 2048, or 4096. In other words, the policy allows you to set up restrictions on the lengths of public keys certified by Certificate Management System.

You may apply this policy to end-entity certificate enrollment and renewal requests. For example, if you want your CA to certify public keys up to 1024 bits in length for end users, you can configure the server accordingly using the policy.

During installation, Certificate Management System automatically creates an instance of the RSA key constraints policy. See "RSAKeyRule Rule".

RSAKeyConstraints Module

The Java class that implements the RSA key constraints policy is as follows:

com.netscape.certsrv.policy.RSAKeyConstraints

Figure 17.9 shows how the configurable parameters for the RSAKeyConstraints module are displayed in the CMS window.

Figure 17.9 Parameters of the RSAKeyConstraints module

The configuration shown in Figure 17.9 creates a policy rule named RSAKeySizeForClientCert, which enforces a rule that the server should restrict the minimum and maximum key sizes for all RSA key-based client certificates to 512 and 2048, respectively.

Table 17.9 describes each parameter.

Table 17.9 Description of parameters defined in the RSAKeyConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

minSize
Specifies the minimum length, in bits, for the key (the length of the modulus in bits). The value must be smaller than or equal to the one specified by the maxSize parameter.

In general, a longer key size results in a key pair that is more difficult to crack. You may want to allow a minimum length to ensure a minimum level of security.

Permissible values: 512, 1024, 2048, or 4096. You may also enter a custom key size that is between 512 and 4096 bits. The default value is 512.

Example: 512

maxSize
Specifies the maximum length, in bits, for the key.

Permissible values: 512, 1024, 2048, or 4096. You may also enter a custom key size that is between 512 and 4096 bits. The default value is 2048.

Example: 1024

exponents
Limits the possible public exponent values. Use commas to separate different values.

Some exponents are more widely used than others. The following exponent values are recommended for arithmetic and security reasons: 17 and 65537. Of these two values, 65537 is preferred. (This setting is mainly an issue if you are using your own software for generating key pairs. Key-generation programs in Netscape clients and servers use 3 or 65537.)

Permissible values: A combination of 3, 7, 17, and 65537, separated by commas. The default value is 3,7,17,65537.

Example: 17,65537

RSAKeyRule Rule

The rule named RSAKeyRule is an instance of the RSAKeyConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.9. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Signing Algorithm Constraints Policy
The SigningAlgorithmConstraints plug-in module implements the signing algorithm constraints policy. This policy restricts the requested signing algorithm to be one of the algorithms supported by Certificate Management System: MD2 with RSA, MD5 with RSA, and SHA-1 with RSA, if the Certificate Manager's signing key is RSA and SHA-1 with DSA, if the Certificate Manager's signing key is DSA.

When a Certificate Manager digitally signs a message, it generates a compressed version of the message called a message digest. Some of the algorithms used to produce this digest include MD5 and SHA-1 (Secure Hash Algorithm).

You may apply this policy to end-entity certificate enrollment and renewal requests.

During installation, Certificate Management System automatically creates an instance of the signing algorithm constraints policy. See "SigningAlgRule Rule".

SigningAlgorithmConstraints Module

The Java class that implements the signing algorithm constraints policy is as follows:

com.netscape.certsrv.policy.SigningAlgorithmConstraints

Figure 17.10 shows how the configurable parameters for the SigningAlgorithmConstraints module are displayed in the CMS window.

Figure 17.10 Parameters of the SigningAlgorithmConstraints module

The configuration shown in Figure 17.10 creates a policy rule named SigningAlgForClientCert, which enforces a rule that the server should use MD5 with RSA signature algorithm to sign all client certificates.

Table 17.10 provides details for each of these parameters.

Table 17.10 Description of parameters defined in the SigningAlgorithmConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want the rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

algorithms
Specifies the signature algorithm the server should use to sign certificates.

Permissible values: Depends on the CA's signing key type (the key type you chose for the Certificate Manager's CA signing certificate).

Example: MD5withRSA

SigningAlgRule Rule

The rule named SigningAlgRule is an instance of the SigningAlgorithmConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.10. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Subordinate CA Name Constraints Policy
The SubCANameConstraints plug-in module implements the subordinate CA name constraints policy. This policy restricts a CA from issuing a subordinate CA certificate that has the same issuer name as that of the CA itself--that is, the policy prevents a situation where the signing certificates of a CA and its subordinate CA have identical issuer names.

This policy must be turned on if you're planning to issue subordinate CA certificates. The reason for this is that, whenever the Certificate Manager issues a certificate, it stores the related information in its internal database; see "Internal Database". If the CA issues a subordinate CA certificate with an issuer DN that matches its own issuer DN, the internal database will not function properly.

You may apply this policy to CA certificate enrollment and renewal requests.

During installation, Certificate Management System automatically creates an instance of the subordinate CA name constraints policy. See "SubCANameConstraints Rule".

SubCANameConstraints Module

The Java class that implements the subordinate CA name constraints policy is as follows:

com.netscape.certsrv.policy.SubCANameConstraints

Figure 17.11 shows how configurable parameters for the SubCANameConstraints module are displayed in the CMS window.

Figure 17.11 Parameters of the SubCANameConstraints module

The configuration shown in Figure 17.11 creates a policy rule named IssuerDNCheckForSubCACert, which enforces a rule that the server should reject subordinate CA certificate requests with issuer DNs matching its own issuer DN.

Table 17.11 gives details about each of the parameters.

Table 17.11 Description of parameters defined in the SubCANameConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule. Uncheck the box to disable the rule (default).

predicate
Specifies the predicate expression for this rule. If you want this rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==ca

SubCANameConstraints Rule

The rule named SubCANameConstraints is an instance of the SubCANameConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.12. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Unique Subject Name Constraints Policy
The UniqueSubjectNameConstraints plug-in module implements the unique subject name constraints policy. This policy restricts the server from issuing multiple certificates with same subject names. Optionally, you can also configure the server to allow multiple certificates with the same subject name if the key usages are different. Note that key usages for certificates are usually specified by the key usage extension and Certificate Management System allows you to add this extension to certificates using the key usage extension policy explained in "Key Usage Extension Policy".

You may apply the unique subject name constraints policy to end-entity certificate enrollment and renewal requests. For example, if you want to prevent your users from requesting multiple certificates with same subject names, you can configure the server accordingly using the policy. Alternatively, if you want to allow your users to own multiple certificates, each for a different use, all having the same subject name, you can do so easily using the enableKeyUsageExtensionChecking parameter defined in this policy. This parameter makes the server check whether the key usages specified in the certificate request being processed is different than those specified in the existing certificates that have the same subject names and accordingly issue or deny the certificate. Keep in mind that the server can check for key usages only if the key usage extension bits are set in the certificate request being processed as well as in the existing certificates that have the same subject names.

During installation, Certificate Management System automatically creates an instance of the unique subject name constraints policy. See "UniqueSubjectNameConstraints Rule".

UniqueSubjectNameConstraints Module

The Java class that implements the unique subject name constraints policy is as follows:

com.netscape.certsrv.policy.UniqueSubjectNameConstraints

Figure 17.12 shows how configurable parameters for the UniqueSubjectNameConstraints module are displayed in the CMS window.

Figure 17.12 Parameters of the UniqueSubjectNameConstraints module

The configuration shown in Figure 17.12 creates a policy rule named UniqueNameForAllCert, which enforces a rule that all certificates must have unique subject names.

Table 17.12 describes each of the parameters.

Table 17.12 Description of parameters defined in the UniqueSubjectNameConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule. Uncheck the box to disable the rule (default).

predicate
Specifies the predicate expression for this rule. If you want this rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client

enablePreAgentApprovalChecking
Specifies whether the request must be checked for the subject name uniqueness on submission by the user, before the request gets queued for agent approval.

enableKeyUsageExtensionChecking
Specifies whether the certificate request must be checked for the Key Usage extension (see "Key Usage Extension Policy"). Note that the policy can check the certificate request for the Key Usage extension only if you uncheck (disable) the enablePreAgentApprovalChecking parameter. The reason for this is that, extensions are set on the request after agent approval, so this checking can be done after an agent approves the request.

UniqueSubjectNameConstraints Rule

The rule named UniqueSubjectNameConstraints is an instance of the UniqueSubjectNameConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.12. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".


Validity Constraints Policy
The ValidityConstraints plug-in module implements the validity constraints policy. This policy enforces minimum and maximum validity periods for certificates and changes them if the policy is not met. Specifically, the policy imposes constraints on the following:

If this policy rule is enabled, the server applies the rule to the certificate request being processed, and then determines if the validity period in the request is acceptable. The rule checks two X.509 attributes of the certificate, the notBefore and notAfter time, which together indicate the total validity life of a certificate, to make sure that they conform to the configured ranges.

The rule checks that the value of the notBefore attribute in the request is not more than leadTime minutes in the future; the leadTime is a configurable parameter in the plug-in implementation. The ability to configure the value of the leadTime parameter in the policy rule allows you to prohibit end entities from requesting certificates whose validity starts too far in the future, and yet allows some amount of toleration of clock-skew problems. For example, if the current date and time is 01/15/2000 (mm/dd/YYYY) and 1:30 p.m., the value of the notBefore attribute is set to 3:00 p.m., and that the leadTime is 10 minutes, then the request would fail, because the validity requested begins more than 10 minutes in the future.

The rule also checks that the value of the notBefore attribute in the request is not more than lagTime minutes in the past. For example, if the current date and time is 01/15/2000 (mm/dd/yyyy) and 1:30 p.m., the value of the notBefore attribute is set to 1:15 p.m., and the lagTime is set to 10 minutes, the request would fail because the user has requested a certificate 15 minutes in the past. Note that a request with notBefore set to 1:25 p.m. would have passed, however.

Note When applying the validity constraints policy, the server does not check the lag time in all certificate requests. It checks the lag time only in those requests that are based on the CRMF protocol--currently, CRMF is the only enrollment format that allows an end entity to request a specific validity period with the notBefore attribute set to a time in the past.

You may apply this policy to end-entity certificate enrollment requests. It can be useful to restrict the length of the validity period for certificates issued by the server. For example, if you want users to renew their certificates at least once a year, you can set the maximum validity period to one year. If you want to limit the frequency of certificate renewals to keep down administrative costs, you can set the minimum validity period to six months.

By default, any validity requested in a certificate enrollment request cannot exceed beyond that of the expiration time specified in the CA's signing certificate (see "CA Signing Key Pair and Certificate"). If the Certificate Manager (CA) finds a request with validity period extending beyond that of its CA signing certificate, it automatically truncates the validity period to end on the day the CA signing certificate expires. For example, if the CA signing certificate expires on June 10, 2004, any enrollment request with validity period beyond June 10, 2004 will have validity period truncated to end on June 10, 2004.

However, you can configure the Certificate Manager to issue certificates with validity periods beyond that of its CA signing certificate by selecting the "Override validity nesting requirement" option; see "Step 6. Enable End-Entity Interaction".

During installation, Certificate Management System automatically creates an instance of the validity constraints policy. See "DefaultValidityRule Rule".

ValidityConstraints Module

The Java class that implements the validity constraints policy is as follows:

com.netscape.certsrv.policy.ValidityConstraints

Figure 17.13 shows how configurable parameters for the ValidityConstraints module are displayed in the CMS window.

Figure 17.13 Parameters of the ValidityConstraints module

The configuration shown in Figure 17.13 creates a policy rule named ValidityForClientCert, which enforces a rule that all client certificates requested by end users in an organizational unit (OU) called Marketing are valid for at least 60 days (two months) and require renewing after 180 days (six months).

Table 17.13 gives details about each of the parameters.

Table 17.13 Description of parameters defined in the ValidityConstraints module

Parameter
Description
enable
Specifies whether the rule is enabled or disabled. Check the box to enable the rule (default). Uncheck the box to disable the rule.

predicate
Specifies the predicate expression for this rule. If you want this rule to be applied to all certificate requests, leave the field blank (default). To form a predicate expression, see "Using Predicates in Policy Rules".

Example: HTTP_PARAMS.certType==client AND HTTP_PARAMS.OU==Marketing

minValidity
Specifies the minimum validity period, in days, for certificates.

Permissible values: An integer greater than zero and less than the value specified by the maxValidity parameter. The default value is 180 days.

Example: 60

maxValidity
Specifies the maximum validity period, in days, for certificates.

Permissible values: An integer greater than zero and also greater than the value specified by the minValidity parameter. The default value is 730 days.

Example: 180

leadTime
Specifies the lead time, in minutes, for certificates. For a certificate renewal request to pass the renewal validity constraints policy, the value of the notBefore attribute in the certificate request must not be more than value of the leadTime parameter in the future, relative to the time when the policy rule is run.

The notBefore attribute value specifies the date on which the certificate validity begins; validity dates through the year 2049 are encoded as UTCTime, dates in 2050 or later are encoded as GeneralizedTime.

Permissible values: As applicable. The default value is 10 minutes.

Example: 10

lagTime
Specifies the lag time, in minutes, for certificates. For a certificate renewal request to pass the renewal validity constraints policy, the value of the notBefore attribute in the certificate request must not be more than the value of the lagTime in the past, relative to the time when the policy is run.

The notBefore attribute value specifies the date on which the certificate validity ends; validity dates through the year 2049 are encoded as UTCTime, dates in 2050 or later are encoded as GeneralizedTime.

Permissible values: As applicable. The default value is 10 minutes.

Example: 10

notBeforeSkew
Specifies the number of minutes to subtract from the current time when creating the value for the certificate's notBefore attribute. It can help some clients with incorrectly set clocks use the new certificate after downloading. For example, if the certificate is issued at 11:30 a.m. and the clock settings of the client into which the certificate is downloaded is 11:20 a.m., the certificate cannot be used for 10 minutes. Setting the value of the beforeFix parameter to 10 minutes would adjust the value of the notBefore parameter to 11:20 a.m.--thus making the certificate usable following the download.

Permissible values: As applicable. The default value is 5 minutes.

Example: 5

DefaultValidityRule Rule

The rule named DefaultValidityRule is an instance of the ValidityConstraints module. Certificate Management System automatically creates this rule during installation. By default, the rule is configured as follows:

For details on individual parameters defined in the rule, see Table 17.13. You need to review this rule and make the changes appropriate for your PKI setup. For instructions, see "Step 2. Modify Existing Policy Rules". For instructions on adding additional instances, see "Step 4. Add New Policy Rules".

 

© Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.