Complete Contents
About This Guide
PART 1: Overview and Demo Installation
Chapter 1 Introduction to Certificate Management System 4.0
Chapter 2 Default Demo Installation
PART 2: Planning and Installation
Chapter 3 Planning Your Deployment
Chapter 4 Installation Worksheet
Chapter 5 Installation and Configuration
Appendix A Migrating from Certificate Server 1.x
Appendix B Certificate Extensions
Appendix C Certificate Download Specification
Appendix D Using SSL with Enterprise Server 3.x
Appendix E Export Control Information
Glossary
Previous Next Contents Index Bookshelf


Appendix D Using SSL with Enterprise Server 3.x

This appendix explains how to get client certificate authentication working with Netscape Enterprise Server 3.x. When you have finished following these steps, you will have a web server that requires a user to present a valid client SSL certificate (issued by Certificate Management System) in order to access the restricted areas on the server. The certificate that the user presents must match the certificate that was published to the LDAP directory when it was issued.

To use SSL with Enterprise Server, you must either have an existing instance of Enterprise Server 3.x that you want to be an SSL server or create a new instance to be an SSL server. To create a new instance, see Creating a New Server.

To enable SSL for a particular server instance, you must obtain a server SSL certificate for the server, then configure the server to require client authentication and to check users' client certificates against certificate information that Certificate Management System has published to the LDAP directory.

This appendix has the following sections:


Creating a New Server
If you have an existing instance of Enterprise Server that you want to simply convert to be an SSL server, you can skip this step. Otherwise, create a new instance of Enterprise Server and follow the remaining procedures to configure the new instance for SSL and client authentication.

To create a new instance of the server, follow these steps:

  1. Log into Netscape Administration Server using your administrator's ID and password.
  2. A General Administration window appears. In this figure, there is already one server running called mog, on the default port 80.

  3. Click Create New Netscape Enterprise Server. In the screen that appears, most of the fields have default values.
  4. Verify and tweak any settings as necessary. Sample server settings are:
  5. Submit the form.
  6. A notification for a new server is created.

  7. When you are ready to configure the new server to enable SSL, click "Configure More about this server."
  8. See Enabling SSL on the Server.


Obtaining a Server Certificate
Enterprise Server must have a server SSL certificate to open the SSL channel for client authentication. The server certificate can also be used to encrypt data. Data encryption, however, is a separate issue from client authentication.

You must obtain the server SSL certificate and import it into Enterprise Server before you can configure the server to use SSL. To obtain the server SSL certificate for an existing instance of Netscape Enterprise Server, follow the steps in the following sections:

Generating a Key Pair

Use the Unix command-line tool sec-key to create an encryption key pair for the server. You will use this key pair to create the certificate request.

To generate a key pair for the server:

  1. Open a Unix command shell on the computer on which the server runs.
  2. Log in as root.
  3. Execute the command-line tool {suitespot-dir}/bin/admin/admin/bin/sec-key.
  4. When you are prompted, enter an alias name for the key pair.
  5. You can use the name of the machine, for example, or the name of the application that will use the certificate.

    The system prompts you once more.

  6. In response to the prompt, type random characters until the system prompts you to stop.
  7. These characters are used to generate a random seed used in the certificate.

You might see this error:

error: Could not generate key (returned -1), try again!

If you do, run sec-key again until you succeed. Sometimes it can take a few tries to get it to work (most notably under Solaris 2.6).

  1. When you are prompted, assign a password with which to encrypt your new key pair.
  2. Whenever you start an SSL-enabled HTTP server, you will be asked for this password to access the certificate database.

Submitting a Certificate Signing Request

Once you have generated a key pair, you must create a PKCS #10 certificate request and submit it to Certificate Management System to obtain your server SSL certificate.

To generate the PKCS #10 certificate request, follow these steps:

  1. Go to the General Administration page for the Enterprise Server instance.
  2. Click Keys & Certificates.
  3. Click Request Certificate.
  4. Click New Certificate.
  5. Click "CA Email Address."
  6. Enter your own email address or the address of your CMS administrator.
  7. Select the certificate and key database alias and enter the password that you specified when you generated the key pair.
  8. Enter your contact and server information:
  9. Click OK.
  10. A confirmation dialog box appears.

  11. Double-check your entries in the confirmation dialog box, and click OK.
  12. The PKCS #10 certificate enrollment request is generated and emailed to the address you have specified. It also appears in your browser window.

  13. Copy the encoded certificate request to the clipboard, using the Copy command on the browser's Edit menu.
