Ce module permet de gérer les propriétés courantes des domaines pour un ou plusieurs serveurs virtuels. Il fournit deux fonctionnalités principales : la première permet la supervision et le renouvellement des certificats https: via le protocole ACME (RFC 8555). Le module effectue le renouvellement des certificats avant leur expiration afin d'éviter une interruption des services internet. Il est possible de monitorer l'état de tous les certificats gérés par mod_md et de configurer le serveur de façon à ce qu'il envoie des notifications de renouvellement, d'expiration ou d'erreur personnalisées.
La seconde fonctionnalité principale fournit une implémentation alternative de l'agrafage OCSP, et ceci aussi bien pour les certificats gérés par mod_md que pour les certificats que vous gérez vous-même. Composant nécessaire pour tout site https, l'agrafage OCSP influence la vitesse de chargement des pages et suivant la configuration, la disponibilité de ces dernières. Vous trouverez plus de détails dans la section agrafage ci-dessous.
L'autorité ACME par défaut pour la gestion des certificats est Let's Encrypt, mais il est possible de configurer une autre CA si cette dernière supporte le protocole.
Exemple de configuration simple :
Au démarrage, un serveur ainsi configuré contactera Let's Encrypt pour demander un
certificat pour le domaine considéré. Si Let's Encrypt peut vérifier
le propriétaire du domaine, le module obtiendra le certificat et sa
chaîne de certification, le stockera dans son système de fichiers
(voir la directive
Ce processus se déroule pendant l'exécution du serveur. Tous les autres serveurs virtuels continueront à fonctionner normalement, mais tant que le certificat ne sera pas disponible, toute requête pour le domaine considéré génèrera une réponse du type '503 Service Unavailable'.
Pour pouvoir être utilisé, ce module nécessite le chargement
préalable du module
Pour que Let's Encrypt puisse signer et renouveler votre certificat, votre serveur doit être accessible depuis l'internet public sur le port 80 (http:) et/ou 443 (https:), à moins que votre serveur soit configuré pour utiliser les vérifications DNS - pour plus de détails, voir "certificats génériques".
Le module choisit une des méthodes proposées par Let's Encrypt. En général, LE propose des méthodes de vérification sur les ports ou le DNS et Apache choisit une des méthodes disponibles.
Pour déterminer quelles méthodes sont disponibles, le module
consulte les ports sur lesquels écoute Apache httpd. Si le port 80 en
fait partie, le module supposera que la vérification http: nommée
http-01 est disponible. Si le port 443 en fait aussi partie, la
vérification https: nommée tls-alpn-01 sera ajoutée à la liste des
méthodes disponibles. Enfin, si la directive
Si votre configuration est plus complexe, deux méthodes permettent
d'orienter ce choix. En premier lieu, voyez du côté de la directive
Pour la vérification de domaine via le protocole TLS, le nom de la
méthode correspondante est "tls-alpn-01". Le serveur Apache doit
alors être en écoute sur le port 443 (voir la directive
Let's Encrypt ouvrira alors une connexion TLS avec Apache en utilisant l'indicateur spécial "acme-tls/1" (cette portion indication de TLS se nomme ALPN, d'où le nom de la méthode de vérification. ALPN est aussi utilisé par les navigateurs pour ouvrir une connexion HTTP/2.
Si vous ne souhaitez cependant qu'aucun de vos sites ne soit
accessible sur le port 80, vous pouvez laiser ce dernier ouvert et
rediriger toutes les requêtes vers vos sites en https:. Pour
ce faire, utilisez la directive
La méthode de vérification "tls-alpn-01" sera alors disponible.
Les certificats génériques sont supportés à partir de la version 2.x de mod_md, mais leur obtention n'est pas triviale. Let's Encrypt impose pour ces derniers la vérification "dns-01". Aucune autre n'est considérée comme suffisamment efficace.
Apache ne peut cependant pas implémenter cette vérification de lui-même . Comme son nom l'indique, "dns-01" vous demande de présenter certains enregistrement DNS spécifiques à votre domaine qui doivent contenir certaines données de vérification. Vous devez donc être en mesure d'éditer et modifier les enregistrements DNS de votre domaine.
Si c'est le cas, vous pouvez procéder via mod_md. Supposons que vous disposiez pour cela du script /usr/bin/acme-setup-dns ; vous configurez alors Apache comme suit :
Apache fera alors appel à ce script lorsqu'il aura besoin de définir ou détruire un enregistrement DNS de vérification pour le domaine considéré.
Supposons ainsi que vous souhaitiez obtenir un certificat pour *.mydomain.com ; mod_md va appeler :
il appellera ensuite :
Apache possède un module de monitoring standard :
Vous pouvez alors visualiser tous vos domaines gérés par ordre alphabétique, les noms de domaine qu'ils contiennent, un état global, les date d'expiration ainsi que des paramètres spécifiques. Ces derniers comprennent la périodicité de renouvellement que vous avez sélectionnée (ou la valeur par défaut), la CA (autorité de certification) utilisée, etc...
La colonne "Renewal" montre des rapports d'activité ou d'erreur à propos des renouvellements de certificats, ce qui devrait faciliter la vie des utilisateurs qui souhaitent savoir si tout fonctionne correctement ou si des problèmes se produisent.
Si un des domaines gérés provoque une erreur, elle apparaîtra aussi ici, ce qui vous permettra de visualiser les éventuels problèmes sans devoir vous plonger dans les journaux du serveur.
Il existe aussi un nouveau gestionnaire, "md-status", qui peut vous fournir les informations à propos des domaines gérés à partir de "server-status" et au format JSON. Vous pouvez le configurer comme suit sur votre serveur :
Comme pour "server-status", vous devez ajouter les autorisations nécessaires.
Si vous ne souhaitez recevoir l'état JSON que pour un domaine spécifique, ajoutez le simplement à votre URL d'état :
Cet état JSON montre aussi un journal des renouvellements de certificats :
Vous trouverez aussi ces informations dans le fichier "job.json" dans votre répertoire de test et, s'il est activé, dans le répertoire des domaines. Vous pourrez ainsi les consulter à tout moment.
Enfin, la directive
Si vous voulez commencer par tester l'agrafage pour un seul domaine géré, utilisez cette configuration :
et utilisez 'server-status' et/ou MDMessageCmd pour voir comment tout cela fonctionne. Vous pourrez alors vérifier si l'information d'agrafage est présente, sa durée de validité, son origine et à quel moment elle sera rafraîchie.
Si tout fonctionne comme vous le souhaitez, vous pouvez définir cette configuration pour tous les certificats ou seulement vos certificats gérés.
De nombreux sites utilisent l'implémentation d'agrafage existante de mod_ssl depuis des années. Les implémentations par mod-ssl et mod_md présentent deux différences principales :
Si par malchance vous redémarrez votre serveur alors que le service OCSP de votre CA est en panne, les utilisateurs ne pourront plus atteindre vos sites. Sans persistance des informations, votre serveur n'est plus en mesure de fournir au client les données nécessaires, et le navigateur client ne peut pas les obtenir lui-même car le service OCSP ne répond pas.
Avec l'implémentation de mod_md, l'information d'agrafage est stockée de manière persistante, et elle peut donc être réchargée au démarrage du serveur et être ainsi disponible pour les connexions entrantes. Un jour ou deux avant expiration des informations, mod_md va les renouveler, ce qui permet de faire face à un temps d'indisponibilité du service OCSP assez long.
Pour conserver une compatibilité ascendante, l'implémentation de mod_ssl n'a pas pu être modifiée en profondeur. Par exemple, mod_ssl est incapable d'ajouter une dépendance à mod_watchdog sans rendre inutilisables de nombreuses configurations existantes qui ne chargent pas ce module.
Tous les domaines de la liste seront gérés par
mod_md comme un seul domaine géré (Managed Domain - MD).
mod_md ne demandera qu'un seul certificat qui
sera valide pour tous ces noms de domaine. Cette directive
s'utilise au niveau de la configuration globale (voir plus loin
les autres directives MD). Si un domaine nécessite une
configuration particulière, utilisez la directive
Deux définitions supplémentaires sont nécessaires pour un domaine
géré :
La seconde définition,
En plus de la liste des domaines gérés, cette directive accepte un paramètre supplémentaire qui peut prendre pour valeur 'manual' ou 'auto'. Ce paramètre permet de définir si un domaine sera géré sous le nom spécifié dans la liste seul ('manual'), ou si tous les noms du serveur virtuel correspondant seront gérés ('auto'). C'est d'ailleurs cette dernière valeur qui est la valeur par défaut.
Dans cet exemple, le domaine 'www.example.org' est automatiquement ajouté à la liste MD 'example.org'. De manière similaire, le domaine 'www.example2.org' sera automatiquement ajouté à la liste MD 'example2.org' pour laquelle 'auto' est explicitement spécifié. Chaque fois que vous ajouterez des noms à ces serveurs virtuels via ServerAlias, ils seront ajoutés à la liste MD correspondante.
Si vous préférez déclarer explicitement tous les noms de domaines, utilisez le mode 'manual'. Une erreur sera enregistrée dans le journal si les noms ne correspondent pas à ceux attendus.
Cette directive est équivalente à la directive
Cette directive permet de configurer un domaine géré en spécifiant un autre CA, ou d'autres paramètres de renouvellement des certificats, etc...
Cette configuration est souvent utilisée pour définir des paramètres https: spécifiques à votre domaine.
Lorsque vous utilisez mod_md pour obtenir un certificat, vous devenez un client de l'autorité de certification (par exemple Let's Encrypt). Cela signifie que vous devez lire et approuver leurs conditions d'utilisation, et donc que vous avez compris ce qu'ils ont à offrir, ce qu'ils ne fournissent pas, et ce que vous devez vous-même fournir. mod_md ne peut pas de lui-même procéder à cet agrément à votre place.
L'URL à laquelle l'autorité de certication offre son service ACME.
Let's Encrypt propose actuellement quatre URLs pour accéder à ce service. Deux pour la version précédente du protocole ACME, communément appelé ACMEv1, et deux pour la version de la RFC 8555 nommée ACMEv2.
Chaque version possède deux modes de fonctionnement : un mode production et un mode test. Le mode test est identique au mode production, à la différence près que le certificat ne sera pas reconnu par les navigateurs. Il est aussi beaucoup plus souple quant aux limitations en performances. Il permet de tester de manière répétée le service sans pour autant bloquer votre serveur.
Cette directive permet de spécifier le protocole à utiliser.
Pour l'heure, seul le protocole ACME
est supporté.
Cette directive est l'ancien nom de la directive
En mode "auto" (mode par défaut), le module va agir de la manière la plus opportune pour chaque domaine géré. Si un domaine ne possède pas de certificat, le module en demandera un à l'autorité de certification.
Si par contre vous avez défini un domaine géré qui n'est utilisé
par aucun serveur virtuel, le module n'effectuera aucune demande
de renouvellement. De même, pour les domaines gérés avec des
fichiers de certificats statiques (voir
Avec le mode "always", le module renouvellera les certificats des modules gérés, même s'il ne sont pas utilisés ou possèdent un fichier de certificats statique.
A l'opposé, avec le mode "manual", mod_md n'effectuera aucune demande automatique de renouvellement pour aucun domaine géré.
Cette directive permet de spécifier un serveur http mandataire pour se connecter à l'autorité de certification. Vous devez la définir si votre serveur web ne peut atteindre internet que via un serveur mandataire.
Plutôt que de lister tous les noms DNS sur la même ligne, vous
pouvez utiliser la directive
Si vous utilisez cette directive au niveau de la configuration
globale, en dehors de tout serveur virtuel correspondant à un
domaine géré, vous ne pouvez spécifier qu'une valeur, 'auto' ou
'manual' comme mode par défaut pour tous les autres domaines
gérés. Voir la directive
Cette directive permet de définir si les valeurs de
Cette directive permet de définir si les nouveaux certificats
doivent avoir le drapeau OCSP Must Staple activé ou non. Si un
certificat possède ce drapeau, le serveur devra envoyer une réponse
avec agrafage OCSP à chaque client. Ceci ne fonctionne que si vous
configurez
Cette directive permet de définir un programme à lancer lorsqu'un domaine géré a obtenu ou renouvelé son certificat. Ce programme reçoit le nom de domaine géré concerné comme argument additionnel (après les paramètres spécifiés ici). Il doit renvoyer un code d'état de 0 s'il s'est exécuté avec succès.
Le protocole ACME propose deux méthodes pour vérifier à qui
appartient le domaine via HTTP : la première utilise les URLs en
"http:" (port 80) et la deuxième les URLs en "https:" (port
443). Si votre serveur n'est accessible sur aucun
de ces ports, ACME ne pourra fonctionner que si vous configurez
votre serveur DNS de manière adéquate (voir la directive
Sur la plupart des serveurs publics, "http:" arrive sur le port 80 et "https:" sur le port 443. Ce module vérifie les ports sur lesquels votre serveur Apache est en écoute et suppose qu'ils sont disponibles. Autrement dit, si votre serveur n'est pas en écoute sur le port 80, le module suppose que les requêtes en "http:" en provenance d'internet ne seront pas traitées.
Ce raisonnement est légitime, mais il peut s'avérer faux. Par exemple, même si votre serveur est effectivement en écoute sur le port 80, votre pare-feu peut bloquer ce dernier. "http:" ne sera alors disponible que sur votre intranet. Dans ce cas, le module va supposer de manière erronée que Let's Encrypt peut effectuer des vérifications en "http:" avec votre serveur. Ces dernières échouerons car elles auront été rejetées par votre pare-feu.
L'exemple précédent montre comment spécifier que les requêtes en "http:" en provenance d'internet n'arriveront jamais. En outre, il indique que les requêtes en "https:" arriveront sur le port 8433.
Cette définition peut s'avérer nécessaire si vous faites de la redirection de port ; votre serveur peut ainsi être accessible depuis l' Internet sur le port 443, alors que le port local utilisé par httpd sera différent. Par exemple, votre serveur peut n'être en écoute que sur les ports 8443 et 8000, mais accessible depuis internet sur les ports 443 et 80.
Cette directive permet de définir les paramètres de construction des clés privées pour les domaines gérés. Seule la valeur 'RSA' est à l'heure actuelle supportée pour le paramètre type, et le paramètre params spécifie la nombre de bits utilisés pour la clé.
La recommandation actuelle (en 2017) est de 2048 bits au minimum, et une valeur inférieure ne sera pas acceptée. Des valeurs supérieures offriront une plus grande sécurité mais seront plus gourmandes en ressources, et augmenteront donc la charge de votre serveur, ce qui pourra (ou non) être gênant pour vous.
D'autres types de clés seront supportés dans le futur.
Notez que cette directive n'aura d'effet que sur les nouvelles clés. Toute clé préexistante ne sera pas affectée. En outre, seules les clés privées générées pour les certificats sont concernées, les clés de comptes ACME n'étant pas affectées.
Lorsqu'un certificat arrive à expiration, mod_md va tenter d'en obtenir un nouveau signé.
Normalement, les certificats ont une validité de 90 jours, et mod_md les renouvelle lorsqu'il leur reste 33% de durée de vie (soit 30 jours pour une durée de vie de 90 jours). Si cela ne correspond pas à ce que vous souhaitez, vous pouvez spécifier une autre valeur comme dans les exemples suivants :
En mode pilotage automatique, le module va vérifier le statut des domaines gérés au moins toutes les 12 heures pour voir s'il y a quelque chose à faire. En cas d'erreur, par exemple lorsque le CA est inaccessible, il va dans un premier temps réessayer après quelques secondes. Si l'erreur persiste, il va réduire son intervalle de vérification de 12 à 1 heure.
Cette directive facilite la migration de vos domaines gérés de http: vers https:. Dans l'exemple suivant,
vous indiquez que vous désirez que pour l'instant, tout le trafic via des URLs en http: doit être redirigé vers des URLs en https:. Cette directive est sans risque et vous pouvez la désactiver à tout moment.
Ce qui suit par contre, a des conséquences : si vous souhaitez que les clients n'utilisent plus d'URLs en http:, spécifiez :
Cette directive a deux effets :
http:
sont redirigées vers la même requête en remplaçant le protocole
http:
par https:
et en renvoyant le code
d'état 301
. Ce dernier indique aux clients que
cette modification est permanente et qu'ils doivent mettre à
jour leurs liens en conséquence.
https:
comporteront l'en-tête Strict-Transport-Security
avec une durée de vie de six mois. Cela indique au navigateur
qu'il ne devra jamais utiliser
http:
(pendant six mois) lorsqu'il formulera une
requête pour le domaine concerné. Avec cette information, les
navigateurs refuseront de contacter votre site en mode non
chiffré. Ceci interdit à des middlewares malicieux de dégrader
les connexions et d'écouter/manipuler le trafic. C'est une bonne
chose, mais cette configuration ne peut pas être désactivée
aussi simplement que la configuration temporaire ci-dessus.
Vous pouvez obtenir le même résultat de manière simple avec
Si vous effectuez cette configuration au niveau global, elle s'appliquera à tous les domaines gérés. Si vous souhaitez qu'elle ne s'applique qu'à un domaine spécifique, utilisez :
Cette directive permet de définir le répertoire dans le système de fichiers local où seront stockées les données à propos des domaines gérés. Il s'agit d'un chemin absolu ou relatif à la racine du serveur. Par défaut, le répertoire "md" sera créé à la racine de votre serveur.
Si vous souhaitez changer de répertoire et si ce dernier contient déjà des données, copiez tout d'abord les données vers le nouveau répertoire, puis modifier la configuration et redémarrez le serveur. Si vous commencez par modifier la configuration et redémarrer le serveur sans copier les données, ce dernier croira que les certificats sont absents et il tentera d'en obtenir de nouveaux.
Cette directive permet de définir les types de négociation utilisés (par ordre de préférences) pour prouver l'appartenance du domaine. Les types de négociation supportés par le module sont 'tls-alpn-01', 'dns-01' et 'http-01'. Le module parcourt toute la configuration du serveur pour déterminer quelles méthodes peuvent être utilisées.
Si par exemple le serveur est en écoute sur le port 80, c'est la méthode 'http-01' qui sera disponible. Pour 'dns-01', une commande 'MDChallengeDns01' définie sera requise. La méthode 'tls-alpn-01' est décrite ci-dessus dans 'https: Challenges'.
Cette sélection automatique fonctionne pour la plupart des configurations. Mais comme Apache est un serveur très puissant avec de nombreuses options de configuration, certains cas pourront poser des problèmes. Par exemple, il peut être en écoute sur plusieurs adresses IP, certaines étant accessibles en https: et d'autres non.
Si vous définissez 'MDCAChallenges' directement, la sélection automatique est désactivée. A la place, le module va utiliser la liste de méthodes de négociation spécifiée pour dialoguer avec le serveur ACME (un type de négociation doit aussi être proposé par le serveur). Ces méthodes de négociation sont examinées dans l'ordre selon lequel elles sont spécifiées.
Cette directive permet de définir si le serveur global, autrement dit la partie du serveur située en dehors de tout serveur virtuel, doit être géré par mod_md ou non. Par défaut il ne le sera pas car cela provoquerait des effets de bord générateurs de confusion. Il est donc recommandé de définir des serveurs virtuels pour tous les domaines gérés, et d'exclure des domaines gérés le serveur global (serveur par défaut).
Cette directive s'utilise dans une section
Cette directive est équivalente à la directive
Une première application est la migration de la gestion des
certificats d'un domaine existant depuis le mode statique via des
fichiers vers le mode automatique via Let's Encrypt. A cet
effet, vous définissez tout d'abord la section
Avec cette configuration, votre serveur fonctionnera comme
avant, avec probablement moins de lignes répétitives. Vous
pouvez alors ajouter la directive
Une autre application est le renouvellement de vos certificats Let's Encrypt avec d'autres clients ACME comme l'excellent certbot. A cet effet, faites pointer vos domaines gérés vers les fichiers de certbot et ils travaillerons alors ensemble.
Cette directive s'utilise dans une section
Cette directive est équivalente à la directive
Lorsque cette directive est à "on", vous disposez d'une ressource pour les domaines gérés à https://domain/.httpd/certificate-status qui renvoie un document au format JSON contenant une liste de propriétés concernant les clés, le certificat courant et, s'il est disponible, le certificat renouvelé.
Cette directive permet de définir le programme à appeler lorsque la vérification "dns-01" doit être générée/détruite. Le programme prend respectivement comme arguments "setup" ou "teardown" suivi du nom de domaine. Pour "setup", le programme prend comme argument supplémentaire les données de vérification "dns-01".
Tant que la méthode de vérification "http:" ou "https:" est valable, vous n'avez pas besoin de définir cette directive. Cependant, Let's Encrypt n'accepte que "dns-01" comme méthode de vérification valide pour les certificats génériques. Si vous avez besoin d'un tel certificat, vous devez alors définir cette directive.
Reportez vous à la section sur les certificats génériques pour plus de détails.
Cette directive permet de définir la commande à appeler lorsqu'un des évènements "renewed", "installed", "expiring" ou "errored" se produit pour un domaine géré. La commande sera probablement invoquée pour d'autres évènements dans le futur et ignorera les évènements pour lesquels elle n'aura pas été préparée.
Il s'agit d'une version plus souple de la directive
Le programme ne doit pas être bloquant car le module attend qu'il se termine. Un code de retour autre que 0 doit indiquer une erreur d'exécution.
"errored" n'est pas l'évènement à surveiller en priorité car le renouvellement du certificat est censé se produire suffisammant tôt pour éviter toute interruption de service. Cet évènement est signalé au plus une fois par heure.
L'évènement "expiring", quant à lui, doit être pris au sérieux.
Il se produit lorsque la valeur de
'renewed' indique qu'un nouveau certificat a été obtenu et se trouve dans la zone intermédiaire du magasin MD. Il sera activé au prochain restart/reload du serveur.
'installed' indique qu'un nouveau certificat a été transféré depuis la zone intermédiaire vers la zone des domaines du magasin MD. Cet évènement se produit lors d'un restart/reload du serveur. A la différence des autres commandes, MDMessageCmd s'exécute avec les permissions de root (sur les systèmes *nix) et a donc accès aux fichiers de certificats (et aux clés). Les certificats nécessaires à d'autres applications ou possédant des formats différents peuvent être traités suite à cet évènement.
Voir la directive
Le module inspecte la durée de vie restante des certificats et
invoque
Cette directive s'applique aussi aux domaines gérés via des
fichiers de certificats statiques (voir la directive
Le gestionnaire d'Apache "server-status" vous permet de configurer une ressource pour monitorer le fonctionnement du serveur. Cette ressource inclut maintenant une section indiquant tous les domaines gérés avec leur nom DNS, l'état de renouvellement du certificat, la durée de vie de ce dernier, ainsi que d'autres propriétés fondamentales.
Cette directive permet d'activer/désactiver cette ressource.
Cette directive impacte l'interface utilisateur HTML 'server-status' et n'a rien à voir avec le fonctionnement de mod_md proprement dit. Elle permet de définir le lien qui s'affiche sur cette interface pour accéder facilement à un moniteur de certificat. L'empreinte SHA256 du certificat doit être ajoutée à l'URL spécifié.
Les moniteurs de certificat donnent accès aux enregistrements de la Certificate Transparency (CT) afin de tracer l'utilisation des certificats pour les domaines. Vous pourrez au moins vérifier si Let's Encrypt (ou tout autre CA que vous aurez défini) a bien inscrit votre certificat dans les enregistrements de CT.
Avertissement : La mise à jour des enregistrements des certificats et leur prise en compte par les moniteurs peut prendre un certain temps. Ce dernier varie en fonction des enregistreurs et des moniteurs. Un nouveau certificat ne sera donc pas connu immédiatement.
mod_md permet l'obtention des informations d'agrafage OCSP. Cette fonctionnalité est une alternative à celle fournie par 'mod_ssl'. Elle est désactivée par défaut à des fins de compatibilité ascendante.
La fonctionnalité peut être activée pour tous les certificats du serveur ou pour un domaine géré seulement, ce qui aura pour effet de remplacer toute configuration d'agrafage au niveau de `mod_ssl` pour ce(s) domaine(s). Lorsqu'elle est désactivée, l'agrafage de 'mod_ssl' se chargera du travail (s'il a été lui-même activé, bien entendu). Ceci permet de basculer de manière graduée d'une implémentation à l'autre.
L'agrafage fonctionne aussi pour les domaines non gérés par mod_md (voir à ce sujet la directive MDStapleOthers). En fait, l'agrafage OCSP peut très bien être utilisé en l'absence de tout certificat géré via le protocole ACME.
Cette directive n'a d'effet que si `MDStapling` est activée. Elle permet de contrôler si `mod_md` doit aussi fournir les informations d'agrafage pour les certificats qu'il ne gère pas directement (autrement dit pour les certificats non renouvelés via le protocole ACME).
Cette directive permet de spécifier la durée au bout de laquelle les données OCSP utilisées pour l'agrafage doivent être supprimées du magasin. Par défaut, ces informations sont supprimées lors d'un restart/reload du serveur si elles ont plus de sept jours. Ceci permet de limiter la taille du magasin lorsque les certificats sont renouvelés et/ou reconfigurés fréquemment.
Si la durée de validité d'un réponse OCSP passe en dessous de 'duration', mod_md va tenter de la renouveler.
La CA à l'origine du certificat fournit aussi en général le service de réponse OCSP et détermine la durée de validité de sa réponse signée à propos de la validité du certificat. Plus longtemps une réponse sera valide, plus longtemps elle pourra être mise en cache, ce qui arrange tout le monde en matière de performances. Plus courte sera la validité d'une réponse, plus vite seront envoyées des révocations de certificats aux clients. Il est donc important de prendre en compte la qualité de service.
En ajustant la durée de validité des réponses vous-même, vous pouvez contrôler une partie du processus. Si vous spécifiez une durée de vie importante (autrement dit si vous spécifiez un petit pourcentage de validité avant que l'information n'expire), vous assurer un temps de mise en cache maximal, mais une interruption du service OCSP (par exemple un arrêt pour maintenance) aura plus de chance de vous affecter. Si vous spécifiez un pourcentage de temps avant expiration plus important, les mises à jour seront plus fréquentes, ce qui va augmenter la charge de l'infrastructure de serveurs du CA et nécessiter d'avantage de coordination entre les processus enfants de votre propre serveur.
La valeur par défaut choisie est de 33%, ce qui signifie que la demande de renouvellement interviendra lorsque la durée de vie de la réponse OCSP passera en dessous de 33%. Pour une CA qui fournit des réponses OCSP avec une durée de vie de 3 jours, cela implique 2 jours de mise en cache et 1 jour pour les tentatives de renouvellement. Pour affecter votre domaine, une interruption de service devra donc avoir une durée supérieure à 1 jour.
Vous pouvez aussi définir de manière absolue la durée de vie restante, par exemple `2d` pour 2 jours.