|
1 | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | 2 | <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
3 | 3 | <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> |
4 | | -<!-- English Revision: 1927320 --> |
| 4 | +<!-- English Revision: 1928428 --> |
5 | 5 | <!-- French translation : Lucien GENTIS --> |
6 | 6 | <!-- Reviewed by : Vincent Deffontaines --> |
7 | 7 |
|
@@ -203,6 +203,13 @@ hexadécimale avec la longueur de la chaîne au début</td></tr> |
203 | 203 | <tr><td><code>SSL_CLIENTHELLO_VERSIONS</code></td> <td>chaîne</td> |
204 | 204 | <td>Valeur de l’extension Supported Versions (43) de ClientHello sous la forme de quatre |
205 | 205 | caractères hexadécimaux par item</td></tr> |
| 206 | +<tr><td><code>SSL_ECH_STATUS</code></td> <td>chaîne</td> |
| 207 | +<td><code>success</code> signifie que les autres pensent aussi ce qu'ils |
| 208 | +disent</td></tr> |
| 209 | +<tr><td><code>SSL_ECH_INNER_SNI</code></td> <td>chaîne</td> |
| 210 | +<td>la valeur SNI chiffrée en ECH (ou `NONE`)</td></tr> |
| 211 | +<tr><td><code>SSL_ECH_OUTER_SNI</code></td> <td>chaîne</td> |
| 212 | +<td>la valeur SNI vue au format texte (ou `NONE`)</td></tr> |
206 | 213 | </table> |
207 | 214 |
|
208 | 215 | <p><em>x509</em> spécifie un élément de DN X.509 parmi |
@@ -3438,5 +3445,129 @@ httpd -t -D DUMP_SSL_POLICIES |
3438 | 3445 | </usage> |
3439 | 3446 | </directivesynopsis> |
3440 | 3447 |
|
| 3448 | +<directivesynopsis> |
| 3449 | +<name>SSLECHKeyDir</name> |
| 3450 | +<description>Chargement des fichiers PEM « Encrypted Client Hello » (ECH) dans le |
| 3451 | +répertoire spécifié</description> |
| 3452 | +<syntax>SSLECHKeyDir <em>dirname</em></syntax> |
| 3453 | +<contextlist><context>server config</context></contextlist> |
| 3454 | +<compatibility>Disponible à partir de la version 2.5.1 du serveur HTTP Apache</compatibility> |
| 3455 | + |
| 3456 | +<usage> |
| 3457 | + |
| 3458 | +<p> |
| 3459 | +ECH est décrit dans <a |
| 3460 | +href="https://datatracker.ietf.org/doc/draft-ietf-tls-esni/">draft-ietf-tls-esni</a> |
| 3461 | +; httpd prend en charge ECH « shared-mode » où l’instance de httpd effectue le |
| 3462 | +déchiffrement ECH et héberge les sites web ECH « public-name » et « backend ». |
| 3463 | +</p> |
| 3464 | + |
| 3465 | +<p>La directive <code>SSLECHKeyDir</code> permet de définir le répertoire où les |
| 3466 | +fichiers PEM ECH (nommés <code>*.ech</code>) sont stockés. Lorsqu’un fichier PEM |
| 3467 | +ECH a été chargé avec succès, httpd va effectuer un déchiffrement ECH et, si ce |
| 3468 | +dernier réussit, va ouvrir la session TLS correspondante en utilisant le SNI |
| 3469 | +depuis le ClientHello interne. |
| 3470 | +</p> |
| 3471 | + |
| 3472 | +<example><title>Exemple de configuration ECH</title> |
| 3473 | +<highlight language="config"> |
| 3474 | +... |
| 3475 | +SSLEngine On |
| 3476 | +SSLProtocol TLSv1.3 |
| 3477 | +SSLECHKeyDir /etc/apache2/echkeydir |
| 3478 | +... |
| 3479 | +# virtual hosts |
| 3480 | +<VirtualHost *:443> |
| 3481 | + SSLEngine On |
| 3482 | + SSLProtocol TLSv1.3 |
| 3483 | + ServerName example.com |
| 3484 | + DocumentRoot "/var/www/dir-example.com" |
| 3485 | +</VirtualHost> |
| 3486 | +<VirtualHost *:443> |
| 3487 | + SSLEngine On |
| 3488 | + SSLProtocol TLSv1.3 |
| 3489 | + ServerName foo.example.com |
| 3490 | + DocumentRoot "/var/www/dir-foo.example.com" |
| 3491 | +</VirtualHost> |
| 3492 | +... |
| 3493 | +</highlight> |
| 3494 | +</example> |
| 3495 | + |
| 3496 | +<note><title>Génération et publication de la clé ECH</title> |
| 3497 | +<p> |
| 3498 | +Dans ce qui précède, nous décrivons une configuration qui utilise |
| 3499 | +<code>example.com</code> comme <code>public-name</code> ECH et où |
| 3500 | +<code>foo.example.com</code> est un site web pour lequel nous voulons utiliser |
| 3501 | +ECH, les deux étant hébergés par la même instance de httpd. |
| 3502 | +</p> |
| 3503 | +<p> |
| 3504 | +L’utilisation d’ECH nécessite le chargement par httpd d’une paire de clés ECH |
| 3505 | +avec une composante privée pour le déchiffrement ECH. Pour les navigateurs, il |
| 3506 | +sera nécessaire que la composante publique de cette paire de clés soit publiée |
| 3507 | +dans le DNS. À l’aide d’OpenSSL, nous générons et stockons cette paire de clés |
| 3508 | +dans un fichier formaté PEM ECH comme indiqué ci-après. |
| 3509 | +</p> |
| 3510 | +<p> |
| 3511 | +Pour générer une paire de clés ECH et stocker le résultat dans un fichier PEM |
| 3512 | +ECH, utilisez la ligne de commande openssl prenant en charge ECH. Vous devez |
| 3513 | +aussi fournir le <code>« nom publique »</code> (<code>public-name</code>) requis |
| 3514 | +par le protocole ECH. |
| 3515 | +</p> |
| 3516 | +<p> |
| 3517 | +Les opérations de génération des clés doivent être effectuées sous n’importe |
| 3518 | +quel compte local utilisé pour la configuration de httpd. |
| 3519 | +</p> |
| 3520 | +<example><title>Exemple : Génération de clés ECH</title> |
| 3521 | +<highlight language="config"> |
| 3522 | +~# OSSL=/home/user/code/openssl/apps/openssl |
| 3523 | +~# mkdir -p /etc/apache2/echkeydir |
| 3524 | +~# chmod 700 /etc/apache2/echkeydir |
| 3525 | +~# cd /etc/apache2/echkeydir |
| 3526 | +~# $OSSL ech -public-name example.com -o example.com.pem.ech |
| 3527 | +~# cat example.com.pem.ech |
| 3528 | +-----BEGIN PRIVATE KEY----- |
| 3529 | +MC4CAQAwBQYDK2VuBCIEIJi22Im2rJ/lJqzNFZdGfsVfmknXAc8xz3fYPhD0Na5I |
| 3530 | +-----END PRIVATE KEY----- |
| 3531 | +-----BEGIN ECHCONFIG----- |
| 3532 | +AD7+DQA6QwAgACA8mxkEsSTp2xXC/RUFCC6CZMMgdM4x1iTWKu3EONjbMAAEAAEA |
| 3533 | +AQALZXhhbXBsZS5vcmcAAA== |
| 3534 | +-----END ECHCONFIG----- |
| 3535 | +</highlight> |
| 3536 | +</example> |
| 3537 | +<p> |
| 3538 | +La valeur ECHConfig doit ensuite être publiée dans le DNS sous forme d’un |
| 3539 | +enregistrement ressource HTTPS de façon à être accessible comme indiqué |
| 3540 | +ci-après : |
| 3541 | +</p> |
| 3542 | +<example><title>Accéder à une configuration ECH depuis le DNS</title> |
| 3543 | +<highlight language="config"> |
| 3544 | +$ dig +short HTTPS foo.example.com |
| 3545 | +1 . ech=AD7+DQA6QwAgACA8mxkEsSTp2xXC/RUFCC6CZMMgdM4x1iTWKu3EONjbMAAEAAEAAQALZXhhbXBsZS5vcmcAAA== |
| 3546 | +</highlight> |
| 3547 | +</example> |
| 3548 | +<p> |
| 3549 | +Divers autres champs peuvent être inclus dans un enregistrement ressource HTTPS. |
| 3550 | +Les méthodes existantes pour publier des enregistrements DNS peuvent être |
| 3551 | +utilisées pour effectuer ce qui précède pour de nombreux déploiements de httpd. |
| 3552 | +Dans certains cas, il pourra être intéressant d’utiliser |
| 3553 | +<a href="https://datatracker.ietf.org/doc/html/draft-ietf-tls-wkech"> |
| 3554 | +un URI connu pour les paramètres du service de publication</a> conçu pour |
| 3555 | +assister les serveurs web , par exemple dans la gestion des rotations fréquentes |
| 3556 | +de clés ECH. |
| 3557 | +</p> |
| 3558 | +</note> |
| 3559 | + |
| 3560 | +<note><title>Rechargement des clés ECH</title> |
| 3561 | + |
| 3562 | +<p> |
| 3563 | +Invoquer httpd avec l’argument de ligne de commande <code>-k graceful</code> |
| 3564 | +provoque un rechargement « en douceur » de la configuration sans fermer les |
| 3565 | +connexions existantes. |
| 3566 | +</p> |
| 3567 | + |
| 3568 | +</note> |
| 3569 | + |
| 3570 | +</usage> |
| 3571 | +</directivesynopsis> |
3441 | 3572 |
|
3442 | 3573 | </modulesynopsis> |
0 commit comments