About This Guide
Chapter 1 Introduction to Certificate Management System
Chapter 2 Default Demo 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 iPlanet Web Server, Enterprise Edition
Appendix E Export Control Information
Glossary
Index
Netscape Certificate Management System Installation and Deployment Guide:
Previous Next Contents Index Bookshelf


Appendix D Using SSL with iPlanet Web Server, Enterprise Edition 4.x

This appendix explains how to get client certificate authentication working with iPlanet Web Server, Enterprise Edition 4.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 iPlanet Web Server, you must either have an existing instance of iPlanet Web Server 4.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 iPlanet Web Server that you want to simply convert to be an SSL server, you can skip this step and go to Obtaining a Server Certificate. Otherwise, create a new instance of iPlanet Web 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 iPlanet Web Server Administration Server using your administrator's ID and password.
  2. A Manage Servers window appears. In this figure, there is already one server running called example, on port 8000.

  3. Click Add Server. In the screen that appears, most of the fields have default values.
  4. Verify and update 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 your new server."
  8. See Enabling SSL on the Server.


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

Creating a Trust Database

To support SSL, you first create a Trust Database that will contain all of the keys and certificates used by the server (including many pre-installed root certificates from public Certificate Authorities).

To create a trust database:

  1. Open the Server Manager page for the server you want to configure.
  2. Click the Security tab.
  3. The default page on the Security Tab is the Create a Trust Database page; an example is shown in the following figure.


  4. Type in a password to protect the Trust Database in the password fields.
  5. This password will protect the certificates the server uses, including its SSL server certificate. The password must contain at least 8 characters and have at least one non-alphabetic character.

    Whenever you start an SSL-enabled HTTP server, you will be asked for this password to access the certificate database.

  6. Click OK to submit the form.
Submitting a Certificate Signing Request

Once you have a Trust Database, you can 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. Open the Server Manager page for the server you want to configure.
  2. Click the Security tab.
  3. Click Request a Certificate in the Security tab menu.
  4. This figure shows an example of the Request a Server Certificate page that appears.


  5. Select the New certificate checkbox.
  6. In the "Submit to Certificate Authority via" area, select the CA URL checkbox.
  7. In the CA URL text field, enter the URL for the end-entity enrollment interface of a CMS Certificate or Registration Manager.
  8. Simply append /enrollment to the URL for the end-entity gateway. For example, https://myca.example.com:443/enrollment.

  9. Type the Trust Database password in the Key Pair File Password field.
  10. The remaining fields request identifying information about the server. Use the fully qualified domain name of the server for Common Name.
  11. Click OK to submit the form.
  12. A confirmation window appears, showing the information you entered and the PKCS#10 request. Back up the PKCS#10 data by copying it with the browser's copy command and pasting it into a file using a text editor.

  13. Double check the information about the server, then click OK to submit the form.
  14. A message from the CMS server appears to tell you that the request is pending. Note the request ID number; it can be used to retrieve the certifcate from the CMS end-entity gateway when the certificate is issued.

Importing the Certificate

A CMS agent will process your certificate request. When the certificate is issued, you will receive an email containing the certificate or a URL where the certificate can be retrieved. 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 or mail reader, go to the page or message 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 or mail reader.
  5. Go back to your iPlanet Web Server's Administration page, and open the Server Manager page for the server where you are installing this certificate.
  6. Click the Security tab.
  7. Click Install Certificate in the Security tab menu.
  8. This page appears.

  9. Verify that the certificate is for "This Server."
  10. Type the Trust Database password in the Key Pair File Password field.
  11. Select "Message text (with headers)."
  12. Paste the encoded certificate information into the text box.
  13. Click OK.
  14. A confirmation page appears, showing the contents of the certificate to be added.

  15. Click Add Server Certificate.
  16. A dialog box tells you to restart the iPlanet Web Server for the changes to take effect.

  17. Complete the instructions in Enabling SSL on the Server before you restart the server.

Enabling SSL on the Server
To enable SSL on the server, you must follow the steps in Enabling Encryption on the Server. This procedure is all that is required if you will not be using SSL client authentication.

If you plan to use SSL client authentication, you can enable it either for all connections or only for requests for resources protected by an access control list (ACL).

In both cases, you must import and trust the certificate of the CA that signs the client certificates you will trust. The instructions for this step are in Trusting the Root CA Certificate.

To enable SSL client authentication on all requests, perform only the task in Enabling Client Authentication for All Requests.

