Dernière mise à jour : Novembre 2020
Malgré le raccourcissement des périodes de validité des certificats, la plupart des professionnels de l’informatique ne modifient pas souvent la configuration de leurs certificats TLS/SSL. Beaucoup attendent de devoir changer leurs certificats pour ce faire, soit à peu près une fois par an. Or, suivre et gérer ces certificats, et les éléments de clés connexes, tourne parfois à l’énigme et à la chasse au trésor.
Cet article vous explique comment retrouver votre clé privée en fonction du système d’exploitation de votre serveur web. Mais avant de passer en revue les principaux systèmes d’exploitation, voyons quelques notions concernant les clés privées.
Tous les certificats TLS ont besoin d’une clé privée pour fonctionner. Une clé privée est un fichier permettant de chiffrer et de déchiffrer les données qui transitent entre votre serveur et les clients. C’est vous – le propriétaire du certificat – qui créez cette clé lorsque vous effectuez une requête de signature de certificat ou CSR (Certificate Signing Request). L’Autorité de certification (AC) qui émet votre certificat (par exemple DigiCert) ne crée pas et ne détient pas votre clé privée. Hormis vos administrateurs, personne ne doit jamais avoir accès à ces éléments. Par ailleurs, il arrive de plus en plus que les AC soient obligées de révoquer des certificats parce que les clés ont été déposées sur un référentiel en ligne de type GitHub. Même si le site ne transporte pas d’informations confidentielles, toute exposition de la clé privée implique la révocation de tous les certificats correspondants.
Si vous n’avez pas encore installé votre certificat, votre clé privée se trouve très probablement sur l’ordinateur ou le serveur sur lequel vous avez généré la paire de clés et la CSR. Lorsque vous avez généré la paire de clés, vous avez enregistré deux fichiers : l’un avec la clé publique, l’autre avec la clé privée. Pour OpenSSL, lancez la commande openssl –a pour localiser le dossier contenant les fichiers de clés (par défaut /usr/local/ssl). Sur Windows (IIS), le système d’exploitation gère automatiquement vos CSR. Remplissez le questionnaire, puis exportez la clé (suivant les instructions ci-dessous).
Si votre certificat est déjà installé, suivez ces étapes pour localiser le fichier de la clé privée sur les principaux systèmes d’exploitation.
L’emplacement du fichier de votre clé privée est indiqué dans le fichier de configuration principal Apache : httpd.conf ou apache2.conf. La directive SSLCertificateKeyFile contient le chemin vers la clé privée sur le serveur.
OpenSSL, la bibliothèque SSL la plus connue sur Apache, stocke les clés privées sur /usr/local/ssl par défaut. Lancez la commande openssl –a pour localiser le dossier OPENSSLDIR, puis confirmez le dossier dans lequel votre serveur stocke les clés.
L’emplacement de votre clé privée est indiqué dans le fichier d’hôte virtuel de votre site. Accédez au bloc serveur de ce site (par défaut dans le répertoire /var/www/). Ouvrez le fichier de configuration principal du site et recherchez la directive ssl_certificate_key qui indique le chemin d’accès à la clé privée (certains utilisateurs ont un autre fichier de configuration pour leur certificat SSL, par exemple ssl.conf).
Sur les serveurs Windows, le système d’exploitation gère le certificat pour vous dans un dossier caché. Vous pouvez exporter un fichier .pfx contenant à la fois le(s) certificat(s) et la clé privée.
Ouvrez la console MMC (Microsoft Management Console). Dans Console Root (Racine console), développez l’option Certificates (Local Computer) (Certificats, Ordinateur local). Vous trouverez votre certificat dans le sous-dossier Personal (Personnel) ou Web Server (Serveur web). Localisez le certificat identifié par son nom commun, et faites un clic droit dessus. Cliquez sur Export (Exporter) et suivez les instructions de l’assistant. Vous obtenez un fichier .pfx. Pour les instructions détaillées, rendez-vous ici.
Selon l’usage de votre clé privée, vous devrez peut-être scinder le fichier .pfx en deux. Si vous souhaitez simplement obtenir une sauvegarde de la clé ou l’installer sur un autre serveur Windows, vous n’avez rien d’autre à faire. Pour l’utiliser sur un autre système d’exploitation, par exemple Apache, vous devrez convertir le fichier .pfx pour scinder les fichiers .crt/.cer et .key au moyen d’OpenSSL.
Vous ne trouvez toujours pas votre clé privée ? Téléchargez DigiCert SSL Utility. Cet utilitaire vous permet d’importer votre certificat et de localiser automatiquement votre clé privée si elle se trouve sur le serveur. Notez que ce logiciel sur site ne partage pas les informations sur les éléments de la clé avec DigiCert. DigiCert ne récupère aucune information de clé privée pour les certificats TLS, et la mise sous séquestre de clés TLS par l’AC (qui se produit parfois avec la signature de document et les certificats S/MIME) est strictement interdite par la politique de stockage du certificat racine.
Vous avez exploré votre système d’exploitation de fond en comble et votre clé est toujours introuvable ? Peut-être ne cherchez-vous tout simplement pas au bon endroit…
Si vous utilisez un serveur offrant des connexions HTTPS, la clé s’y trouve forcément (ou est accessible depuis ce serveur). À défaut, les connexions HTTPS ne pourraient pas être établies. Nous ne couvrons que les scénarios classiques ici. Il se peut que votre entreprise applique une configuration personnalisée. Commencez par rechercher le fichier « .key » sur votre serveur. Vous pouvez également suivre les étapes si d’installation d’un nouveau certificat, qui devraient inclure celle demandant d’indiquer une clé privée.
Sur certaines plateformes, OpenSSL stocke le fichier .key sur le répertoire où la commande –req est exécutée.
Si vous n’avez pas encore installé le certificat et que la clé reste introuvable, elle a peut-être été supprimée. Si vous avez créé la CSR et que vous ne trouvez pas la clé, le plus simple est sans doute d’émettre à nouveau votre certificat. Pour ce faire, créez une CSR – en veillant à retenir l’emplacement de la clé privée – et appairez le certificat et la nouvelle clé. DigiCert ne facture jamais les réémissions.
Même si vous maîtrisez parfaitement la protection de vos clés, nous vous recommandons de générer une nouvelle paire de clés pour chaque nouveau certificat. En effet, lorsque vous réutilisez des éléments de clés, les conséquences en cas de compromission peuvent être importantes. Par ailleurs, la détection de nouvelles menaces rend le dispositif de sécurité moins efficace. Les procédures de création de clés et de CSR ont été largement simplifiées et DigiCert permet des changements fréquents de clés pour inciter les entreprises à adopter les bons gestes en matière de sécurité.
Découvrez comment la PKI vous ouvre un monde de possibilités dans notre eBook spécial PKI.