Two ways to install root certificates into Internet Explorer
Certification Authorities (CA) that issue End Entity (EE) client
certificates typically provide the whole certificate chain at the same
time that they deliver the user's client certificate. The chain
includes the user's EE certificate, any intermediate certificates in the
path, and the root certificate. The overall client certificate request
and delivery process is usually a multi-stage event that is carefully
documented by the CA with appropriate answers well scripted for the
users. Users are motivated to take the time needed to read the
documentation to obtain their client certificates and thus be able to use
PKI-enabled applications.
Along with issuing client certificates, many campus PKI projects are
also planning to issue SSL server certificates to campus computers in
order to reduce costs. Campus issued SSL server certificates are often
made available at no cost to user departments. One problem with the use
of campus-issued SSL certificates is that the campus root certificate
must be installed into every user's browser. This problem is likely to
be significantly different from the EE certificate download case above
since a campus is not likely to issue identity certificates to all users
in the early stages of their PKI activity but may need all users to have
their root certificate installed to support the SSL server certificate
component of the project. The easier the root certificate installation
process, the more likely that the campus issued server certificate
program will be successful.
Case 1 below shows the mechanism that most campuses have been using to
distribute root certificates to their users. This mechanism supports
both Internet Explorer and Netscape but is relatively cumbersome and
prone to user error. Case 2 only works with Internet Explorer
but is much easier for the average user to complete successfully. Since
a large majority of users prefer Internet Explorer, it may be worth the
effort to detect the browser type and use the mechanism described in
Case 2 for root certificate installation into Internet Explorer.
Case 1: Using the DER-encoded form of the certificate and the proper MIME type
Simply placing a link that points to the DER-encoded version of the
certificate is the most common mechanism used to distribute root
certificates for download. An example using the
CREN root certificate is the HTML link <a href="CrenRoot.crt">some text</a>
where CrenRoot.crt is a file on Web server's disk containing the
DER-encoded form of the certificate. You must also ensure in this case
that the Web server is configured to map the file extension
.crt to the proper MIME type of:
application/x-x509-ca-cert
When a user clicks on the link above they will first receive the
standard file download dialog box. Once the user has specified to open
the file from its current location, they will be placed into the
certificate import wizard shown at the left. The key to a successful
import is for the user to somehow know to click the Install
Certificate button instead of the OK button. Simply
clicking OK appears to be natural for most users and the
certificate installation fails silently. If the user does click the
Install Certificate button, they will go through a five or more
step wizard depending on the Operating System version and patch level
to actually install the root certificate. In some cases the user will
be prompted to delete an existing copy of an already loaded root
certificate before the new one can be installed. In other cases the
operating system will determine that the user is simply attempting to
reinstall a root certificate that is already in the certificate store
and will silently complete the process without alarming the user.
Case 2: Using PKCS-7 and the Microsoft Certificate Enrollment Control
Another way to deliver a root certificate is to use the Microsoft
Certificate Enrollment ActiveX control. This is the same control that
is normally used to accept a user's new EE client certificate and its
associated certificate chain but is called with different parameters.
The main advantage to this download mechanism is that its much easier
for a user who knows little about PKI to correctly install the root
certificate. Only one or two dialog boxes appear depending on the
version of Windows and the patch level of the system. The correct user
response to these dialog boxes is always yes instead of some of
the more cumbersome and difficult to document responses of Case 1 above.
This mechanism is a little harder to implement in the CA but it makes it
much easier for the average user to correctly download and install your
root certificate. Note that users must not have disabled browser
scripting or ActiveX controls for this mechanism to work. ActiveX and
scripting are enabled by default but some users may configure their
systems to disable these features.
Click here to download and install the
CREN root certificate via the CEnroll control.
Click here to see the source code
for the installation demonstration above. The use of this technique in
a production environment would most likely involve a little more complex
script but all of the basic components are shown. The
credentials constant is the base 64 encoded version of the CREN
root certificate contained in a PKCS-7 object. Thanks to Ken Ruggaber at Virginia for
the code fragment to implement the download and Jeff Schiller
at MIT for the code to correctly instantiate the CEnroll object on
computers with and without the patches for
Q323172.
|