Now that you have generated and copied the encoded request, you must submit it to Certificate Management System. After an agent approves the request, the issued certificate will be mailed to you.

To submit the request, follow these steps:

  1. In your browser, go to the URL for the Certificate Management System end-user pages. For example:
  2. 	https://mycertserver.mydomain.com:17005
    

  3. Click the Enrollment tab.
  4. Under Server Enrollment in the left pane, click Manual or Directory-Based.
  5. Depending on how your Certificate Management System is configured, only one of these choices may be offered. If both choices are offered and you don't know which one to use, check with your CMS administrator.

  6. Paste the encoded certificate request from the clipboard into the text box labeled PKCS #10 Request.
  7. Fill out the rest of the form, and click Submit.
Importing the Certificate

Once you have been issued a server certificate, you must import it into your server. (This is different from importing a personal certificate into your browser.)

To import the server certificate into the server, follow these steps:

  1. In your browser, go to the page containing the certificate.
  2. Scroll down to the part of the page that contains the base-64 encoded certificate. It looks like this:
  3. -----BEGIN CERTIFICATE-----
    MIICeTCCAeKgAwIBAgICHfQwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1 UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25z IENvcnBvcYXBlIENvbW11bmljYXRpb25zIENvcnAuMSAwHgYDVQQDF Bdtb2cuKG5ldHNjYXBlfG1jb20pLmNvbTCBnTANBgkqhkiG9w0B N0nZmUaB3adv7D1TPA==
    -----END CERTIFICATE-----

  4. Select and copy the base-64 encoded certificate, using Copy from the Edit menu in the browser.
  5. Go back to your Enterprise Server's General Administration page.
  6. Click Keys & Certificates.
  7. In the left frame under Keys and Certificates, select Install Certificate.
  8. This page appears.

  9. Verify that the certificate is for "This Server."
  10. Select "Message text (with headers)."
  11. Paste the encoded certificate information into the text box.
  12. In the Alias list, choose the alias that is associated with this certificate.
  13. It should be the same alias you created when you generated the key pair above.

  14. Click OK.
  15. You should see a confirmation page like this one:

  16. Click Add Certificate.
  17. A dialog box tells you to restart Administration Server for the changes to take effect.

  18. Restart Administration Server.

Enabling SSL on the Server
To enable SSL and client authentication on the server, you must accomplish the tasks described in the following sections:

Trusting the Root CA Certificate

For the server to accept certificates issued by your root CA, you must import the certificate chain from your root CA into the server and establish it as a trusted CA.

Use the secure end-entity pages to import the certificate chain, as follows:

  1. Go to the URL for the secure end-entity port of the Certificate Manager that is to act as your root CA, using HTTPS. For example:
  2. 	https://myCA.mydomain.com:17006
    

  3. Select the Retrieval tab.
  4. Click Certificate Chain Importation.
  5. In the importation form, select "Display the certificate chain for importing into the server."
  6. Click Submit.
  7. The certificate chain appears in your browser window in an encoded format.

  8. Copy the encoded certificate chain, using Copy from the browser's Edit menu.
  9. Go to the General Administration page for the Administration Server.
  10. In the General Administration page, select Keys & Certificates.
  11. In the left frame under Keys and Certificates, select Install Certificate.
  12. Select "Trusted Certificate Authority."
  13. Select "Message text (with headers)," and paste the encoded certificate chain into the text box.
  14. Submit the form.
  15. In the confirmation page, confirm that you want to trust this CA root.
After you have made the remaining configuration changes described next, restart the server for the changes to take effect.

Enabling Encryption on the Server

To enable the general use of SSL for server communications, follow these steps.

  1. Go back to the General Administration page, and select your web server.
  2. Under Server Preferences in the left frame, click Encryption On/Off.
  3. You see this page:

  4. Select On.
  5. In the Port Number box, enter the port number you want to use for the SSL service.
  6. (The default for HTTPS is 443.)

  7. Verify that the correct alias is selected.
  8. Click OK.
  9. Follow the directions to Save and Apply the changes.
Modifying the Configuration File

Enterprise Server does not automatically check each certificate against the certificate revocation list (CRL), and so cannot detect a revoked certificate. However, if Certificate Management System is configured to remove revoked certificates from the LDAP directory, you can tell Enterprise Server to verify each client certificate against the LDAP directory, thus protecting against the presentation of revoked certificates.

The certmap.conf file tells Enterprise Server how to map a client certificate to the LDAP server to make a valid LDAP query.