To enable SSL client authentication for ACL-protected resources, you must use an LDAP directory where end-entity's certificates are published, tell the web server how to map certificates to directory entries, and configure ACLs to look up users in the directory. To accomplish these tasks, perform the procedures in the following sections:

Enabling Encryption on the Server

This procedure explains how to turn SSL on for the server.

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

  1. Open the Server Manager page for the server that you want to use SSL
  2. Click the Preferences tab if it is not showing.
  3. In the left frame, click Encryption On/Off.
  4. The Encryption On/Off page appears.

  5. For the Encryption checkbox, select On.
  6. In the Port Number box, enter the port number you want to use for the SSL service.
  7. (The default for HTTPS is 443.)

  8. Verify that the correct alias is selected.
  9. Click OK.
  10. Follow the directions to Save and Apply the changes.
  11. You can Save to save the changes to the configuration file, or Save and Apply to save the changes and restart the server. If you plan to continue configuring SSL, you can just Save now and restart the server later.

Trusting the Root CA Certificate

For the server to accept SSL client 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.example.com:443/
    

  3. Select the Retrieval tab.
  4. Click Import CA Certificate Chain.
  5. In the Import CA Certificate Chain form, select "Display the CA certificate chain in PKCS#7 for importing into a 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. Open the iPlanet Web Server Server Manager page for the server where you want to import the CA certificate chain.
  10. Click the Security tab.
  11. Select Install Certificate from the Security tab menu on the left.
  12. Select "Trusted Certificate Authority."
  13. Type the Trust Database password into the Key Pair File Password field.
  14. Select "Message text (with headers)," and paste the encoded certificate chain into the text box.
  15. Submit the form.
  16. In the confirmation page, click Add Server Certificate.
After you have made the remaining configuration changes described next, restart the server for the changes to take effect.

Enabling Client Authentication for All Requests

To require SSL client authentication for all requests on a server:

  1. Open the Server Manager page for the server that uses SSL
  2. Click the Preferences tab if it is not showing.
  3. In the left frame, click Encryption Preferences.
  4. For the "Require client certificate (regardless of access control)" checkbox, select Yes.
  5. Click OK to submit the form.
  6. Choose Save if you want to configure more about the server or Save and Apply to save changes and restart the server.
Specifying the Authentication Directory

You must specify a particular LDAP directory for iPlanet Web 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 web server to verify the client certificate.

To specify an authentication directory, follow these steps:

  1. Open the Web Server Administration Server page, and select the Global Settings tab.
  2. Select Configure Directory Service.
  3. This screen appears.


  4. Supply the host name, port number, and base DN for the LDAP directory to be used for authentication.
  5. If you want, click Yes to specify an SSL connection for authentication communications between iPlanet Web Server and Directory Server. (You must also enable the SSL connection in Directory Server.)
  6. Specify the Base DN to use for searching for user entries.
  7. Specify the distinguished name (DN) to use to bind to the directory for searching.
  8. The Bind DN can be the DN of a directory administrator or any DN that has permission to search the directory.

  9. Specify the password used with the Bind DN to bind to the directory.
  10. When you have finished filling out the form, save the changes to the iPlanet Web Server configuration.
Note for CGI Programmers

When you have set up your iPlanet Web Server to use the LDAP server as shown, you also get access to the following environment variables from within CGI scripts:

Modifying the Configuration File

The iPlanet Web 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 iPlanet Web Server to verify each client certificate against the LDAP directory, thus protecting against the presentation of revoked certificates.

For more information on the certmap.conf file, see >"Editing the certmap.conf file" in Chapter 5, "Using SSL," in Managing Servers with Netscape Console.

The certmap.conf file tells iPlanet Web Server how to map a client certificate to the LDAP server to make a valid LDAP query. The file is located in <web_server_root>/userdb/certmap.conf.

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 example CN=Certificate Manager, OU=Information Systems, 
O=Example, C=US 
example:DNComps O, C
example:FilterComps UID
example:verifycert on

If the user tries to present a revoked certificate to iPlanet Web 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 iPlanet Web 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. Open the Server Manager page for the server that you want to use SSL
  2. Click the Preferences tab if it is not showing.
  3. In the left frame, click Restrict Access.
  4. In the right panel, select Entire Server, or a subdirectory to which you want to restrict access.
  5. Click Edit Access Control.
  6. This page appears.

  7. In the top pane under Users/Groups, select All.
  8. In the bottom pane, select the following:
  9. Click Update.
  10. 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 iPlanet Web Server. iPlanet Web Server 4.x 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 iPlanet Web Server.


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 the iPlanet Web Server 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 iPlanet Web Server to determine what the problem might be.

 

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