Directive SSLCertificateChainFile obsolète d'Apache (AH02559)

8

Récemment, j'ai mis à niveau Apache de 2.2 à 2.4 et je n'arrive pas à comprendre comment déprécier une SSLCertificateChainFiledirective.

L'erreur:

me@jessie:~$ sudo apache2ctl configtest 
AH02559: The SSLCertificateChainFile directive (/etc/apache2/sites-enabled/https.conf:103) is deprecated, SSLCertificateFile should be used instead
Syntax OK

Mes paramètres actuels:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key
SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.sha2.ca.pem
SSLCACertificateFile /etc/apache2/cert/ca.pem

Le certificat est signé par StartCOM. Le manuel dit, maintenant toute la chaîne doit être dans un seul fichier, spécifié par la SSLCertificateFiledirective, mais je ne sais pas quelles clés et dans quel ordre je dois concaténer ce fichier.

Neurotransmetteur
la source

Réponses:

8

Étant donné que vous utilisez ceci dans votre configuration apache:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key

Le /etc/apache2/cert/ssl.crtfichier doit contenir

  1. certificat de par exemple votredomaine.com
  2. certificat de la première autorité de certification intermédiaire, signé par l'autorité de certification racine (par exemple, l'autorité de certification du serveur intermédiaire principal de classe 1 de StartCom)
  3. certificat de deuxième autorité de certification intermédiaire, signé par la première autorité de certification intermédiaire (s'il existe une deuxième autorité de certification intermédiaire dans votre chaîne de certificats)

Vous devez placer tous les certificats d'autorité de certification intermédiaires dans le fichier crt. Selon la chaîne de certificats de votre certificat, le nombre d'autorités de certification impliquées varie.

Vous n'avez même pas besoin d'ajouter l'autorité de certification racine, car elle doit se trouver dans le magasin de clés de confiance de tous les clients, sinon les clients obtiendront une page d'erreur. établir des connexions SSL, car il doit être transféré pour chaque nouvelle session SSL. En fait, la plupart des clients auront également des certificats CA intermédiaires installés, mais certains pourraient ne pas, par exemple les téléphones portables n'ont pas beaucoup de certificats CA intermédiaires, donc j'ajouterais certainement ceux-ci.

Le /etc/apache2/cert/ssl.keyfichier restera le même, c'est-à-dire qu'il contiendra la clé du certificat de votredomaine.com

fholzer
la source
D'accord, si je vous ai bien compris, je devrais créer un fichier avec les éléments suivants dans l'ordre: 1) ssl.crt; 2) sub.class1.server.sha2.ca.pem; 3) quoi? Veuillez expliquer quels certificats doivent être ajoutés au troisième (et éventuellement plus loin).
Neurotransmetteur
Cela dépend de la chaîne réelle, je veux dire du nombre d'autorités de certification impliquées dans la signature de votre certificat. La chaîne ne peut comprendre que 2 AC. par exemple, l'autorité de certification racine et une autorité de certification intermédiaire. Mais il peut s'agir d'une autorité de certification racine et de plusieurs autorités de certification intermédiaires. Votre fichier ssl.crt doit contenir tous les certificats CA intermédiaires, de haut en bas. Pour cette raison, cela dépend absolument de votre cas spécifique à quoi devrait ressembler votre ssl.crt.
fholzer
Comment savoir quelles autorités de certification sont impliquées dans la signature d'un certificat?
Neurotransmetteur
2
Construire la chaîne n'est pas anodin pour un novice, je suppose. Je cours généralement openssl x509 -subject -issuer -noout -in certificate.of.yourdomain.crtpour voir l'émetteur. Je télécharge ensuite le certificat d'émission sur le site Web de mon autorité de certification, dans votre cas: startssl.com/certs . Exécutez ensuite la commande sur ce certificat. Répétez jusqu'à ce que le problème soit égal au sujet, ce qui signifie que le certificat est auto-signé et qu'il s'agit du certificat d'autorité de certification racine. ajoutez tous ces fichiers à l'exception du certificat de l'autorité de certification racine au fichier ssl.crt et vous avez terminé.
fholzer
Merci pour votre soutien, j'ai suivi la chaîne et généré un certificat combiné. Mais pour une raison quelconque, le test SSL Qualys indique que les clients qui se connectent à mon hôte doivent télécharger en plus le StartCom Class 1 Primary Intermediate Server CA, que j'ai définitivement inclus dans le certificat combiné ( capture d'écran ). C'est bizarre.
Neurotransmetteur
1

D'accord, finalement compris récemment et j'ai décidé de publier les détails dans le formulaire de réponse.

Maintenant, StartSSL place le certificat dans l'archive zip lorsque vous le récupérez et il y a beaucoup d'archives incluses, un intérêt particulier est ApacheServer.zipun formulaire compatible avec Apache> 2.4. Les fichiers du dossier Apache sont:

1_root_bundle.crt
2_myhost.tld.crt

Vous devez préparer à SSLCertificateFilepartir de ces deux certificats, mais dans cet ordre:

cat 2_myhost.tld.crt 1_root_bundle.crt > myhost.tld_combined.crt

Donc dans la conf du site ce sera juste:

    SSLCertificateFile    /etc/apache2/cert/myhost.tld_combined.crt
    SSLCertificateKeyFile /etc/apache2/cert/myhost.tld.key

Et tout ira bien, même le test SSL Qualys .

Cela fonctionne pour StartCom StartSSL, ainsi que pour les certificats WoSign. Le format est le même.

Neurotransmetteur
la source