Skip to content

Commit a77c8ae

Browse files
committed
Merge docs changes from r1929308
1 parent 29a575d commit a77c8ae

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

docs/manual/mod/mod_ssl.xml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1816,6 +1816,91 @@ SSLStrictSNIVHostCheck on
18161816
</usage>
18171817
</directivesynopsis>
18181818

1819+
<directivesynopsis>
1820+
<name>SSLVHostSNIPolicy</name>
1821+
<description>Set compatibility policy for SNI client access to virtual hosts.</description>
1822+
<syntax>SSLVHostSNIPolicy strict|secure|authonly|insecure</syntax>
1823+
<default>SSLVHostSNIPolicy secure</default>
1824+
<contextlist><context>server config</context></contextlist>
1825+
<compatibility>Available in httpd 2.5 and later</compatibility>
1826+
1827+
<usage><p>This directive sets policy applied when checking whether the
1828+
<directive module="core" type="section">VirtualHost</directive>
1829+
identified by the <code>Host</code> request header in an HTTP request
1830+
is compatible with the <directive module="core"
1831+
type="section">VirtualHost</directive> identified from the SNI
1832+
extension sent during the initial TLS connection handshake. If an HTTP
1833+
request is associated with a virtual host which has an incompatible
1834+
SSL/TLS configuration under the policy used, an HTTP error response
1835+
with status code 421 ("Misdirected Request") will be sent.</p>
1836+
1837+
<p>The <code>strict</code> policy blocks all HTTP requests which are
1838+
identified with a different virtual host to that identifed by SNI.
1839+
The <code>insecure</code> policy allows all HTTP requests regardless
1840+
of virtual host identified; such a configuration may be vulnerable to
1841+
<a
1842+
href="https://httpd.apache.org/security/vulnerabilities_24.html">CVE-2025-23048</a>.
1843+
</p>
1844+
1845+
<p>The (default) <code>secure</code>, and <code>authonly</code>
1846+
policies compare specific aspects of the SSL configuration for the two
1847+
virtual hosts, which are grouped into two categories:
1848+
1849+
<ul>
1850+
<li><strong>client vertification and authentication
1851+
settings</strong>: directives which affect TLS client certificate
1852+
verification or authentication, such as <directive
1853+
module="mod_ssl">SSLVerifyClient</directive>, <directive
1854+
module="mod_ssl">SSLVerifyMode</directive>, <directive
1855+
module="mod_ssl">SSLCACertificatePath</directive>, <directive
1856+
module="mod_ssl">SSLSRPVerifierFile</directive>; any use of <directive
1857+
module="mod_ssl">SSLOpenSSLConfCmd</directive></li>
1858+
1859+
<li><strong>server certificate/key, or protocol/cipher
1860+
restrictions</strong>: directives which determine the server
1861+
certificate or key (<directive
1862+
module="mod_ssl">SSLCertificateKeyFile</directive> etc), cipher or
1863+
protocol restrictions (<directive
1864+
module="mod_ssl">SSLCipherSuite</directive> and <directive
1865+
module="mod_ssl">SSLProtocol</directive>)</li>
1866+
</ul>
1867+
1868+
This table illustrates whether an HTTP request will be blocked or
1869+
allowed when the virtual host configurations differ as described,
1870+
under each different policy setting:
1871+
1872+
<table border="1" style="zebra">
1873+
<columnspec><column width=".3"/><column width=".2"/><column width=".5"/>
1874+
</columnspec>
1875+
<tr>
1876+
<th>Policy mode</th>
1877+
<th>Any VirtualHost mismatch</th>
1878+
<th>Client verification/<br />authentication settings</th>
1879+
<th>Server certificate/key, <br />or protocol/cipher restrictions</th>
1880+
</tr>
1881+
<tr>
1882+
<td><code>strict</code><td>blocked</td><td>blocked</td><td>blocked</td></td>
1883+
</tr>
1884+
<tr>
1885+
<td><code>secure</code><td>allowed</td><td>blocked</td><td>blocked</td></td>
1886+
</tr>
1887+
<tr>
1888+
<td><code>authonly</code><td>allowed</td><td>blocked</td><td>allowed</td></td>
1889+
</tr>
1890+
<tr>
1891+
<td><code>insecure</code><td>allowed</td><td>allowed</td><td>allowed</td></td>
1892+
</tr>
1893+
</table>
1894+
</p>
1895+
<example><title>Example</title>
1896+
<highlight language="config">
1897+
SSLVHostSNIPolicy authonly
1898+
</highlight>
1899+
1900+
</example>
1901+
</usage>
1902+
</directivesynopsis>
1903+
18191904
<directivesynopsis>
18201905
<name>SSLProxyMachineCertificatePath</name>
18211906
<description>Directory of PEM-encoded client certificates and keys to be used by the proxy</description>

0 commit comments

Comments
 (0)