Movatterモバイル変換


[0]ホーム

URL:


Modules |Directives |FAQ |Glossaire |Plan du site

Serveur HTTP Apache Version 2.4

<-
Apache >Serveur HTTP >Documentation >Version 2.4 >Modules

Module Apache mod_ssl

Langues Disponibles: en  | fr 

Description:Chiffrement de haut niveau basé sur les protocoles SecureSockets Layer (SSL) et Transport Layer Security (TLS)
Statut:Extension
Identificateur de Module:ssl_module
Fichier Source:mod_ssl.c

Sommaire

Ce module fournit le support SSL v3 et TLS v1 au serveur HTTPApache. SSL v2 n'est plus supporté.

Ce module s'appuie surOpenSSLpour fournir le moteur de chiffrement.

D'autres détails, discussions et exemples sont fournis dans ladocumentation SSL.

Support Apache!

Sujets

Directives

Traitement des bugs

Voir aussi

top

Variables d'environnement

Ce module peut être configuré pour fournir aux espaces de nommage SSIet CGI de nombreux éléments d'informations concernant SSL par le biaisde variables d'environnement supplémentaires. Par défaut, sauf pourHTTPS etSSL_TLS_SNI qui sont toujours définies, cesinformations ne sont pas fournies pour des raisons de performances (Voirla directiveSSLOptionsStdEnvVars ci-dessous).Les variables générées se trouvent dans la table ci-dessous.Ces informations peuvent également être disponible sous des noms différentsà des fins de compatibilité ascendante. Reportez-vous au chapitreCompatibilité pour plus de détails àpropos des variables de compatibilité.

Nom de la variableType de valeurDescription
HTTPSdrapeauHTTPS est utilisé.
SSL_PROTOCOLchaîneLa version du protocole SSL (SSLv3, TLSv1, TLSv1.1, TLSv1.2)
SSL_SESSION_IDchaîneL'identifiant de session SSL codé en hexadécimal
SSL_SESSION_RESUMEDchaîneSession SSL initiale ou reprise. Note : plusieurs requêtes peuventêtre servies dans le cadre de la même session SSL (initiale ou reprise)si les connexions persistantes (HTTP KeepAlive) sont utilisées
SSL_SECURE_RENEGchaînetrue si la renégociation sécurisée est supportée,false dans le cas contraire
SSL_CIPHERchaîneLe nom de l'algorithme de chiffrement
SSL_CIPHER_EXPORTchaînetrue si l'algorithme de chiffrement est un algorithmeexporté
SSL_CIPHER_USEKEYSIZEnombreNombre de bits de chiffrement (réellement utilisés)
SSL_CIPHER_ALGKEYSIZEnombreNombre de bits de chiffrement (possible)
SSL_COMPRESS_METHODchaîneMéthode de compression SSL négociée
SSL_VERSION_INTERFACEchaîneLa version du programme mod_ssl
SSL_VERSION_LIBRARYchaîneLa version du programme OpenSSL
SSL_CLIENT_M_VERSIONchaîneLa version du certificat client
SSL_CLIENT_M_SERIALchaîneLe numéro de série du certificat client
SSL_CLIENT_S_DNchaîneLe DN sujet du certificat client
SSL_CLIENT_S_DN_x509chaîneElément du DN sujet du client
SSL_CLIENT_SAN_Email_nchaîneLes entrées d'extension subjectAltName du certificat client de type rfc822Name
SSL_CLIENT_SAN_DNS_nchaîneLes entrées d'extension subjectAltName du certificat client de type dNSName
SSL_CLIENT_SAN_OTHER_msUPN_nchaîneExtensions subjectAltName de type otherName ducertificat client, forme Microsoft du nom principal de l'utilisateur (OID 1.3.6.1.4.1.311.20.2.3)
SSL_CLIENT_I_DNchaîneDN de l'émetteur du certificat du client
SSL_CLIENT_I_DN_x509chaîneElément du DN de l'émetteur du certificat du client
SSL_CLIENT_V_STARTchaîneValidité du certificat du client (date de début)
SSL_CLIENT_V_ENDchaîneValidité du certificat du client (date de fin)
SSL_CLIENT_V_REMAINchaîneNombre de jours avant expiration du certificat du client
SSL_CLIENT_A_SIGchaîneAlgorithme utilisé pour la signature du certificat du client
SSL_CLIENT_A_KEYchaîneAlgorithme utilisé pour la clé publique du certificat du client
SSL_CLIENT_CERTchaîneCertificat du client au format PEM
SSL_CLIENT_CERT_CHAIN_nchaîneCertificats de la chaîne de certification duclient au format PEM
SSL_CLIENT_CERT_RFC4523_CEAchaîneNuméro de série et fournisseur du certificat. le format correspond àcelui de la CertificateExactAssertion dans la RFC4523
SSL_CLIENT_VERIFYchaîneNONE,SUCCESS,GENEROUS ouFAILED:raison
SSL_SERVER_M_VERSIONchaîneLa version du certificat du serveur
SSL_SERVER_M_SERIALchaîneThe serial of the server certificate
SSL_SERVER_S_DNchaîneDN sujet du certificat du serveur
SSL_SERVER_S_DN_x509chaîneElément du DN sujet du certificat du serveur
SSL_SERVER_SAN_Email_nchaîneLes entrées d'extension subjectAltName ducertificat de serveur de type rfc822Name
SSL_SERVER_SAN_DNS_nchaîneLes entrées d'extension subjectAltName ducertificat de serveur de type dNSName
SSL_SERVER_SAN_OTHER_dnsSRV_nchaîneExtensions subjectAltName de type otherName ducertificat serveur, sous la forme SRVName (OID 1.3.6.1.5.5.7.8.7, RFC 4985)
SSL_SERVER_I_DNchaîneDN de l'émetteur du certificat du serveur
SSL_SERVER_I_DN_x509chaîneElément du DN de l'émetteur du certificat du serveur
SSL_SERVER_V_STARTchaîneValidité du certificat du serveur (date de dédut)
SSL_SERVER_V_ENDchaîneValidité du certificat du serveur (date de fin)
SSL_SERVER_A_SIGchaîneAlgorithme utilisé pour la signature du certificat du serveur
SSL_SERVER_A_KEYchaîneAlgorithme utilisé pour la clé publique du certificat du serveur
SSL_SERVER_CERTchaîneCertificat du serveur au format PEM
SSL_SRP_USERchaînenom d'utilisateur SRP
SSL_SRP_USERINFOchaîneinformations sur l'utilisateur SRP
SSL_TLS_SNIstringContenu de l'extension SNI TLS (si supporté par ClientHello)

x509 spécifie un élément de DN X.509 parmiC,ST,L,O,OU,CN,T,I,G,S,D,UID,Email. A partir de la version2.2.0 d'Apache,x509 peut aussi comporter un suffixe numérique_n. Si le DN en question comporte plusieurs attributs denoms identiques, ce suffixe constitue un index débutant à zéro etpermettant de sélectionner unattribut particulier. Par exemple, si le DN sujet du certificat duserveur comporte deux champs OU, on peut utiliserSSL_SERVER_S_DN_OU_0 etSSL_SERVER_S_DN_OU_1pour référencer chacun d'entre eux. Un nom de variable sans suffixe_n est équivalent au même nom avec le suffixe_0, ce qui correspond au premier attribut (ou au seul)caractérisant le DN.Lorsque la table d'environnement est remplie en utilisant l'optionStdEnvVars de la directiveSSLOptions, le premier attribut (ou leseul) caractérisant le DN est enregistré avec un nom sans suffixe ;autrement dit, aucune entrée possédant comme suffixe_0n'est enregistrée.

