From: Graham Leggett Date: Tue, 4 Aug 2026 12:09:50 +0000 (+0000) Subject: Add declaration and docs for SSLCADNRequestURI directive. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;p=thirdparty%2Fapache%2Fhttpd.git Add declaration and docs for SSLCADNRequestURI directive. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936863 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/mod_ssl.xml b/docs/manual/mod/mod_ssl.xml index 94b9c8992a..37df8d1c7c 100644 --- a/docs/manual/mod/mod_ssl.xml +++ b/docs/manual/mod/mod_ssl.xml @@ -1366,22 +1366,25 @@ in the SSL handshake. These CA names can be used by the client to select an appropriate client certificate out of those it has available.

-

If neither of the directives SSLCADNRequestPath or SSLCADNRequestFile are given, then the +

If none of the directives SSLCADNRequestFile, SSLCADNRequestPath, or SSLCADNRequestURI are given, then the set of acceptable CA names sent to the client is the names of all the CA certificates given by the SSLCACertificateFile and SSLCACertificatePath directives; in other +module="mod_ssl">SSLCACertificateFile, SSLCACertificatePath, and SSLCACertificateURI directives; in other words, the names of the CAs which will actually be used to verify the client certificate.

In some circumstances, it is useful to be able to send a set of acceptable CA names which differs from the actual CAs used to verify the client certificate - for example, if the client certificates are -signed by intermediate CAs. In such cases, SSLCADNRequestPath and/or SSLCADNRequestFile can be used; the +signed by intermediate CAs. In such cases, SSLCADNRequestFile, SSLCADNRequestPath, and/or SSLCADNRequestURI can be used; the acceptable CA names are then taken from the complete set of certificates in the directory and/or file specified by this pair of directives.

@@ -1439,6 +1442,70 @@ to take effect.

+ +SSLCADNRequestURI +certificate store of CA Certificates for defining +acceptable CA names +SSLCADNRequestURI uri +server config +virtual host + + +

When a client certificate is requested by mod_ssl, a list of +acceptable Certificate Authority names is sent to the client +in the SSL handshake. These CA names can be used by the client to +select an appropriate client certificate out of those it has +available.

+ +

If none of the directives SSLCADNRequestFile, SSLCADNRequestPath, or SSLCADNRequestURI are given, then the +set of acceptable CA names sent to the client is the names of all the +CA certificates given by the SSLCACertificateFile, SSLCACertificatePath, and SSLCACertificateURI directives; in other +words, the names of the CAs which will actually be used to verify the +client certificate.

+ +

In some circumstances, it is useful to be able to send a set of +acceptable CA names which differs from the actual CAs used to verify +the client certificate - for example, if the client certificates are +signed by intermediate CAs. In such cases, SSLCADNRequestFile, SSLCADNRequestPath, and/or SSLCADNRequestURI can be used; the +acceptable CA names are then taken from the complete set of +certificates in the directory and/or file specified by this pair of +directives.

+ +

SSLCADNRequestURI must +specify an all-in-one certificate store uri containing a +set of CA certificates.

+ +Example + +SSLCADNRequestURI "file:///usr/local/apache2/conf/ca-names.crt" + + + +

A file: URI pointing at a file of PEM encoded certificates +can be used instead of SSLCADNRequestFile, and a file: +URI pointing at a directory of PEM encoded certificates can be used +instead of SSLCADNRequestPath. +

+ +

This store is read at server startup, while the server is still running +as root (before privilege dropping), so it may be owned by +and readable only by root. The uri is not re-read during +normal operation; a server restart is required for changes to take +effect.

+
+
+ SSLCARevocationPath Directory of PEM-encoded CA CRLs for @@ -1525,6 +1592,14 @@ SSLCARevocationURI "/usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl" +

A file: URI pointing at a file of PEM encoded CRLs +can be used instead of SSLCARevocationFile, and a file: +URI pointing at a directory of PEM encoded CRLs can be used +instead of SSLCARevocationPath. +

+

This URI is read at server startup, while the server is still running as root (before privilege dropping), so it may be owned by and readable only by root. The URI is not re-read during diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c index 20d3db1a0d..5d5efa2e8a 100644 --- a/modules/ssl/mod_ssl.c +++ b/modules/ssl/mod_ssl.c @@ -147,6 +147,9 @@ static const command_rec ssl_config_cmds[] = { SSL_CMD_SRV(CADNRequestFile, TAKE1, "SSL CA Distinguished Name file " "('/path/to/file' - PEM encoded to derive acceptable CA names to request)") + SSL_CMD_SRV(CADNRequestURI, TAKE1, + "SSL CA Distinguished Name uri " + "('file:', 'pkcs11:' - URI of certificates to derive acceptable CA names to request)") SSL_CMD_SRV(CARevocationURI, TAKE1, "SSL CA Certificate Revocation List (CRL) uri " "('file:', 'pkcs11:' - URI of CRLs)")