The formatting of this file is extremely important. Extra spaces or linefeeds, for example, can cause certificate authorization to fail.

In this example of a certmap.conf file, we have issued certificates that have a UID field and then specified that field as the key field for the LDAP search.

certmap netscape CN=rootca.netscape.com, OU=Information Systems, 
O=Netscape Communications Corporation, C=US 
netscape:DNComps o, c
netscape:FilterComps UID
netscape:verifycert

If the user tries to present a revoked certificate to Enterprise Server, the server returns a 404 error. This error also occurs if the user does not have a certificate in the LDAP directory for any other reason, for example, if the certificate was issued at a time when the directory was unavailable for update.

Modifying the Access Control Lists

You can configure the access control lists (ACLs) on Enterprise Server to allow only those who hold a valid certificate issued by your root CA to access the parts of the site that you designate as private.

To require client authentication for access to all or part of your site, follow these steps:

  1. Go to the General Administration page for the Administration Server.
  2. Select the Enterprise Server instance to be SSL-enabled.
  3. Click Server Preferences.
  4. Under Server Preferences in the left panel, click Restrict Access.
  5. In the right panel, select Entire Server, or a subdirectory to which you want to restrict access.
  6. Click Edit Access Control.
  7. This page appears.

  8. In the top pane under Users/Groups, select All.
  9. In the bottom pane, select the following:
  10. Click Update.
  11. In the top pane, click Submit.
If you choose to require SSL authentication for particular users or groups, those users must obtain a client SSL certificate from your root CA and present it when they try to access the parts of the site you have chosen to protect.

There is a default setting for the entire Enterprise Server. Enterprise Server 3.0 ships with defaults that allow anyone to read and publish anything on the server. You should consider your ACL needs and change the default setting accordingly. For detailed instructions on modifying users and groups and access privileges, refer to the documentation for Enterprise Server.

Specifying the Authentication Directory

You must specify a particular LDAP directory for Enterprise Server to use for authentication. This must be the same directory to which CMS publishes certificate information.

Certificate Management System must be configured to publish certificate information to a directory in order for the server to verify the client certificate.

To specify an authentication directory, follow these steps:

  1. Open the General Administration tool of the server, and select Global Settings.
  2. Select Configure Directory Service.
  3. This screen appears.

  4. Under "Obtain Directory Services From," select LDAP Directory Server
  5. Supply the host name, port number, and base DN for the LDAP directory to be used for authentication.
  6. If you want, click Yes to specify an SSL connection for authentication communications between Enterprise Server and Directory Server. (You must also enable the SSL connection in Directory Server.)
  7. When you have finished filling out the form, save the changes to the Enterprise Server configuration.
Note for CGI Programmers

When you have set up your Enterprise Server to talk to the LDAP server as shown, you also get access to the following environmental variables from within CGI scripts:

Removing Untrusted CA Roots

Avoid having untrusted root CA certificates in your database. They are not useful, and can sometimes cause problems. In particular, there is a known problem in Enterprise Server 3.x (in versions earlier that 3.6) that causes it to send down to the client all of the CA root certificates that are in its database as if they were trusted. This can cause problems when the client is configured to use "Select automatically" to determine what certificate to present to the server, and when the user has more than one client certificate.

As a workaround for this problem, use Administration Server to edit the server's certificates and remove all of the untrusted root CAs.

To edit the server certificates, follow these steps:

  1. Using the General Administration tool of the server, select Keys & Certificates.
  2. Click Manage Certificates.
  3. Choose your server alias, and click OK.
  4. You see a list of the server certificates that are installed in your server's certificate database.

  5. Delete all of the entries except the following:
  6. Click the links for each of the deleted certificates.
  7. For each, this dialog box appears:

  8. Click Delete Certificate for each of the certificates to be deleted.

Testing Client Authentication
To test the configuration, you must start the server for which you have enabled SSL and attempt to access a page that you have protected.

To test the configuration, follow these steps:

  1. Start the server, either from Administration Server or from the command line.
  2. Use your browser to access a page on the server that is part of a subdirectory to which you have restricted access. (See Modifying the Access Control Lists.)
  3. If you are on the list of restricted users and if SSL has been successfully enabled, you will be asked to present your client SSL certificate from your root CA.
If you have problems, look at the error log files for Administration Server and Enterprise Server to determine what the problem might be.

 

© Copyright 1999 Netscape Communications Corp., a subsidiary of America Online, Inc. All rights reserved.