![]() |
![]() |
Authenticating clientsThe IBM HTTP Server supports three levels of client authentication and two types of
access control, based on client certificate information. This section discusses setting the desired client
authentication level and the access control type, along with associated notes
Setting client authentication levelsSet the level of client authentication with the SSLClientAuth directive: You can add a second argument, crl, to use a certificate revocation list. For example, SSLClientAuth 1 crl >Choosing the Required levelIf you choose the Required level of client authentication, the secure server requests a certificate, from all clients making an HTTPS request. The server validates clients by checking for a trusted Certificate Authority root certificate in the local key database. A trusted Certificate Authority (CA) root certificate is a certificate signed by a certificate authority, designated as a trusted CA on your server. The server establishes a secure connection if the client has a valid certificate. The server denies the request if the client has an expired certificate, or if a certificate authority (CA) that is not designated as a trusted CA on the server, signs the certificate. |
|
![]() |
SSL client authentication increases network traffic. |
Choosing the Optional levelIf you choose the Optional level of client authentication, the server requests a client certificate. If the client does not provide a certificate, the server still establishes a secure connection. The server denies the request if the client has provided an expired certificate, or if a certificate authority (CA) that is not designated as a trusted CA on the server, signs the certificate. |
|
![]() |
SSL client authentication increases network traffic. |
Choosing NoneIf you choose None, the secure server does not request certificates from clients. Setting access control typesSet the access control type with the SSLFakeBasicAuth, or SSLClientAuthRequire directives. |
|
![]() |
The SSLClientAuthRequire directive is the preferred type of client authentication. |
SSLFakeBasicAuth directiveUsing the SSLFakeBasicAuth directive is not recommended. Password files generated for use with Apache SSL code, or mod_ssl and Apache, do not work with the IBM HTTP Server because of differing distinguished name formats. The SSLFakeBasicAuth type provides a simple method for client authentication. If you specify SSLFakeBasicAuth, the client certificate distinguished name and the password ("password") are Base64-encoded and placed in the authorization header. Put the mod_ibm_ssl module first in the module list, so that subsequent authentication modules have the fake basic authentication user ID and password available. Basic authentication support within a specified virtual host does not work because the client distinguished name and the password, password, overwrite the user ID and password supplied by a user. To display the distinguished name from a client certificate, create a CGI program to print out the SSL_CLIENT_DN environment variable. SSLClientAuthGroup directiveThis directive enables you to specify a logic string of specific client certificate attributes and group them together as a single unit. This ability enables a certain set of client certificate attributes access to multiple objects on that server. The syntax is SSLCLientAuthGroup (name) (expression) Use parentheses to group comparisons. If the value of the attribute contains a non-alphanumeric character, delimit the value with quotes. Valid attributes follow: CommonName Country Email Group IssuerCommonName IssuerCountry IssuerEmail IssuerLocality IssuerOrg IssuerOrgUnit IssuerStateOrProvince Locality Org OrgUnit StateOrProvince The following short names are also valid: CN, C, E, G, ICN, IC, IE, IL, IO, IOU, IST, L, O, OU, ST SSLClientAuthRequire directiveThe more extensive SSLClientAuthRequire support enables the webmaster to define logical expressions containing the x509 attributes. Comparisons between these logical expressions and the client certificate information determine object access. Before processing occurs, GSK validates the client certificate to ensure that a trusted certificate authority signed the certificate. The SSLClientAuthRequire directive enables a webmaster to build a logical expression consisting of attribute checks linked with AND, OR, and NOTs. You can also use parentheses. For example: SSLClientAuthRequire (CommonName = "Fred Smith" OR CommonName = "John Deere") AND Org = IBMmeans that only client certificates containing a common name of either Fred Smith, or John Deere, and an organization of IBM can have object access. For the attribute checks, the only valid comparisons are equal and not equal (= and !=). You can link each attribute check with AND, OR, or NOT (also &&, ||, and !). When you specify multiple SSLClientAuthRequire directives for one resource, the resource acts as if Boolean AND operators join the values. Use parentheses to group comparisons. If the value of the attribute contains a nonalphanumeric character, delimit the value with quotes. Valid attributes follow: CommonName Country Email IssuerCommonName IssuerCountry IssuerEmail IssuerLocality IssuerOrg IssuerOrgUnit IssuerStateOrProvince Locality Org OrgUnit StateOrProvince The following short names are also valid: CN, C, E, ICN, IC, IE, IL, IO, IOU, IST, L, O, OU, ST (Back to the top) |