A partir de la version 2.4.32 de httpd, on peut ajouter le suffixe_RAW àx509 dans un composant DN afin d'empêcher la conversionde la valeur de l'attribut en UTF-8. Il doit être placé après le suffixe index(s'il existe). On utilisera par exempleSSL_SERVER_S_DN_OU_RAW ouSSL_SERVER_S_DN_OU_0_RAW.

Le format des variables*_DN a changé depuis la version2.3.11 d'Apache HTTPD. Voir l'optionLegacyDNStringFormatde la directiveSSLOptions pourplus de détails.

SSL_CLIENT_V_REMAIN n'est disponible qu'à partir de laversion 2.1.

Plusieurs variables d'environnement additionnelles peuvent êtreutilisées dans les expressionsSSLRequire, oudans les formats de journalisation personnalisés :

HTTP_USER_AGENT        PATH_INFO             AUTH_TYPEHTTP_REFERER           QUERY_STRING          SERVER_SOFTWAREHTTP_COOKIE            REMOTE_HOST           API_VERSIONHTTP_FORWARDED         REMOTE_IDENT          TIME_YEARHTTP_HOST              IS_SUBREQ             TIME_MONHTTP_PROXY_CONNECTION  DOCUMENT_ROOT         TIME_DAYHTTP_ACCEPT            SERVER_ADMIN          TIME_HOURTHE_REQUEST            SERVER_NAME           TIME_MINREQUEST_FILENAME       SERVER_PORT           TIME_SECREQUEST_METHOD         SERVER_PROTOCOL       TIME_WDAYREQUEST_SCHEME         REMOTE_ADDR           TIMEREQUEST_URI            REMOTE_USER

Dans ces contextes, deux formats spéciaux peuvent aussi être utilisés:

ENV:nom_variable
Correspond à la variable d'environnement standardnom_variable.
HTTP:nom_en-tête
Correspond à la valeur de l'en-tête de requête dont le nom estnom_en-tête.
top

Formats de journauxpersonnalisés

Lorsquemod_ssl est compilé dans le serveur Apacheou même chargé (en mode DSO), des fonctions supplémentaires sontdisponibles pour leFormat de journal personnalisé dumodulemod_log_config. A ce titre, la fonction deformat d'eXtension ``%{nom-var}x''peut être utilisée pour présenter en extension toute variable fourniepar tout module, et en particulier celles fournies par mod_ssl et quevous trouverez dans la table ci-dessus.

A des fins de compatibilité ascendante, il existe une fonction de formatcryptographique supplémentaire``%{nom}c''. Vous trouverez toutesles informations à propos de cette fonction dans le chapitreCompatibilité.

Exemple

CustomLog "logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Ces formats sont disponibles même si l'optionStdEnvVars de ladirectiveSSLOptions n'a pas étédéfinie.

top

Information à propos de la requête

mod_ssl enregistre des informations à propos de larequête que l'on peut restituer dans les journaux avec la chaîne deformat%{nom}n via le modulemod_log_config.

Les informations enregistrées sont les suivantes :

ssl-access-forbidden
Cette information contient la valeur1 si l'accès a été refusé suite à une directiveSSLRequire ouSSLRequireSSL.
ssl-secure-reneg
Simod_ssl a été compilé avec une version d'OpenSSL qui supporte la renégociation sécurisée, si SSL est utilisé pour la connexion courante et si le client supporte lui aussi la renégociation sécurisée, cette information contiendra la valeur1. Si le client ne supporte pas la renégociation sécurisée, l'information contiendra la valeur0. Simod_ssl n'a pas été compilé avec une version d'OpenSSL qui supporte la renégociation sécurisée, ou si SSL n'est pas utilisé pour la connexion courante, le contenu de l'information ne sera pas défini.
top

Extension pour l'interprétationdes expressions

Lorsquemod_ssl est compilé statiquement avecApache, ou même chargé dynamiquement (en tant que module DSO), toutevariable en provenance demod_ssl peutêtre utilisée pour l'interprétation desexpression ap_expr. Les variables peuvent être référencées enutilisant la syntaxe ``%{varname}''.A partir de la version 2.4.18, on peut aussi utiliser la syntaxe destylemod_rewrite``%{SSL:varname}'', ou la syntaxe destyle fonction ``ssl(varname)''.

Exemple (en utilisantmod_headers)

Header set X-SSL-PROTOCOL "expr=%{SSL_PROTOCOL}"Header set X-SSL-CIPHER "expr=%{SSL:SSL_CIPHER}"

Cette fonctionnalité est disponible même si l'optionStdEnvVars de la directiveSSLOptions n'a pas été définie.

top

Fournisseurs d'autorisationdisponibles avec Require

mod_ssl propose quelques fournisseurs d'autorisation à utiliser avec la directiveRequire du modulemod_authz_core.

Require ssl

Le fournisseurssl refuse l'accès si une connexion n'est pas chiffrée avec SSL. L'effet est similaire à celui de la directiveSSLRequireSSL.

Require ssl

Require ssl-verify-client

Le fournisseurssl autorise l'accès si l'utilisateur est authentifié via un certificat client valide. Ceci n'a un effet que siSSLVerifyClient optional est actif.

Dans l'exemple suivant, l'accès est autorisé si le client est authentifié via un certificat client ou par nom d'utilisateur/mot de passe :

Require ssl-verify-clientRequire valid-user
top

DirectiveSSLCACertificateFile

Description:Fichier contenant une concaténation des certificats de CAcodés en PEM pour l'authentification des clients
Syntaxe:SSLCACertificateFilefile-path
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette directive permet de définir le fichiertout-en-un où vouspouvez rassembler les certificats des Autorités de Certification (CAs)pour les clients auxquels vous avez à faire. On les utilise pourl'authentification des clients. Un tel fichier contient la simpleconcaténation des différents fichiers de certificats codés en PEM, parordre de préférence. Cette directive peut être utilisée à la place et/ouen complément de la directiveSSLCACertificatePath.

Exemple

SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt"
top

DirectiveSSLCACertificatePath

Description:Répertoire des certificats de CA codés en PEM pourl'authentification des clients
Syntaxe:SSLCACertificatePathchemin-répertoire
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette directive permet de définir le répertoire où sont stockés lescertificats des Autorités de Certification (CAs) pour les clientsauxquels vous avez à faire. On les utilise pour vérifier le certificatdu client au cours de l'authentification de ce dernier.

Les fichiers de ce répertoire doivent être codés en PEM et ils sontaccédés via des noms de fichier sous forme de condensés ou hash. Il nesuffit donc pas de placer les fichiers de certificats dans ce répertoire: vous devez aussi créer des liens symboliques nommésvaleur-de-hashage.N, et vous devez toujours vousassurer que ce répertoire contient les liens symboliques appropriés.

Exemple

SSLCACertificatePath "/usr/local/apache2/conf/ssl.crt/"
top

DirectiveSSLCADNRequestFile

Description:Fichier contenant la concaténation des certificats de CAcodés en PEM pour la définition de noms de CA acceptables
Syntaxe:SSLCADNRequestFilefile-path
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Lorsque mod_ssl demande un certificat client, une liste denomsd'Autorités de Certification acceptables est envoyée au client aucours de la phase d'initialisation de la connexion SSL. Le client peutalors utiliser cette liste de noms de CA pour sélectionner un certificatclient approprié parmi ceux dont il dispose.

Si aucune des directivesSSLCADNRequestPath ouSSLCADNRequestFile n'est définie, la listede noms de CsA acceptables envoyée au client est la liste des noms detous les certificats de CA spécifiés par les directivesSSLCACertificateFile etSSLCACertificatePath ; en d'autres termes,c'est la liste des noms de CAs qui sera effectivement utilisée pourvérifier le certificat du client.

Dans certaines situations, il est utile de pouvoir envoyerune liste de noms de CA acceptables qui diffère de la liste des CAseffectivement utilisés pour vérifier le certificat du client ;considérons par exemple le cas où le certificat du client est signé pardes CAs intermédiaires. On peut ici utiliser les directivesSSLCADNRequestPath et/ouSSLCADNRequestFile, et les noms de CAacceptables seront alors extraits de l'ensemble des certificats contenusdans le répertoire et/ou le fichier définis par cette paire dedirectives.

SSLCADNRequestFile doitspécifier un fichiertout-en-un contenant une concaténation descertificats de CA codés en PEM.

Exemple

SSLCADNRequestFile "/usr/local/apache2/conf/ca-names.crt"
top

DirectiveSSLCADNRequestPath

Description:Répertoire contenant des fichiers de certificats de CAcodés en PEM pour la définition de noms de CA acceptables
Syntaxe:SSLCADNRequestPathchemin-répertoire
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette directive optionnelle permet de définir la liste denoms deCAs acceptables qui sera envoyée au client lorsqu'un certificat declient est demandé. Voir la directiveSSLCADNRequestFile pour plus dedétails.

Les fichiers de ce répertoire doivent être codés en PEM et ils sontaccédés via des noms de fichier sous forme de condensés ou hash. Il nesuffit donc pas de placer les fichiers de certificats dans ce répertoire: vous devez aussi créer des liens symboliques nommésvaleur-de-hashage.N, et vous devez toujours vousassurer que ce répertoire contient les liens symboliques appropriés.

Exemple

SSLCADNRequestPath "/usr/local/apache2/conf/ca-names.crt/"
top

DirectiveSSLCARevocationCheck

Description:Active la vérification des révocations basée sur les CRL
Syntaxe:SSLCARevocationCheck chain|leaf|none [flags ...]
Défaut:SSLCARevocationCheck none
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Le drapeau optionnelflags est disponible à partir de laversion 2.4.21 du serveur HTTP Apache

Active la vérification des révocations basée sur les Listes deRévocations de Certificats (CRL). Au moins une des directivesSSLCARevocationFile ouSSLCARevocationPath doit être définie.Lorsque cette directive est définie àchain (valeurrecommandée), les vérifications CRL sont effectuées sur tous lescertificats de la chaîne, alors que la valeurleaf limitela vérification au certificat hors chaîne (la feuille).

flags peut prendre comme valeurs

Exemple

SSLCARevocationCheck chain

Compatibilité avec la branche 2.2

SSLCARevocationCheck chain no_crl_for_cert_ok
top

DirectiveSSLCARevocationFile

Description:Fichier contenant la concaténation des CRLs des CA codés enPEM pour l'authentification des clients
Syntaxe:SSLCARevocationFilefile-path
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette directive permet de définir le fichiertout-en-un où sontrassemblées les Listes de Révocation de Certificats (CRLs) des Autoritésde certification (CAs) pour les clients auxquels vous avez à faire. Onles utilise pour l'authentification des clients. Un tel fichier contientla simple concaténation des différents fichiers de CRLs codés en PEM,dans l'ordre de préférence. Cette directive peut être utilisée à laplace et/ou en complément de la directiveSSLCARevocationPath.

Exemple

SSLCARevocationFile"/usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl"
top

DirectiveSSLCARevocationPath

Description:Répertoire des CRLs de CA codés en PEM pourl'authentification des clients
Syntaxe:SSLCARevocationPathchemin-répertoire
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette directive permet de définir le répertoire où sont stockées lesListes de Révocation de Certificats (CRL) des Autorités de Certification(CAs) pour les clients auxquels vous avez à faire. On les utilise pourrévoquer les certificats des clients au cours de l'authentification deces derniers.

Les fichiers de ce répertoire doivent être codés en PEM et ils sontaccédés via des noms de fichier sous forme de condensés ou hash. Il nesuffit donc pas de placer les fichiers de CRL dans ce répertoire: vous devez aussi créer des liens symboliques nommésvaleur-de-hashage.N, et vous devez toujours vousassurer que ce répertoire contient les liens symboliques appropriés.

Exemple

SSLCARevocationPath "/usr/local/apache2/conf/ssl.crl/"
top

DirectiveSSLCertificateChainFile

Description:Fichier contenant les certificats de CA du serveur codés enPEM
Syntaxe:SSLCertificateChainFilefile-path
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

SSLCertificateChainFile est obsolète

SSLCertificateChainFile est devenue obsolète avec laversion 2.4.8, lorsque la directiveSSLCertificateFile a été étenduepour supporter aussi les certificats de CA intermédiaires dans lefichier de certificats du serveur.

Cette directive permet de définir le fichier optionneltout-en-un où vous pouvez rassembler les certificats desAutorités de Certification (CA) qui forment la chaîne de certificationdu certificat du serveur. Cette chaîne débute par le certificat de la CAqui a délivré le certificat du serveur et peut remonter jusqu'aucertificat de la CA racine. Un tel fichier contient la simpleconcaténation des différents certificats de CA codés en PEM, en généraldans l'ordre de la chaîne de certification.

Elle doit être utilisée à la place et/ou en complément de ladirectiveSSLCACertificatePathpour construire explicitement la chaîne de certification du serveur quiest envoyée au navigateur en plus du certificat du serveur. Elle s'avèreparticulièrement utile pour éviter les conflits avec les certificats deCA lorsqu'on utilise l'authentification du client. Comme le fait deplacer un certificat de CA de la chaîne de certification du serveur dansla directiveSSLCACertificatePath produit le même effetpour la construction de la chaîne de certification, cette directive apour effet colatéral de faire accepter les certificats clients fournispar cette même CA, au cours de l'authentification du client.

Soyez cependant prudent : fournir la chaîne de certification nefonctionne que si vous utilisez unsimple certificat deserveur RSAou DSA. Si vous utilisez une paire de certificatscouplés RSA+DSA , cela ne fonctionnera que si les deux certificatsutilisent vraimentla même chaîne de certification. Dans le cascontraire, la confusion risque de s'installer au niveau desnavigateurs.

Exemple

SSLCertificateChainFile "/usr/local/apache2/conf/ssl.crt/ca.crt"
top

DirectiveSSLCertificateFile

Description:Fichier de données contenant les informations de certificat X.509 du serveurcodées au format PEM ou identificateur de jeton
Syntaxe:SSLCertificateFilefile-path|certid
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:L'optioncertid est disponible à partir de la version2.4.42 du serveur HTTP Apache.

Cette directive permet de définir le fichier de données contenant lesinformations de certificat X.509 du serveur codées au format PEM oul'identificateur de certificat via un jeton cryptographique. Si on utilise unfichier au format PEM, ce dernier doit contenir au minimum un certificatd'entité finale (feuille).La directive peut être utilisée plusieurs fois (elle référence desfichiers différents) pour accepter plusieurs algorithmesd'authentification au niveau du serveur - souvent RSA, DSA et ECC. Lenombre d'algorithmes supportés dépend de la version d'OpenSSL utiliséeavec mod_ssl : à partir de la version 1.0.0, la commandeopenssllist-public-key-algorithms affiche la liste des algorithmessupportés. Voir aussi la note ci-dessous à propos des limitations des versionsd'OpenSSL antérieures à 1.0.2 et la manière de les contourner.

Les fichiers peuvent aussi contenir des certificats de CAintermédiaires triés depuis la feuille vers la racine. Cettefonctionnalité est disponible depuis la version 2.4.8 du serveur HTTPApache, et rend obsolète la directiveSSLCertificateChainFile. A partir de laversion 1.0.2 d'OpenSSL, il est alors possible de configurer la chaînede certification en fonction du certificat.

Depuis la version 2.4.7 du serveur HTTP Apache, on peut aussi ajouterdes paramètres DH personnalisés et un nom ECcurve pour les clés éphémères à la fin du premier fichier défini par ladirectiveSSLCertificateFile.Ces paramètres peuvent être générés avec les commandesopenssldhparam etopenssl ecparam, et ils peuvent êtreajoutés tel quel à la fin du premier fichier de certificat. En effet,seul le premier fichier de certificat défini peut être utilisé pourenregistrer des paramètres personnalisés, car ces derniers s'appliquentindépendamment de l'algorithme d'authentification utilisé.

Enfin, il est aussi possible d'ajouter la clé privée du certificat del'entité finale au fichier de certificat, ce qui permet de se passerd'une directiveSSLCertificateKeyFile séparée. Cettepratique est cependant fortement déconseillée. Dans ce cas, les fichiers decertificat qui contiennent de telles clés embarquées doivent être définisaprès les certificats qui utilisent un fichier de clé séparé. En outre,si la clé est chiffrée, une boîte de dialogue pour entrer le mot depasse de la clé s'ouvre au démarrage du serveur.

Plutôt que de stocker les certificats et les clés privées dans des fichiers,on peut utiliser un identificateur de certificat pour identifier un certificatstocké dans un jeton. Actuellement, seuls lesURIs PKCS#11 sont reconnus commeidentificateurs de certificats et peuvent être utilisés en conjonction avec lemoteur ou le fournisseur OpenSSLpkcs11. Si la directiveSSLCertificateKeyFile est absente, le certificat etla clé privée peuvent être chargés avec l'identificateur spécifié via ladirectiveSSLCertificateFile.

Interopérabilité des paramètres DH avec les nombres premiers deplus de 1024 bits

Depuis la version 2.4.7, mod_ssl utilise desparamètres DH standardisés avec des nombres premiers de 2048, 3072 et4096 bits, et avec des nombres premiers de 6144 et 8192 bits depuis laversion 2.4.10 (voirRFC3526), et les fournit aux clients en fonction de la longueur de laclé du certificat RSA/DSA. En particulier avec les clients basés surJava (versions 7 et antérieures), ceci peut provoquer des erreurs aucours de la négociation - voir cetteréponse de la FAQ SSL pourcontourner les problèmes de ce genre.

Paramètres DH par défaut lorsqu'on utilise plusieurs certificats et uneversion d'OpenSSL antérieure à 1.0.2.

Lorsqu'on utilise plusieurs certificats pour supporter différents algorithmesd'authentification (comme RSA, DSA, mais principalement ECC) et uneversion d'OpenSSL antérieure à 1.0.2, il est recommandé soit d'utiliser desparamètres DH spécifiques (solution à privilégier) en les ajoutant au premierfichier certificat (comme décrit ci-dessus), soit d'ordonner les directivesSSLCertificateFile de façon à ce que les certificatsRSA/DSA soit placésaprès les certificats ECC.

Cette limitation est présente dans les anciennes versions d'OpenSSL quiprésentent toujours le dernier certificat configuré, au lieude laisser le serveur HTTP Apache déterminer le certificat sélectionné lors dela phase de négociation de la connexion (lorsque les paramètres DH doivent êtreenvoyés à l'hôte distant).De ce fait, le serveur peut sélectionner des paramètres DH par défaut basés surla longueur de la clé du mauvais certificat (les clés ECC sont beaucoup pluspetites que les clés RSA/DSA et leur longueur n'est pas pertinente pour lasélection des nombres premiers DH).

Ce problème peut être résolu en créant et configurant des paramètres DHspécifiques (comme décrit ci-dessus), car ils l'emportent toujours sur lesparamètres DH par défaut, et vous pourrez ainsi utiliser une longueur spécifiqueet appropriée.

Exemple

# Exemple utilisant un fichier codé en PEM.SSLCertificateFile "/usr/local/apache2/conf/ssl.crt/server.crt"# Exemple d'utilisation d'un certificat et d'une clé privés issus d'un jeton# PKCS#11 :SSLCertificateFile "pkcs11:token=My%20Token%20Name;id=45"
top

DirectiveSSLCertificateKeyFile

Description:Fichier contenant la clé privée du serveur codée enPEM
Syntaxe:SSLCertificateKeyFilefile-path|keyid
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:keyid est disponible à partir de la version 2.4.42 duserveur HTTP Apache.

Cette directive permet de définir le fichier contenant la clé privée du serveurcodée en PEM ou l'identifiant de la clé via un jeton cryptographique défini. Sila clé privée est chiffrée, une boîte de dialogue demandant le mot de passe decette dernière s'ouvre au démarrage du serveur.

Cette directive peut être utilisée plusieurs fois pour référencerdifférents noms de fichiers, afin de supporter plusieurs algorithmespour l'authentification du serveur. A chaque directiveSSLCertificateKeyFile doit être associéeune directiveSSLCertificateFile correspondante.

La clé privée peut aussi être ajoutée au fichier défini par la directiveSSLCertificateFile, mais cettepratique est fortement déconseillée. Dans ce cas, les fichiers decertificats qui comportent une telle clé doivent être définis après lescertificats qui utilisent un fichier de clé séparé.

Plutôt que de stocker des clés privées dans des fichiers, il est possibled'identifier une clé privée via un identifiant stocké dans un jeton.Actuellement, seuls lesPKCS#11URIs sont reconnus comme identifiants de clés privées et peuvent êtreutilisés en conjonction avec le moteur ou le fournisseur OpenSSLpkcs11.

Exemple

# Pour utiliser une clé privée stockée dans fichier encodé PEM :SSLCertificateKeyFile "/usr/local/apache2/conf/ssl.key/server.key"# Pour utiliser une clé privée à partir d'un jeton PKCS#11 :SSLCertificateKeyFile "pkcs11:token=My%20Token%20Name;id=45"
top

DirectiveSSLCipherSuite

Description:Algorithmes de chiffrement disponibles pour la négociationau cours de l'initialisation de la connexion SSL
Syntaxe:SSLCipherSuite [protocol]cipher-spec
Défaut:SSLCipherSuite DEFAULT (dépend de la version d'OpenSSLinstallée)
Contexte:configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_ssl

Cette directive complexe utilise la chaînecipher-speccontenant la liste des algorithmes de chiffrement OpenSSL que le clientpeut utiliser au cours de la phase d'initialisation de la connexion SSL. Laspécification optionnelle du protocole permet de configurer la suited'algorithmes de chiffrement pour une version spécifique de SSL. Une des valeurspossibles est "SSL" pour toutes les versions du protocole SSL jusqu'à TLSv1.2compris.

Notez que cette directive peut être utilisée aussi bien dans un contextede serveur que dans un contexte de répertoire. Dans un contexte deserveur, elle s'applique à l'initialisation SSL standard lorsqu'uneconnexion est établie. Dans un contexte de répertoire, elle force unerenégociation SSL avec la liste d'algorithmes de chiffrement spécifiéeaprès la lecture d'une requête HTTP, mais avant l'envoi de la réponseHTTP.

Si la bibliothèque SSL supporte TLSv1.3 (versions d'OpenSSL 1.1.1 etsupérieures), il est possible de spécifier le paramètre "TLSv1.3" pourconfigurer la suite d'algorithmes de chiffrement pour ce protocole. CommeTLSv1.3 n'autorise pas la renégociation, spécifier pour lui des algorithmes dechiffrement dans un contexte de répertoire n'est pas autorisé

Pour obtenir la liste des noms d'algorithmes de chiffrement pour TLSv1.3, seréférer à ladocumentationOpenSSL.

La liste d'algorithmes de chiffrement SSL spécifiée par l'argumentcipher-spec comporte quatre attributs principaux auxquelss'ajoutent quelques attributs secondaires :

L'algorithme de chiffrement peut aussi provenir de l'extérieur. Lesalgorithmes SSLv2 ne sont plus supportés.Pour définir les algorithmes à utiliser, onpeut soit spécifier tous les algorithmes à la fois, soit utiliser desalias pour spécifier une liste d'algorithmes dans leur ordre depréférence (voirTable 1). Les algorithmes etalias effectivement disponibles dépendent de la version d'opensslutilisée. Les versions ultérieures d'openssl sont susceptibles d'incluredes algorithmes supplémentaires.

SymboleDescription
Algorithme d'échange de clés :
kRSAEchange de clés RSA
kDHrEchange de clés Diffie-Hellman avecclé RSA
kDHdEchange de clés Diffie-Hellman avecclé DSA
kEDHEchange de clés Diffie-Hellmantemporaires (pas de certificat)
kSRPéchange de clés avec mot de passedistant sécurisé (SRP)
Algorithmes d'authentification :
aNULLPas d'authentification
aRSAAuthentification RSA
aDSSAuthentification DSS
aDHAuthentification Diffie-Hellman
Algorithmes de chiffrement :
eNULLPas de chiffrement
NULLalias pour eNULL
AESChiffrement AES
DESChiffrement DES
3DESChiffrement Triple-DES
RC4Chiffrement RC4
RC2Chiffrement RC2
IDEAChiffrement IDEA
Algorithmes de condensés MAC:
MD5Fonction de hashage MD5
SHA1Fonction de hashage SHA1
SHAalias pour SHA1
SHA256Fonction de hashage SHA256
SHA384Fonction de hashage SHA384
Alias :
SSLv3tous les algorithmes de chiffrementSSL version 3.0
TLSv1tous les algorithmes de chiffrementTLS version 1.0
EXPtous les algorithmes de chiffrementexternes
EXPORT40tous les algorithmes de chiffrementexternes limités à 40 bits
EXPORT56tous les algorithmes de chiffrementexternes limités à 56 bits
LOWtous les algorithmes de chiffrementfaibles (non externes, DES simple)
MEDIUMtous les algorithmes avecchiffrement 128 bits
HIGHtous les algorithmesutilisant Triple-DES
RSAtous les algorithmesutilisant l'échange de clés RSA
DHtous les algorithmesutilisant l'échange de clés Diffie-Hellman
EDHtous les algorithmesutilisant l'échange de clés Diffie-Hellman temporaires
ECDHEchange de clés Elliptic Curve Diffie-Hellman
ADHtous les algorithmesutilisant l'échange de clés Diffie-Hellman anonymes
AECDHtous les algorithmes utilisantl'échange de clés Elliptic Curve Diffie-Hellman
SRPtous les algorithmes utilisantl'échange de clés avec mot de passe distant sécurisé (SRP)
DSStous les algorithmesutilisant l'authentification DSS
ECDSAtous les algorithmes utilisantl'authentification ECDSA
aNULLtous les algorithmes n'utilisantaucune authentification

Cela devient intéressant lorsque tous ces symboles sont combinésensemble pour spécifier les algorithmes disponibles et l'ordre danslequel vous voulez les utiliser. Pour simplifier tout cela, vousdisposez aussi d'alias (SSLv3, TLSv1, EXP, LOW, MEDIUM,HIGH) pour certains groupes d'algorithmes. Ces symboles peuventêtre reliés par des préfixes pour former la chaînealgorithmes.Les préfixes disponibles sont :

Les algorithmesaNULL,eNULL etEXP sont toujours désactivés

Depuis la version 2.4.7, lesalgorithmes de type null ou destinés à l'exportation sont toujoursdésactivés car mod_ssl ajoute obligatoirement!aNULL:!eNULL:!EXP à toute chaîne d'algorithme dechiffrement à l'initialisation.

Pour vous simplifier la vie, vous pouvez utiliser la commande``openssl ciphers -v'' qui vous fournit un moyen simple decréer la chaînealgorithmes avec succès. La chaînealgorithmes par défaut dépend de la version des bibliothèquesSSL installées. Supposons qu'elle contienne``RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5'', ce quistipule de mettreRC4-SHA etAES128-SHA enpremiers, car ces algorithmes présentent un bon compromis entre vitesseet sécurité. Viennent ensuite les algorithmes de sécurité élevée etmoyenne. En fin de compte, les algorithmes qui n'offrent aucuneauthentification sont exclus, comme les algorithmes anonymesDiffie-Hellman pour SSL, ainsi que tous les algorithmes qui utilisentMD5 pour le hashage, car celui-ci est reconnu commeinsuffisant.

$ openssl ciphers -v 'RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5'RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1...                     ...               ...     ...           ...SEED-SHA                SSLv3 Kx=RSA      Au=RSA  Enc=SEED(128) Mac=SHA1PSK-RC4-SHA             SSLv3 Kx=PSK      Au=PSK  Enc=RC4(128)  Mac=SHA1KRB5-RC4-SHA            SSLv3 Kx=KRB5     Au=KRB5 Enc=RC4(128)  Mac=SHA1

Vous trouverez la liste complète des algorithmes RSA & DHspécifiques à SSL dans laTable 2.

Exemple

SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW
Symbole algorithmeProtocoleEchange de clésAuthentificationChiffrementCondensé MACType
Algorithmes RSA :
DES-CBC3-SHASSLv3RSARSA3DES(168)SHA1
IDEA-CBC-SHASSLv3RSARSAIDEA(128)SHA1
RC4-SHASSLv3RSARSARC4(128)SHA1
RC4-MD5SSLv3RSARSARC4(128)MD5
DES-CBC-SHASSLv3RSARSADES(56)SHA1
EXP-DES-CBC-SHASSLv3RSA(512)RSADES(40)SHA1 export
EXP-RC2-CBC-MD5SSLv3RSA(512)RSARC2(40)MD5 export
EXP-RC4-MD5SSLv3RSA(512)RSARC4(40)MD5 export
NULL-SHASSLv3RSARSANoneSHA1
NULL-MD5SSLv3RSARSANoneMD5
Algorithmes Diffie-Hellman :
ADH-DES-CBC3-SHASSLv3DHNone3DES(168)SHA1
ADH-DES-CBC-SHASSLv3DHNoneDES(56)SHA1
ADH-RC4-MD5SSLv3DHNoneRC4(128)MD5
EDH-RSA-DES-CBC3-SHASSLv3DHRSA3DES(168)SHA1
EDH-DSS-DES-CBC3-SHASSLv3DHDSS3DES(168)SHA1
EDH-RSA-DES-CBC-SHASSLv3DHRSADES(56)SHA1
EDH-DSS-DES-CBC-SHASSLv3DHDSSDES(56)SHA1
EXP-EDH-RSA-DES-CBC-SHASSLv3DH(512)RSADES(40)SHA1 export
EXP-EDH-DSS-DES-CBC-SHASSLv3DH(512)DSSDES(40)SHA1 export
EXP-ADH-DES-CBC-SHASSLv3DH(512)NoneDES(40)SHA1 export
EXP-ADH-RC4-MD5SSLv3DH(512)NoneRC4(40)MD5 export
top

DirectiveSSLCompression

Description:Permet d'activer la compression au niveau SSL
Syntaxe:SSLCompression on|off
Défaut:SSLCompression off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible à partir de la version 2.4.3 du serveur HTTPApache, si on utilise une version d'OpenSSL 0.9.8 ou supérieure ;l'utilisation dans un contexte de serveur virtuel n'est disponible quesi on utilise une version d'OpenSSL 1.0.0 ou supérieure. La valeur pardéfaut étaiton dans la version 2.4.3.

Cette directive permet d'activer la compression au niveau SSL.

L'activation de la compression est à l'origine de problèmes desécurité dans la plupart des configurations (l'attaque nommée CRIME).

top

DirectiveSSLCryptoDevice

Description:Active l'utilisation d'un accélérateur matériel dechiffrement
Syntaxe:SSLCryptoDevicemoteur
Défaut:SSLCryptoDevice builtin
Contexte:configuration globale
Statut:Extension
Module:mod_ssl

Cette directive permet d'activer l'utilisation d'une carte accélératricede chiffrement qui prendra en compte certaines parties du traitementrelatif à SSL. Cette directive n'est utilisable que si la boîte àoutils SSL à été compilée avec le support "engine" ; les versions 0.9.7et supérieures d'OpenSSL possèdent par défaut le support "engine", alorsqu'avec la version 0.9.6, il faut utiliser les distributions séparées"-engine".

Pour déterminer les moteurs supportés, exécutez la commande"openssl engine".

Exemple

# Pour un accélérateur Broadcom :SSLCryptoDevice ubsec

À partir de la version 3.0 d'OpenSSL, si aucun moteur n'est spécifié alorsque la clé ou le certificat sont spécifiés à l'aide d'URIs PKCS#11, le chargement de laclé et du certificat est tenté à partir d'un fournisseur OpenSSL. Le fournisseurOpenSSL à utiliser doit être défini et configuré dans le fichier deconfiguration d'OpenSSL et il doit prendre en charge laméthodeSTORE pour lesURIs PKCS#11.

top

DirectiveSSLEngine

Description:Interrupteur marche/arrêt du moteur SSL
Syntaxe:SSLEngine on|off
Défaut:SSLEngine off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:La prise en charge de l’argument "optional" a été supprimée avec la version2.4.64. Cet argument activait la prise en charge de la RFC 2817 (mise à niveau de TLS).

Cette directive permet d'activer/désactiver le moteur du protocoleSSL/TLS. Elle doit être utilisée dans une section<VirtualHost> pour activerSSL/TLS pour ce serveur virtuel particulier. Par défaut, le moteur duprotocole SSL/TLS est désactivé pour le serveur principal et tous lesserveurs virtuels configurés.

Exemple

<VirtualHost _default_:443>SSLEngine on#...</VirtualHost>
top

DirectiveSSLFIPS

Description:Coimmutateur du mode SSL FIPS
Syntaxe:SSLFIPS on|off
Défaut:SSLFIPS off
Contexte:configuration globale
Statut:Extension
Module:mod_ssl

Cette directive permet d'activer/désactiver l'utilisation du drapeauFIPS_mode de la bibliothèque SSL. Elle doit être définie dans lecontexte du serveur principal, et n'accepte pas les configurationssources de conflits (SSLFIPS on suivi de SSLFIPS off par exemple). Lemode s'applique à toutes les opérations de la bibliothèque SSL.

Si httpd a été compilé avec une bibliothèque SSL qui ne supporte pas ledrapeau FIPS_mode, la directiveSSLFIPS on échouera.Reportez-vous au document sur la politique de sécurité FIPS 140-2 de labibliothèque du fournisseur SSL, pour les prérequis spécifiquesnécessaires à l'utilisation de mod_ssl selon un mode d'opérationapprouvé par FIPS 140-2 ; notez que mod_ssl en lui-même n'est pasvalidé, mais peut être décrit comme utilisant un module de chiffrementvalidé par FIPS 140-2, lorsque tous les composants sont assemblés et misen oeuvre selon les recommandations de la politique de sécuritéapplicable.

top

DirectiveSSLHonorCipherOrder

Description:Option permettant de classer les algorithmes de chiffrementdu serveur par ordre de préférence
Syntaxe:SSLHonorCipherOrder on|off
Défaut:SSLHonorCipherOrder off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Normalement, ce sont les préférences du client qui sont prises encompte lors du choix d'un algorithme de chiffrement au cours d'unenégociation SSLv3 ou TLSv1. Si cette directive est activée, ce sont lespréférences du serveur qui seront prises en compte à la place.

Exemple

SSLHonorCipherOrder on
top

DirectiveSSLInsecureRenegotiation

Description:Option permettant d'activer le support de la renégociationnon sécurisée
Syntaxe:SSLInsecureRenegotiation on|off
Défaut:SSLInsecureRenegotiation off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible depuis httpd 2.2.15, si une version 0.9.8mou supérieure d'OpenSSL est utilisée

Comme il a été spécifié, toutes les versions des protocoles SSL etTLS (jusqu'à la version 1.2 de TLS incluse) étaient vulnérables à uneattaque de type Man-in-the-Middle (CVE-2009-3555)au cours d'une renégociation. Cette vulnérabilité permettait à unattaquant de préfixer la requête HTTP (telle qu'elle était vue duserveur) avec un texte choisi. Une extension du protocole a étédéveloppée pour corriger cette vulnérabilité, sous réserve qu'elle soitsupportée par le client et le serveur.

Simod_ssl est lié à une version 0.9.8m ousupérieure d'OpenSSL, par défaut, la renégociation n'est accordée qu'auxclients qui supportent la nouvelle extension du protocole. Sicette directive est activée, la renégociation sera accordée aux anciensclients (non patchés), quoique de manière non sécurisée

Avertissement à propos de la sécurité

Si cette directive est activée, les connexions SSL seront vulnérablesaux attaques de type préfixe Man-in-the-Middle comme décrit dansCVE-2009-3555.

Exemple

SSLInsecureRenegotiation on

La variable d'environnementSSL_SECURE_RENEG peut êtreutilisée dans un script SSI ou CGI pour déterminer si la renégociationsécurisée est supportée pour une connexion SSL donnée.

top

DirectiveSSLOCSPDefaultResponder

Description:Définit l'URI du répondeur par défaut pour la validationOCSP
Syntaxe:SSLOCSPDefaultResponderuri
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette directive permet de définir le répondeur OCSP par défaut. Si ladirectiveSSLOCSPOverrideResponder n'est pas activée,l'URI spécifié ne sera utilisé que si aucun URI de répondeur n'estspécifié dans le certificat en cours de vérification.

top

DirectiveSSLOCSPEnable

Description:Active la validation OCSP de la chaîne de certificats duclient
Syntaxe:SSLOCSPEnable on|leaf|off
Défaut:SSLOCSPEnable off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Le modeleaf est disponible à partir de la version2.4.34 du serveur HTTP Apache

Cette directive permet d'activer la validation OCSP de la chaîne decertificats du client. Si elle est activée, les certificats de la chaînede certificats du client seront validés auprès d'un répondeur OCSP, unefois la vérification normale effectuée (vérification des CRLsincluse). En mode 'leaf', seul le certificat du client sera validé.

Le répondeur OCSP utilisé est soit extrait du certificat lui-même,soit spécifié dans la configuration ; voir les directivesSSLOCSPDefaultResponder etSSLOCSPOverrideResponder.

Exemple

SSLVerifyClient onSSLOCSPEnable onSSLOCSPDefaultResponder "http://responder.example.com:8888/responder"SSLOCSPOverrideResponder on
top

DirectiveSSLOCSPNoverify

Description:Evite la vérification des certificats des répondeurs OCSP
Syntaxe:SSLOCSPNoverify on|off
Défaut:SSLOCSPNoverify off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible à partir de la version 2.4.26 du serveur HTTP Apache,sous réserve d'utiliser une version 0.9.7 ou supérieure d'OpenSSL

Cette directive permet d'éviter la vérification des certificatsdes répondeurs OCSP, ce qui peut s'avérer utile lorsqu'on teste un serveur OCSP.

top

DirectiveSSLOCSPOverrideResponder

Description:Force l'utilisation de l'URI du répondeur par défaut pourla validation OCSP
Syntaxe:SSLOCSPOverrideResponder on|off
Défaut:SSLOCSPOverrideResponder off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Force l'utilisation, au cours d'une validation OCSP de certificat, durépondeur OCSP par défaut spécifié dans la configuration, que lecertificat en cours de vérification fasse mention d'un répondeur OCSP ounon.

top

DirectiveSSLOCSPProxyURL

Description:Adresse de mandataire à utiliser pour les requêtes OCSP
Syntaxe:SSLOCSPProxyURLurl
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible à partir de la version 2.4.19 du serveur HTTP Apache

Cette directive permet de définir l'URL d'un mandataire HTTP qui devra êtreutilisé pour toutes les requêtes vers un répondeur OCSP.

top

DirectiveSSLOCSPResponderCertificateFile

Description:Fournit un jeu de certificats de confiance du répondeur OCSP avecencodage PEM
Syntaxe:SSLOCSPResponderCertificateFilefile
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible à partir de la version 2.4.26 du serveur HTTP Apache,sous réserve d'utiliser une version 0.9.7 ou supérieure d'OpenSSL

Cette directive permet de définir un fichier contenant une liste decertificats de confiance du répondeur OCSP à utiliser au cours de la validationdu certificat du répondeur OCSP. Les certificats fournis peuventêtre considérés comme de confiance sans avoir à effectuer de vérificationssupplémentaires. Ce processus de validation du certificat du répondeur OCSPintervient en général lorsque ce dernier est autosigné ou tout simplement absentde la réponse OCSP.

top

DirectiveSSLOCSPResponderTimeout

Description:Délai d'attente pour les requêtes OCSP
Syntaxe:SSLOCSPResponderTimeoutsecondes
Défaut:SSLOCSPResponderTimeout 10
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette option permet de définir le délai d'attente pour les requêtes àdestination des répondeurs OCSP, lorsque la directiveSSLOCSPEnable est à on.

top

DirectiveSSLOCSPResponseMaxAge

Description:Age maximum autorisé pour les réponses OCSP
Syntaxe:SSLOCSPResponseMaxAgesecondes
Défaut:SSLOCSPResponseMaxAge -1
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette option permet de définir l'âge maximum autorisé (la"fraicheur") des réponses OCSP. La valeur par défault (-1)signifie qu'aucun âge maximum n'est défini ; autrement dit, lesréponses OCSP sont considérées comme valides tant que la valeur de leurchampnextUpdate se situe dans le futur.

top

DirectiveSSLOCSPResponseTimeSkew

Description:Dérive temporelle maximale autorisée pour la validation desréponses OCSP
Syntaxe:SSLOCSPResponseTimeSkewsecondes
Défaut:SSLOCSPResponseTimeSkew 300
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette option permet de définir la dérive temporelle maximaleautorisée pour les réponses OCSP (lors de la vérification des champsthisUpdate etnextUpdate).

top

DirectiveSSLOCSPUseRequestNonce

Description:Use a nonce within OCSP queries
Syntaxe:SSLOCSPUseRequestNonce on|off
Défaut:SSLOCSPUseRequestNonce on
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Available in httpd 2.4.10 and later

La documentation de cette directiven'a pas encore t traduite. Veuillez vous reporter la versionen langue anglaise.

top

DirectiveSSLOpenSSLConfCmd

Description:Configuration des paramètres d'OpenSSL via son APISSL_CONF
Syntaxe:SSLOpenSSLConfCmdcommandevaleur
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible depuis la version 2.4.8 du serveur HTTPApache avec OpenSSL 1.0.2 ou supérieur

Cette directive permet à mod_ssl d'accéder à l'APISSL_CONFd'OpenSSL. Il n'est ainsi plus nécessaire d'implémenter desdirectives supplémentaires pourmod_ssl lorsque de nouvellesfonctionnalités sont ajoutées à OpenSSL, ce qui rend la configuration dece dernier beaucoup plus souple.

Le jeu de commandes disponibles pour la directiveSSLOpenSSLConfCmd dépend de la version d'OpenSSLutilisée pourmod_ssl (la version minimale 1.0.2 est unprérequis). Pour obtenir la liste des commandes supportées, voir lasectionSupported configuration file commands de la page demanuel d'OpenSSLSSL_CONF_cmd(3).

Certaines commandes peuvent remplacer des directives existantes(commeSSLCipherSuite ouSSLProtocol) ; notez cependantque la syntaxe et/ou les valeurs possibles peuvent différer.

Examples

SSLOpenSSLConfCmd Options -SessionTicket,ServerPreferenceSSLOpenSSLConfCmd ECDHParameters brainpoolP256r1SSLOpenSSLConfCmd ServerInfoFile"/usr/local/apache2/conf/server-info.pem"SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"SSLOpenSSLConfCmd SignatureAlgorithms RSA+SHA384:ECDSA+SHA256
top

DirectiveSSLOptions

Description:Configure différentes options d'exécution du moteur SSL
Syntaxe:SSLOptions [+|-]option ...
Contexte:configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées:Options
Statut:Extension
Module:mod_ssl

Cette directive permet de contrôler différentes options d'exécution dumoteur SSL dans un contexte de répertoire. Normalement, si plusieursSSLOptions peuvent s'appliquer à un répertoire, c'est laplus spécifique qui est véritablement prise en compte ; les options nese combinent pas entre elles. Elles se combinent cependant entre ellessi elles sonttoutes précédées par un symbole plus(+) ou moins (-). Toute option précédée d'un+ est ajoutée aux options actuellement en vigueur, et touteoption précédée d'un- est supprimée de ces mêmesoptions.

Lesoptions disponibles sont :

Exemple

SSLOptions +FakeBasicAuth -StrictRequire<Files ~ "\.(cgi|shtml)$">    SSLOptions +StdEnvVars -ExportCertData</Files>
top

DirectiveSSLPassPhraseDialog

Description:Méthode utilisée pour entrer le mot de passe pour les clésprivées chiffrées
Syntaxe:SSLPassPhraseDialogtype
Défaut:SSLPassPhraseDialog builtin
Contexte:configuration globale
Statut:Extension
Module:mod_ssl

Lors de son démarrage, Apache doit lire les différents fichiers decertificats (voir la directiveSSLCertificateFile) et de clés privées(voir la directiveSSLCertificateKeyFile) des serveursvirtuels où SSL est activé. Comme, pour des raisons de sécurité, lesfichiers de clés privées sont en général chiffrés, mod_ssl doitdemander à l'administrateur un mot de passe pour déchiffrer cesfichiers. L'argumenttype permet de choisir la manière dontcette demande peut être formulée parmi les trois suivantes :

Exemple

SSLPassPhraseDialog "exec:/usr/local/apache/sbin/pp-filter"
top

DirectiveSSLProtocol

Description:Indique les versions du protocole SSL/TLSdisponibles
Syntaxe:SSLProtocol [+|-]protocole ...
Défaut:SSLProtocol all -SSLv3 (jusqu'à la version 2.4.16 : all)
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl

Cette directive permet de définir quelles versions du protocole SSL/TLSseront acceptées lors de l'initialisation d'une nouvelle connexion.

Lesprotocoles disponibles sont les suivants (sensibles à lacasse) :

Exemple

SSLProtocol TLSv1

La directiveSSLProtocol et les serveurs virtuelsbasés sur le nom

Avant OpenSSL 1.1.1, et même si l'indication du nom de serveur (Server NameIndication ou SNI) permettait de déterminer le serveur virtuel cible assez tôtau cours de la négociation TLS, il était impossible de changer de version deprotocole TLS à ce point, si bien que leSSLProtocolnégocié se basait toujours sur celui duserveur virtuel de base (lepremier serveur virtuel déclaré avec le coupleIP:port de laconnexion).

A partir de la version 2.4.42, si le serveur HTTP Apache est compilé avec uneversion 1.1.1. ou supérieure d'OpenSSL, et si le client fournit la SNI dans lanégociation TLS, leSSLProtocol de chaque serveur virtuel(basé sur le nom) pourra être pris en compte et le sera.

A des fins de compatibilité avec les versions précédentes, si un serveur virtuelbasé sur le nom n'a aucune directiveSSLProtocol définie,c'est le protocole du serveur virtuel de base qui s'appliquera,àmoins qu'une directiveSSLProtocol ne soitconfigurée au niveau global, auquel cas c'est le protocole défini par cettedirective qui s'appliquera (ce dernier cas relève cependant plus d'uncomportement logique que d'un souci de compatibilité).

top

DirectiveSSLProxyCACertificateFile

Description:Fichier contenant la concaténation des certificats de CAcodés en PEM pour l'authentification des serveurs distants
Syntaxe:SSLProxyCACertificateFilefile-path
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir le fichiertout-en-un où sontstockés les certificats des Autorités de Certification (CA) pour lesserveurs distants auxquels vous avez à faire. On les utiliselors de l'authentification du serveur distant. Un tel fichier contientla simple concaténation des différents fichiers de certificats codés enPEM, classés par ordre de préférence. On peut utiliser cette directive àla place et/ou en complément de la directiveSSLProxyCACertificatePath.

Exemple

SSLProxyCACertificateFile"/usr/local/apache2/conf/ssl.crt/ca-bundle-serveur.distant.crt"
top

DirectiveSSLProxyCACertificatePath

Description:Répertoire des certificats de CA codés en PEM pourl'authentification des serveurs distants
Syntaxe:SSLProxyCACertificatePathchemin-répertoire
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de spécifier le répertoire où sont stockés lescertificats des Autorités de Certification (CAs) pour les serveursdistants auxquels vous avez à faire. On les utilise pour vérifier lecertificat du serveur distant lors de l'authentification de cedernier.

Les fichiers de ce répertoire doivent être codés en PEM et ils sontaccédés via des noms de fichier sous forme de condensés ou hash. Il nesuffit donc pas de placer les fichiers de certificats dans ce répertoire: vous devez aussi créer des liens symboliques nommésvaleur-de-hashage.N, et vous devez toujours vousassurer que ce répertoire contient les liens symboliques appropriés.

Exemple

SSLProxyCACertificatePath "/usr/local/apache2/conf/ssl.crt/"
top

DirectiveSSLProxyCARevocationCheck

Description:Active la vérification des révocations basée sur les CRLspour l'authentification du serveur distant
Syntaxe:SSLProxyCARevocationCheck chain|leaf|none
Défaut:SSLProxyCARevocationCheck none
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Active la vérification des révocations basée sur les Listes derévocations de Certificats (CRL) pour lesserveurs distantsauxquels vous vous connectez. A moins une des directivesSSLProxyCARevocationFile ouSSLProxyCARevocationPath doit être définie.Lorsque cette directive est définie àchain (valeurrecommandée), les vérifications CRL sont effectuées sur tous lescertificats de la chaîne, alors que la valeurleaf limitela vérification au certificat hors chaîne (la feuille).

Lorsque la directive est définie àchain ouleaf, les CRLs doivent être disponibles pour que lavalidation réussisse

Avant la version 2.3.15, les vérifications CRL dans mod_sslréussissaient même si aucune CRL n'était trouvée dans les cheminsdéfinis par les directivesSSLProxyCARevocationFile ouSSLProxyCARevocationPath. Le comportement achangé avec l'introduction de cette directive : lorsque la vérificationest activée, les CRLsdoivent être présentes pour que lavalidation réussisse ; dans le cas contraire, elle échouera avec uneerreur"CRL introuvable".

Exemple

SSLProxyCARevocationCheck chain
top

DirectiveSSLProxyCARevocationFile

Description:Fichier contenant la concaténation des CRLs de CA codés enPEM pour l'authentification des serveurs distants
Syntaxe:SSLProxyCARevocationFilefile-path
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir le fichiertout-en-un où sontrassemblées les Listes de Révocation de Certificats (CRLs) des Autoritésde certification (CAs) pour lesserveurs distants auxquels vousavez à faire. On les utilise pour l'authentification des serveursdistants. Un tel fichier contient la simple concaténation des différentsfichiers de CRLs codés en PEM, classés par ordre de préférence. Cettedirective peut être utilisée à la place et/ou en complément de ladirectiveSSLProxyCARevocationPath.

Exemple

SSLProxyCARevocationFile"/usr/local/apache2/conf/ssl.crl/ca-bundle-serveur.distant.crl"
top

DirectiveSSLProxyCARevocationPath

Description:Répertoire des CRLs de CA codés en PEM pourl'authentification des serveurs distants
Syntaxe:SSLProxyCARevocationPathchemin-répertoire
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir le répertoire où sont stockées lesListes de Révocation de Certificats (CRL) des Autorités de Certification(CAs) pour les serveurs distants auxquels vous avez à faire. On lesutilise pour révoquer les certificats des serveurs distants au cours del'authentification de ces derniers.

Les fichiers de ce répertoire doivent être codés en PEM et ils sontaccédés via des noms de fichier sous forme de condensés ou hash. Il nesuffit donc pas de placer les fichiers de CRL dans ce répertoire: vous devez aussi créer des liens symboliques nommésvaleur-de-hashage.rN, et vous devez toujours vousassurer que ce répertoire contient les liens symboliques appropriés.

Exemple

SSLProxyCARevocationPath "/usr/local/apache2/conf/ssl.crl/"
top

DirectiveSSLProxyCheckPeerCN

Description:Configuration de la vérification du champ CN du certificatdu serveur distant
Syntaxe:SSLProxyCheckPeerCN on|off
Défaut:SSLProxyCheckPeerCN on
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir si le champ CN du certificat du serveurdistant doit être comparé au nom de serveur de l'URL de la requête. S'ils necorrespondent pas, un code d'état 502 (Bad Gateway) est envoyé. A partir de laversion 2.4.5, SSLProxyCheckPeerCN a été remplacé parSSLProxyCheckPeerName.

De la version 2.4.5 à la version 2.4.20, spécifierSSLProxyCheckPeerNameoff était suffisant pour obtenir ce comportement (car la valeur pardéfaut deSSLProxyCheckPeerCN étaiton). Avec cesversions, les deux directives doivent être définies àoff pouréviter toute validation du nom de certificat du serveur distant, et denombreux utilisateurs ont signalé ce comportement comme très perturbant.

A partir de la version 2.4.21, toutes les configurations qui activent au moinsune des deux directivesSSLProxyCheckPeerName ouSSLProxyCheckPeerCN adopteront le nouveau comportement de ladirectiveSSLProxyCheckPeerName, ettoutes les configurations qui désactivent une des deux directivesSSLProxyCheckPeerName ouSSLProxyCheckPeerCNéviteront toute validation du nom de certificat du serveur distant. Seule laconfiguration suivante permettra de retrouver la comparaison de CNtraditionnelle pour les versions 2.4.21 et supérieures :

Exemple

SSLProxyCheckPeerCN onSSLProxyCheckPeerName off
top

DirectiveSSLProxyCheckPeerExpire

Description:Configuration de la vérification de l'expiration ducertificat du serveur distant
Syntaxe:SSLProxyCheckPeerExpire on|off
Défaut:SSLProxyCheckPeerExpire on
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir si l'expiration du certificat duserveur distant doit être vérifiée ou non. Si la vérification échoue, uncode d'état 502 (Bad Gateway) est envoyé.

Exemple

SSLProxyCheckPeerExpire on
top

DirectiveSSLProxyCheckPeerName

Description:Configure la vérification du nom d'hôte dans lescertificats serveur distants
Syntaxe:SSLProxyCheckPeerName on|off
Défaut:SSLProxyCheckPeerName on
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible à partir de la version 2.4.5 du serveur HTTPApache
Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de configurer la vérification du nom d'hôte pourles certificats serveur lorsque mod_ssl agit en tant que client SSL. Lavérification réussit si le nom d'hôte de l'URI de la requête correspond à undes attributs CN du sujet du certificat, ou à l'extension subjectAltName. Si lavérification échoue, la requête SSLavorte, et un code d'erreur 502 (Bad Gateway) est renvoyé.

Les caractères génériques sont supportés dans certains cas bien spécifiques :une entrée subjectAltName de type dNSName ou les attributs CNcommençant par*. correspondront à tout nom d'hôte comportantle même nombre de champs et le même suffixe ; par exemple,*.example.org correspondra àfoo.example.org,mais pas àfoo.bar.example.org car le nombre d'éléments dans lesnom est différent.

Cette fonctionnalité a été introduite avec la version 2.4.5 et l'emporte sur ladirectiveSSLProxyCheckPeerCN qui necomparait que la valeur exacte du premier attribut CN avec le nom d'hôte.Cependant, de nombreux utilisateurs étaient déconcertés par le comportementinduit par l'utilisation de ces deux directives individuellement, si bien que cecomportement a été amélioré avec la version 2.4.21. Voir la description de ladirectiveSSLProxyCheckPeerCN pour lecomportement original et des détails à propos de ces améliorations.

top

DirectiveSSLProxyCipherSuite

Description:Algorithmes de chiffrement disponibles pour la négociationlors de l'initialisation d'une connexion SSL de mandataire
Syntaxe:SSLProxyCipherSuite [protocol]cipher-spec
Défaut:SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive est équivalente à la directiveSSLCipherSuite, mais s'applique à une connexion demandataire. Veuillez vous reporter à la directiveSSLCipherSuite pour plus d'informations.

top

DirectiveSSLProxyEngine

Description:Interrupteur marche/arrêt du moteur de mandataireSSL
Syntaxe:SSLProxyEngine on|off
Défaut:SSLProxyEngine off
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet d'activer/désactiver l'utilisation du moteur deprotocole SSL/TLS pour le mandataire. On l'utilise en général àl'intérieur d'une section<VirtualHost> pour activer le protocole SSL/TLSdans le cadre d'un mandataire pour un serveur virtuel particulier. Pardéfaut, le moteur de protocole SSL/TLS est désactivé pour la fonction demandataire du serveur principal et de tous les serveurs virtuelsconfigurés.

Notez que la directiveSSLProxyEngine ne doitgénéralement pas être utilisée dans le cadre d'un serveur virtuel qui agit entant que mandataire direct (via les directives<Proxy> ouProxyRequests).SSLProxyEngine n'est pas nécessaire pour activer unserveur mandataire direct pour les requêtes SSL/TLS.

Exemple

<VirtualHost _default_:443>    SSLProxyEngine on    #...</VirtualHost>
top

DirectiveSSLProxyMachineCertificateChainFile

Description:Fichier de certificats de CA encodés PEM concaténés permettant aumandataire de choisir un certificat
Syntaxe:SSLProxyMachineCertificateChainFilenom-fichier
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir le fichier global où est enregistréela chaîne de certification pour tous les certificats clients utilisés.Elle est nécessaire si le serveur distant présente une liste decertificats de CA qui ne sont pas les signataires directs d'un descertificats clients configurés.

Ce fichier contient tout simplement la concaténation des différentsfichiers de certificats encodés PEM. Au démarrage, chaque certificatclient configuré est examiné et une chaîne de certification estconstruite.

Avertissement en matière de sécurité

Si cette directive est définie, tous les certificats contenus dans lefichier spécifié seront considérés comme étant de confiance, comme s'ilsétaient aussi désignés dans la directiveSSLProxyCACertificateFile.

Exemple

SSLProxyMachineCertificateChainFile"/usr/local/apache2/conf/ssl.crt/proxyCA.pem"
top

DirectiveSSLProxyMachineCertificateFile

Description:Fichier contenant la concaténation des clés et certificatsclients codés en PEM que le mandataire doit utiliser
Syntaxe:SSLProxyMachineCertificateFilechemin-fichier
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est pris en charge à partir de laversion 2.4.30 du serveur HTTP Apache
L'inclusion de certificats non-feuilles (CA) est prise en charge à partir de laversion 2.4.59.

Cette directive permet de définir le fichier tout-en-un où sont stockésles clés et certificats permettant au serveur mandataire des'authentifier auprès des serveurs distants.

Le fichier spécifié est la simple concaténation des différents fichiers decertificats codés en PEM. Cette directive s'utilise à la place ou en complémentde la directiveSSLProxyMachineCertificatePath. Le fichier spécifiépeut contenir un nombre quelconque de paires certificat client/clé privéeassociée, et chaque paire peut être spécifiée selon l'ordre (certificat, clé) ou(clé, certificat). Des certificats non-feuilles (CA) peuvent aussi être inclusdans le fichier et sont traités comme s'ils avaient été définis à l'aide de ladirectiveSSLProxyMachineCertificateChainFile.

Lorsqu'un serveur distant sollicite le serveur pour obtenir un certificatclient, ce dernier doit fournir une liste denoms d'autorités decertification acceptables au cours de la négociation. Si cette liste n'estpas fournie,mod_ssl utilisera la première paire certificat/cléclient définie. Si par contre cette listeest fournie,mod_ssl va la parcourir afin de trouver un certificat clientdéfini qui a été fourni soit directement par l'autorité de certificationconsidérée, soit indirectement via un nombre quelconque de certificats d'autorités decertification intermédiaires. La chaîne de certificats d'autorités decertification intermédiaires peut être construite à partir de ceux qui sontinclus dans le fichier ou configurésà l'aide de la directiveSSLProxyMachineCertificateChainFile. Le premiercertificat défini correspondant sera alors fourni comme réponse au cours de lanégociation

Si la liste de noms de CAest fournie au serveur distant, et siaucun certificat client correspondant n'est trouvé, aucun certificatclient ne sera fourni parmod_ssl, ce qui fera probablementéchouer la négociation SSL/TLS (en fonction de la configuration du serveurdistant).

Actuellement, les clés privées chiffrées ne sont pas supportées.

Seules les clés au format PKCS1 RSA, DSA ou EC sont supportées. Les clésau format PKCS8, autrement dit celles commençant par "-----BEGINPRIVATE KEY-----", doivent être converties via une commande du style"openssl rsa -in private-pkcs8.pem -outform pem".

Exemple

SSLProxyMachineCertificateFile"/usr/local/apache2/conf/ssl.crt/proxy.pem"
top

DirectiveSSLProxyMachineCertificatePath

Description:Répertoire des clés et certificats clients codés en PEM quele mandataire doit utiliser
Syntaxe:SSLProxyMachineCertificatePathchemin-répertoire
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir le répertoire où sont stockés les cléset certificats clients permettant au serveur mandataire de s'authentifier auprèsdes serveurs distants.

mod_ssl va essayer de charger tous les fichiers contenus dans le répertoirespécifié, comme si ces derniers étaient définis individuellement via ladirectiveSSLProxyMachineCertificateFile.

Actuellement, les clés privées chiffrées ne sont pas supportées.

Seules les clés au format PKCS1 RSA, DSA ou EC sont supportées. Les clésau format PKCS8, autrement dit celles commençant par "-----BEGINPRIVATE KEY-----", doivent être converties via une commande du style"openssl rsa -in private-pkcs8.pem -outform pem".

Exemple

SSLProxyMachineCertificatePath "/usr/local/apache2/conf/proxy.crt/"
top

DirectiveSSLProxyProtocol

Description:Définit les protocoles SSL disponibles pour la fonction demandataire
Syntaxe:SSLProxyProtocol [+|-]protocole ...
Défaut:SSLProxyProtocol all -SSLv3 (jusqu'à la version 2.4.16: all)
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir les protocoles SSL que mod_ssl peututiliser lors de l'élaboration de son environnement de serveur pour lafonction de mandataire. Il ne se connectera qu'aux serveurs utilisant undes protocoles spécifiés.

Veuillez vous reporter à la directiveSSLProtocol pour plus d'informations.

top

DirectiveSSLProxyVerify

Description:Niveau de vérification du certificat du serveurdistant
Syntaxe:SSLProxyVerifyniveau
Défaut:SSLProxyVerify none
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Lorsqu'un mandataire est configuré pour faire suivre les requêtesvers un serveur SSL distant, cette directive permet de configurer lavérification du certificat de ce serveur distant.

Les valeurs deniveaux disponibles sont les suivantes :

En pratique, seuls les niveauxnone etrequire sont vraiment intéressants, car le niveauoptional ne fonctionne pas avec tous les serveurs, etle niveauoptional_no_ca va tout à fait à l'encontre del'idée que l'on peut se faire de l'authentification (mais peut tout demême être utilisé pour établir des pages de test SSL, etc...).

Exemple

SSLProxyVerify require
top

DirectiveSSLProxyVerifyDepth

Description:Niveau de profondeur maximum dans les certificats de CAlors de la vérification du certificat du serveur distant
Syntaxe:SSLProxyVerifyDepthniveau
Défaut:SSLProxyVerifyDepth 1
Contexte:configuration globale, serveur virtuel, section proxy
Statut:Extension
Module:mod_ssl
Compatibilité:Le contexte d'une section proxy est supporté à partir de laversion 2.4.30 du serveur HTTP Apache

Cette directive permet de définir le niveau de profondeur maximumjusqu'auquel mod_ssl doit aller au cours de sa vérification avant dedécider que le serveur distant ne possède pas de certificat valide.

La profondeur correspond en fait au nombre maximum de fournisseurs decertificats intermédiaires, c'est à dire le nombre maximum decertificatsde CA que l'on peut consulter lors de la vérification du certificat duserveur distant. Une profondeur de 0 signifie que seuls les certificatsde serveurs distants auto-signés sont acceptés, et la profondeur pardéfaut de 1 que le certificat du serveur distant peut être soitauto-signé, soit signé par une CA connue directement du serveur (end'autres termes, le certificat de CA est référencé par la directiveSSLProxyCACertificatePath),etc...

Exemple

SSLProxyVerifyDepth 10
top

DirectiveSSLRandomSeed

Description:Source de déclenchement du Générateur de NombresPseudo-Aléatoires (PRNG)
Syntaxe:SSLRandomSeedcontextesource[nombre]
Contexte:configuration globale
Statut:Extension
Module:mod_ssl

Cette directive permet de définir une ou plusieurs sources dedéclenchement du Générateur de Nombres Pseudo-Aléatoires (PRNG) dansOpenSSL au démarrage du serveur (sicontexte a pour valeurstartup) et/ou juste avant l'établissement d'une nouvelleconnexion SSL (sicontexte a pour valeurconnect).Cette directive ne peut être utilisée qu'au niveau du serveur global carle PRNG est un service global.

Les différentes valeurs desource disponibles sont :

Exemple

SSLRandomSeed startup builtinSSLRandomSeed startup "file:/dev/random"SSLRandomSeed startup "file:/dev/urandom" 1024SSLRandomSeed startup "exec:/usr/local/bin/truerand" 16SSLRandomSeed connect builtinSSLRandomSeed connect "file:/dev/random"SSLRandomSeed connect "file:/dev/urandom" 1024
top

DirectiveSSLRenegBufferSize

Description:Définit la taille du tampon de renégociationSSL
Syntaxe:SSLRenegBufferSizetaille
Défaut:SSLRenegBufferSize 131072
Contexte:répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_ssl

Si une renégociation SSL est requise dans un contexte de répertoire,par exemple avec l'utilisation deSSLVerifyClient dans un bloc Directory ouLocation, mod_ssl doit mettre en tampon en mémoire tout corps de requêteHTTP en attendant qu'une nouvelle initialisation de connexion SSL puisseêtre effectuée. Cette directive permet de définir la quantité de mémoireà allouer pour ce tampon.

Notez que dans de nombreuses configurations, le client qui envoie uncorps de requête n'est pas forcément digne de confiance, et l'on doitpar conséquent prendre en considération la possibilité d'une attaque detype déni de service lorsqu'on modifie la valeur de cette directive.

Exemple

SSLRenegBufferSize 262144
top

DirectiveSSLRequire

Description:N'autorise l'accès que lorsqu'une expression booléennecomplexe et arbitraire est vraie
Syntaxe:SSLRequireexpression
Contexte:répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_ssl

SSLRequire est obsolète

SSLRequire est obsolète et doit en général êtreremplacée par l'expressionRequire. La syntaxeap_expr de l'expressionRequire estune extension de la syntaxe deSSLRequire, avec lesdifférences suivantes :

AvecSSLRequire, les opérateurs de comparaison<,<=, ... sont strictement équivalentsaux opérateurslt,le, ... , et fonctionnentselon une méthode qui compare tout d'abord la longueur des deux chaînes,puis l'ordre alphabétique. Les expressionsap_expr, quant à elles, possèdent deux jeuxd'opérateurs de comparaison : les opérateurs<,<=, ... effectuent une comparaison alphabétique dechaînes, alors que les opérateurs-lt,-le,... effectuent une comparaison d'entiers. Ces derniers possèdent aussides alias sans tiret initial :lt,le, ...

Cette directive permet de spécifier une condition générale d'accèsqui doit être entièrement satisfaite pour que l'accès soit autorisé.C'est une directive très puissante, car la condition d'accès spécifiéeest une expression booléenne complexe et arbitraire contenant un nombrequelconque de vérifications quant aux autorisations d'accès.

L'expression doit respecter la syntaxe suivante (fournie icisous la forme d'une notation dans le style de la grammaire BNF) :

expr     ::= "true" | "false"           | "!" expr           | expr "&&" expr           | expr "||" expr           | "(" expr ")"           | compcomp     ::= word "==" word | word "eq" word           | word "!=" word | word "ne" word           | word "<"  word | word "lt" word           | word "<=" word | word "le" word           | word ">"  word | word "gt" word           | word ">=" word | word "ge" word           | word "in" "{" wordlist "}"           | word "in" "PeerExtList(" word ")"           | word "=~" regex           | word "!~" regexwordlist ::= word           | wordlist "," wordword     ::= digit           | cstring           | variable           | functiondigit    ::= [0-9]+cstring  ::= "..."variable ::= "%{" varname "}"function ::= funcname "(" funcargs ")"

Pourvarname, toute variable décrite dansVariables d'environnement pourra être utilisée.Pourfuncname, vous trouverez la liste des fonctionsdisponibles dans ladocumentationap_expr.

expression est interprétée et traduitesous une forme machine interne lors du chargement de la configuration,puis évaluée lors du traitement de la requête. Dans le contexte desfichiers .htaccess,expression est interprétée et exécutéechaque fois que le fichier .htaccess intervient lors du traitement de larequête.

Exemple

SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)-/                   \            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd."          \            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}    \            and %{TIME_WDAY} -ge 1 and %{TIME_WDAY} -le 5          \            and %{TIME_HOUR} -ge 8 and %{TIME_HOUR} -le 20       ) \           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/

La fonctionPeerExtList(identifiant objet)recherche une instance d'extension de certificat X.509 identifiée paridentifiant objet (OID) dans le certificat client. L'expression estévaluée à true si la partie gauche de la chaîne correspond exactement àla valeur d'une extension identifiée par cet OID (Si plusieursextensions possèdent le même OID, l'une d'entre elles au moins doitcorrespondre).

Exemple

SSLRequire "foobar" in PeerExtList("1.2.3.4.5.6")

Notes à propos de la fonction PeerExtList

  • L'identifiant objet peut être spécifié soit comme un nomdescriptif reconnu par la bibliothèque SSL, tel que"nsComment", soit comme un OID numérique tel que"1.2.3.4.5.6".

  • Les expressions contenant des types connus de la bibliothèqueSSL sont transformées en chaînes avant comparaison. Pour les extensionscontenant un type non connu de la bibliothèque SSL, mod_ssl va essayerd'interpréter la valeur s'il s'agit d'un des types ASN.1 primaires UTF8String,IA5String, VisibleString, ou BMPString. Si l'extension correspond à unde ces types, la chaîne sera convertie en UTF-8 si nécessaire, puiscomparée avec la partie gauche de l'expression.

Voir aussi

top

DirectiveSSLRequireSSL

Description:Interdit l'accès lorsque la requête HTTP n'utilise pasSSL
Syntaxe:SSLRequireSSL
Contexte:répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_ssl

Cette directive interdit l'accès si HTTP sur SSL (c'est à dire HTTPS)n'est pas activé pour la connexion courante. Ceci est très pratique dansun serveur virtuel où SSL est activé ou dans un répertoire pour seprotéger des erreurs de configuration qui pourraient donner accès à desressources protégées. Lorsque cette directive est présente, toutes lesrequêtes qui n'utilisent pas SSL sont rejetées.

Exemple

SSLRequireSSL
top

DirectiveSSLSessionCache

Description:Type du cache de session SSL global etinter-processus
Syntaxe:SSLSessionCachetype
Défaut:SSLSessionCache none
Contexte:configuration globale
Statut:Extension
Module:mod_ssl

Cette directive permet de configurer le type de stockage du cache desession SSL global et inter-processus. Ce cache est une fonctionnalitéoptionnelle qui accélère le traitement parallèle des requêtes. Pour cequi est des requêtes vers un même processus du serveur (via HTTPkeep-alive), OpenSSL met en cache les informations de session SSL eninterne. Mais comme les clients modernes demandent des images en ligneet d'autres données via des requêtes parallèles (un nombre de quatrerequêtes parallèles est courant), ces requêtes vont être servies parplusieurs processus du serveur pré-déclenchés. Ici, un cacheinter-processus permet d'éviter des négociations de sessioninutiles.

Les quatretypes de stockage suivants sont actuellementsupportés :

Exemples

SSLSessionCache "dbm:/usr/local/apache/logs/ssl_gcache_data"SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_gcache_data(512000)"

Le mutexssl-cache permet de sérialiser l'accès au cachede session afin d'éviter toute corruption. Ce mutex peut être configurévia la directiveMutex.

top

DirectiveSSLSessionCacheTimeout

Description:Nombre de secondes avant l'expiration d'une session SSLdans le cache de sessions
Syntaxe:SSLSessionCacheTimeoutsecondes
Défaut:SSLSessionCacheTimeout 300
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:S'applique aussi à la reprise de session TLS (RFC 5077) àpartir de la version 2.4.10 du serveur HTTP Apache

Cette directive permet de définir la durée de vie en secondes desinformations stockées dans le cache de sessions SSL global etinter-processus, dans le cache OpenSSL interne en mémoire et pourles sessions réinitialisées par la reprise de session TLS (RFC 5077). elle peutêtre définie à une valeur d'environ 15 à des fins de test, mais à unevaleur très supérieure comme 300 en production.

Exemple

SSLSessionCacheTimeout 600
top

DirectiveSSLSessionTicketKeyFile

Description:Clé de chiffrement/déchiffrement permanente pour lestickets de session TLS
Syntaxe:SSLSessionTicketKeyFilefile-path
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible depuis la version 2.4.0 du serveur HTTPApache, sous réserve que l'on utilise une version 0.9.8h ou supérieured'OpenSSL

Cette directive permet de définir une clé secrète pour le chiffrementet le déchiffrement des tickets de session TLS selon les préconisationsde laRFC 5077. Elle aété conçue à l'origine pour les environnements de clusters où lesdonnées des sessions TLS doivent être partagées entre plusieurs noeuds.Pour les configurations ne comportant qu'une seule instance de httpd, ilest préférable d'utiliser les clés (aléatoires) générées par mod_ssl audémarrage du serveur.

Le fichier doit contenir 48 octets de données aléatoires créées depréférence par une source à haute entropie. Sur un système de type UNIX,il est possible de créer le fichier contenant la clé de la manièresuivante :

dd if=/dev/random of=/chemin/vers/fichier.tkey bs=1 count=48

Ces clés doivent être renouvelées fréquemment, car il s'agit du seulmoyen d'invalider un ticket de session existant - OpenSSL ne permet pasactuellement de spécifier une limite à la durée devie des tickets. Une nouvelle clé ne peut être utilisée qu'après avoirredémarré le serveur. Tous les tickets de session existants deviennentinvalides après le redémarrage du serveur.

Ce fichier contient des données sensibles et doit donc être protégépar des permissions similaires à celles du fichier spécifié par ladirectiveSSLCertificateKeyFile.

top

DirectiveSSLSessionTickets

Description:Active ou désactive les tickets de session TLS
Syntaxe:SSLSessionTickets on|off
Défaut:SSLSessionTickets on
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible à partir de la version 2.4.11 du serveur HTTPApache, sous réserve d'utiliser OpenSSL version 0.9.8f ou supérieure.

Cette directive permet d'activer ou de désactiver l'utilisation destickets de session TLS (RFC 5077).

Les tickets de session TLS sont activés par défaut. Les utiliser sansredémarrer le serveur selon une périodicité appropriée (par exemplequotidiennement) compromet cependant le niveau de confidentialité.

top

DirectiveSSLSRPUnknownUserSeed

Description:Source d'aléa pour utilisateur SRP inconnu
Syntaxe:SSLSRPUnknownUserSeedsecret-string
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible depuis la version 2.4.4 du serveur HTTPApache, si la version 1.0.1 ou supérieure d'OpenSSL est utilisée.

Cette directive permet de définir la source d'aléa à utiliserpour les utilisateurs SRP inconnus, ceci afin de combler les manques encas d'existence d'un tel utilisateur. Elle définit une chaîne secrète. Sicette directive n'est pas définie, Apache renverra une alerteUNKNOWN_PSK_IDENTITY aux clients qui fournissent un nom d'utilisateurinconnu.

Exemple

SSLSRPUnknownUserSeed "secret"

top

DirectiveSSLSRPVerifierFile

Description:Chemin du fichier de vérification SRP
Syntaxe:SSLSRPVerifierFilefile-path
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible depuis la version 2.4.4 du serveur HTTPApache, si la version 1.0.1 ou supérieure d'OpenSSL est utilisée.

Cette directive permet d'activer TLS-SRP et de définir le chemin dufichier de vérification OpenSSL SRP (Mot de passe distant sécurisé)contenant les noms d'utilisateurs TLS-SRP, les vérificateurs, les"grains de sel" (salts), ainsi que les paramètres de groupe.

Exemple

SSLSRPVerifierFile "/path/to/file.srpv"

Le fichier de vérification peut être créé via l'utilitaire en ligne decommandeopenssl :

Création du fichier de vérification SRP

openssl srp -srpvfile passwd.srpv -userinfo "some info" -add username

La valeur affectée au paramètre optionnel-userinfo estenregistrée dans la variable d'environnementSSL_SRP_USERINFO.

top

DirectiveSSLStaplingCache

Description:Configuration du cache pour l'agrafage OCSP
Syntaxe:SSLStaplingCachetype
Contexte:configuration globale
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

SiSSLUseStapling est à "on",cette directive permet de configurer le cache destiné à stocker lesréponses OCSP incluses dans la négociation TLS. La configuration d'uncache est obligatoire pour pouvoir utiliser l'agrafage OCSP. Al'exception denone etnonenotnull, cettedirective supporte les mêmes types de stockage que la directiveSSLSessionCache.

top

DirectiveSSLStaplingErrorCacheTimeout

Description:Durée de vie des réponses invalides dans le cache pouragrafage OCSP
Syntaxe:SSLStaplingErrorCacheTimeoutsecondes
Défaut:SSLStaplingErrorCacheTimeout 600
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Cette directive permet de définir la durée de vie des réponsesinvalides dans le cache pour agrafage OCSP configuré via ladirectiveSSLStaplingCache. Pourdéfinir la durée de vie des réponses valides, voir la directiveSSLStaplingStandardCacheTimeout.

top

DirectiveSSLStaplingFakeTryLater

Description:Génère une réponse "tryLater" pour les requêtes OCSP échouées
Syntaxe:SSLStaplingFakeTryLater on|off
Défaut:SSLStaplingFakeTryLater on
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Lorsque cette directive est activée, et si une requête vers unserveur OCSP à des fins d'inclusion dans une négociation TLS échoue,mod_ssl va générer une réponse "tryLater" pour le client (SSLStaplingReturnResponderErrors doit êtreactivée).

top

DirectiveSSLStaplingForceURL

Description:Remplace l'URI du serveur OCSP spécifié dans l'extensionAIA du certificat
Syntaxe:SSLStaplingForceURLuri
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Cette directive permet de remplacer l'URI du serveur OCSP extraite del'extension authorityInfoAccess (AIA) du certificat. Elle peut s'avérerutile lorsqu'on passe par un mandataire

top

DirectiveSSLStaplingResponderTimeout

Description:Temps d'attente maximum pour les requêtes vers les serveursOCSP
Syntaxe:SSLStaplingResponderTimeoutsecondes
Défaut:SSLStaplingResponderTimeout 10
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Cette directive permet de définir le temps d'attente maximum lorsquemod_ssl envoie une requête vers un serveur OCSP afin d'obtenir uneréponse destinée à être incluse dans les négociations TLS avec lesclients (SSLUseStapling doitavoir été activée au préalable).

top

DirectiveSSLStaplingResponseMaxAge

Description:Age maximum autorisé des réponses OCSP incluses dans lanégociation TLS
Syntaxe:SSLStaplingResponseMaxAgesecondes
Défaut:SSLStaplingResponseMaxAge -1
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Cette directive permet de définir l'âge maximum autorisé("fraîcheur") des réponses OCSP incluses dans la négociation TLS(SSLUseStapling doitavoir été activée au préalable). La valeur par défaut (-1)ne définit aucun âge maximum, ce qui signifie que les réponses OCSP sontconsidérées comme valides à partir du moment où le contenu de leur champnextUpdate se trouve dans le futur.

top

DirectiveSSLStaplingResponseTimeSkew

Description:Durée de vie maximale autorisée des réponses OCSP incluses dans lanégociation TLS
Syntaxe:SSLStaplingResponseTimeSkewsecondes
Défaut:SSLStaplingResponseTimeSkew 300
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Cette directive permet de spécifier l'intervalle de temps maximum quemod_ssl va calculer en faisant la différence entre les contenus deschampsnextUpdate etthisUpdate des réponsesOCSP incluses dans la négociation TLS. Pour pouvoir utiliser cettedirective,SSLUseStapling doitêtre à "on".

top

DirectiveSSLStaplingReturnResponderErrors

Description:Transmet au client les erreurs survenues lors des requêtesOCSP
Syntaxe:SSLStaplingReturnResponderErrors on|off
Défaut:SSLStaplingReturnResponderErrors on
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Lorsque cette directive est activée, mod_ssl va transmettre au client lesréponses concernant les requêtes OCSPéchouées (comme les réponses avec un statut général autre que"successful", les réponses avec un statut de certificat autre que"good", les réponses arrivées à expiration, etc...). Lorsqu'elle est àoff, seules les réponses avec unstatut de certificat égal à "good" seront incluses dans la négociationTLS.

top

DirectiveSSLStaplingStandardCacheTimeout

Description:Durée de vie des réponses OCSP dans le cache
Syntaxe:SSLStaplingStandardCacheTimeoutsecondes
Défaut:SSLStaplingStandardCacheTimeout 3600
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Cette directive permet de définir la durée de vie des réponses OCSPdans le cache configuré via la directiveSSLStaplingCache. Elle ne s'applique qu'auxréponsevalides, alors que la directiveSSLStaplingErrorCacheTimeout s'applique auxréponses invalides ou non disponibles.

top

DirectiveSSLStrictSNIVHostCheck

Description:Contrôle de l'accès des clients non-SNI à un serveur virtuel àbase de nom.
Syntaxe:SSLStrictSNIVHostCheck on|off
Défaut:SSLStrictSNIVHostCheck off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible depuis la version 2.2.12 d'Apache

Cette directive permet de contrôler l'accès des clients non-SNI à un serveurvirtuel à base de nom. Si elle est définie àon dans leserveur virtuel à base de nom par défaut, lesclients non-SNI ne seront autorisés à accéder à aucun serveur virtuelappartenant à cette combinaison IP/port. Parcontre, si elle est définie àon dans un serveur virtuelquelconque, les clients non-SNI ne se verront interdire l'accès qu'à ceserveur.

Cette option n'est disponible que si httpd a été compilé avec uneversion d'OpenSSL supportant SNI.

Exemple

SSLStrictSNIVHostCheck on
top

DirectiveSSLUserName

Description:Nom de la variable servant à déterminer le nom del'utilisateur
Syntaxe:SSLUserNamenom-var
Contexte:configuration globale, répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_ssl

Cette variable permet de définir le champ "user" de l'objet de larequête Apache. Ce champ est utilisé par des modules de plus bas niveaupour identifier l'utilisateur avec une chaîne de caractères. Enparticulier, l'utilisation de cette directive peut provoquer ladéfinition de la variable d'environnementREMOTE_USER.La valeur de l'argumentnom-var peut correspondre à toutevariable d'environnement SSL.

Notez que cette directive est sans effet si l'optionFakeBasicAuth est utilisée (voirSSLOptions).

Exemple

SSLUserName SSL_CLIENT_S_DN_CN
top

DirectiveSSLUseStapling

Description:Active l'ajout des réponses OCSP à la négociation TLS
Syntaxe:SSLUseStapling on|off
Défaut:SSLUseStapling off
Contexte:configuration globale, serveur virtuel
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible si on utilise OpenSSL version 0.9.8h ou supérieure

Cette directive permet d'activer l'"Agrafage OCSP" (OCSP stapling)selon la définition de l'extension TLS "Certificate Status Request"fournie dans la RFC 6066. Si elle est activée et si le client ledemande, mod_ssl va inclure une réponse OCSP à propos de son proprecertificat dans la négociation TLS. Pour pouvoir activer l'AgrafageOCSP, il est nécessaire de configurer unSSLStaplingCache.

L'agrafage OCSP dispense le client de requérir le serveur OCSPdirectement ; il faut cependant noter que selon les spécifications de laRFC 6066, la réponseCertificateStatus du serveur ne peutinclure une réponse OCSP que pour un seul certificat. Pour lescertificats de serveur comportant des certificats de CA intermédiairesdans leur chaîne (c'est un cas typique de nos jours), l'implémentationactuelle de l'agrafage OCSP n'atteint que partiellement l'objectif d'"économie en questions/réponse et en ressources". Pour plus de détails,voir laRFC 6961 (TLSMultiple Certificate Status Extension).

Lorsque l'agrafage OCSP est activé, le mutexssl-stapling contrôle l'accès au cache de l'agrafage OCSPafin de prévenir toute corruption, et le mutexsss-stapling-refresh contrôle le raffraîchissement desréponses OCSP. Ces mutex peuvent être configurés via la directiveMutex.

top

DirectiveSSLVerifyClient

Description:Niveau de vérification du certificat client
Syntaxe:SSLVerifyClientniveau
Défaut:SSLVerifyClient none
Contexte:configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_ssl

Cette directive permet de définir le niveau de vérification ducertificat pour l'authentification du client. Notez que cette directivepeut être utilisée à la fois dans les contextes du serveur principal etdu répertoire. Dans le contexte du serveur principal, elle s'applique auprocessus d'authentification du client utilisé au cours de lanégociation SSL standard lors de l'établissement d'une connexion. Dansun contexte de répertoire, elle force une renégociation SSL avec leniveau de vérification du client spécifié, après la lecture d'unerequête HTTP, mais avant l'envoi de la réponse HTTP.

Les valeurs deniveau disponibles sont les suivantes :

Exemple

SSLVerifyClient require
top

DirectiveSSLVerifyDepth

Description:Profondeur maximale des certificats de CA pour lavérification des certificats clients
Syntaxe:SSLVerifyDepthnombre
Défaut:SSLVerifyDepth 1
Contexte:configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_ssl

Cette directive permet de spécifier la profondeur maximale à laquellemod_ssl va effectuer sa vérification avant de décider que le client nepossède pas de certificat valide. Notez que cette directive peut êtreutilisée à la fois dans les contextes du serveur principal et derépertoire. Dans le contexte du serveur principal, elle s'applique auprocessus d'authentification du client utilisé au cours de lanégociation SSL standard lors de l'établissement d'une connexion. Dansun contexte de répertoire, elle force une renégociation SSL avec leclient selon la nouvelle profondeur spécifiée, après la lecture d'unerequête HTTP, mais avant l'envoi de la réponse HTTP.

La profondeur correspond au nombre maximum de fournisseurs decertificats intermédiaires, c'est à dire le nombre maximum decertificats de CA que l'on est autorisé à suivre lors de la vérificationdu certificat du client. Une profondeur de 0 signifie que seuls lescertificats clients auto-signés sont acceptés ; la profondeur par défautde 1 signifie que le certificat client peut être soit auto-signé, soitsigné par une CA connue directement du serveur (c'est à dire que lecertificat de la CA doit être référencé par la directiveSSLCACertificatePath), etc...

Exemple

SSLVerifyDepth 10
top

DirectiveSSLVHostSNIPolicy

Description:Définir la politique de compatibilité pour l’accès des clients SNIaux serveurs virtuels.
Syntaxe:SSLVHostSNIPolicy strict|secure|authonly|insecure
Défaut:SSLVHostSNIPolicy secure
Contexte:configuration globale
Statut:Extension
Module:mod_ssl
Compatibilité:Disponible à partir de la version 2.4.66 du serveur HTTP Apache

Cette directive permet de définir la politique à appliquer lors de lavérification de la compatibilité du<serveur virtuel> identifié par l’en-têteHost d’une requête HTTP avec le<serveur virtuel> identifié depuis l’extension SNIenvoyée au cours de la négociation de la connexion TLS initiale. Si une requêteHTTP est associée à un serveur virtuel comportant une configuration SSL/TLSincompatible selon la politique utilisée, un message d’erreur HTTP avec coded’état 421 ("Misdirected Request") sera envoyé.

La politique s’applique aussi aux connexions TLS pour lesquelles uneextension SNI n’est pas envoyée lors de la négociation de connexion, etutilisant la première définition de serveur virtuel ou la définition par défaut.Si l’en-tête Host d’une requête HTTP sur une telle connexion identifie unserveur virtuel autre que celui par défaut, la politique de compatibilité seratestée.

La politiquestrict bloque toute requête HTTP associée à unserveur virtuel différent de celui identifié par SNI. La politiqueinsecure autorise toute requête, quel que soit le serveur virtuelassocié ; une telle configuration pourra être vulnérable àCVE-2025-23048.

Les politiquessecure (politique par défaut) etauthonly comparent certains aspects spécifiques des deux serveursvirtuels, qui sont regroupés en deux catégories :

Le tableau suivant indique quand une requête HTTP sera bloquée ou autoriséelorsque les configurations des serveurs virtuels diffèrent de la manièredécrite, et en fonction des différentes politiques utilisées :

Politique utiliséeToute incohérence dans les serveurs virtuelsCertificat/clé du serveur,
ou restrictions de protocole/algorithme de chiffrement
Certification client/
configuration de l’authentification
strictbloquéebloquéebloquée
secureautoriséebloquéebloquée
authonlyautoriséebloquéeautorisée
insecureautoriséeautoriséeautorisée

Exemple

SSLVHostSNIPolicy authonly

Langues Disponibles: en  | fr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to ourmailing lists.

Copyright 2025 The Apache Software Foundation.
Autorisé sousApache License, Version 2.0.

Modules |Directives |FAQ |Glossaire |Plan du site


[8]ページ先頭

©2009-2025 Movatter.jp