Installation certificat ssl avec apache

Bonjour,

j’ai donc un csr, un certificat que m’a accordé une authorité de certification et ma clé privée.
J’ai installé apache, je peux activer le virtualhost default-ssl pour avoir de l’ssl auto-signé mais je n’arrive pas à installer mon certificat.
Notez que j’essais de l’installer sur un virtualhost précisément car mon serveur hébergera plusieurs sites internet.
Comment faire?
En vous remerciant,

Bonjour,

Il faudra que la configuration du VHost ressemble à cela :

<VirtualHost 11.22.33.44:443> DocumentRoot /var/www_mondomaine.com/ ServerName www.mondomaine.com SSLEngine on SSLCertificateFile /chemin/vers/mondomaine.com.crt SSLCertificateKeyFile /chemin/vers/mondomaine.com.key SSLCertificateChainFile /chemin/vers/mondomaine.com.chain.crt ... </VirtualHost>

Dans ce que t’as envoyé l’autorité de certification (CA), il est très probable que fichier certificat contienne en fait plusieurs certificats au format PEM.

Le format PEM, c’est une ligne avec 5 tirets suivis de BEGIN QUELQUE-CHOSE, 5 autres tirets, quelque-chose encodé en base64 puis une ligne avec 5 tirets suivis de END QUELQUE-CHOSE et 5 autres tirets. Exemple :

-----BEGIN CERTIFICATE----- MIAGCSqGSIb3DQEHAqCAMIACAQExADALBgkqhkiG9w0BBwGggDCCAAhAF ... K99c42ku3QrlX2+KeDi+xBG2cEIsdSiXeQS/16S36ITclu4AADEAAAAAAAAA -----END CERTIFICATE-----

Il te faudra probablement utiliser ton éditeur de texte favori (donc forcément vi :wink: ) pour découper ce fichier. Le premier certificat vers le fichier mondomaine.com.crt et le reste des certificats vers le fichier mondomaine.com.chain.crt .

Une fois que tu auras les 3 fichiers, tu les stockes quelque-part et tu modifies la configuration du VHost en conséquence.
Par contre, fais très attention à ce que la clé privée ne soit accessible qu’à un minimum de monde. Idéalement, seulement à Apache pour son démarrage (CAD à l’utilisateur root seul). C’est le fichier à protéger.

D’ailleurs, il arrive que l’utilisation de la clé privée soit protégée par une phrase de passe (passphrase), un mot de passe mais en plus long. Dans ce cas, Apache requière évidement de saisir cette phrase de passe lors de son démarrage.
Si c’est le cas, les trois possibilités qui s’offrent à toi sont :

  • Saisir à la main la phrase de passe à chaque démarrage.
  • Mettre en place un petit script qui fournira la phrase de passe à Apache.
  • Enlever la phrase de passe de la clé privée. Le moteur de recherche “lunettes” saura t’indiquer comment faire.

Le fichier CSR, la demande de signature de certificat, ne te servira plus à grand-chose et tu peux l’effacer. Les infos sur ta demande sont également contenues dans le certificat, de toutes façons.

Etant donné qu’il existe déjà une importante documentation sur le web à ce sujet, je ne donne ici que le minimum.


AnonymousCoward

je te remercie, donc finalement les fichiers que m’ont envoyé mon autorité de certification ne servaient pas à rien .

Par contre j’ai besoin que tu me dise alors quel fichier sert à quoi parce que oui j’ai bien un fichier domain.ca-bundle avec deux certificats à l’intérieur, ca doit correspondre au format pem. Mais j’ai un autre certificat au format crt et je ne sais pas à quoi ca correspond. ou alors c’est moi qui n’ai pas très bien compris ce que t’as dit. désolé si c’est le cas :slightly_smiling:

Avec un nom comme cela, le fichier domain.ca-bundle est probablement le fichier contenant les certificats de la chaîne de certification, que j’ai appelé mondomaine.com.chain.crt dans mon exemple.
Ce sont les certificats des autorités de certification qui signent ton certificat. Et ces certificats sont dans l’ordre : Celui qui a directement signé ton certificat puis éventuellement celui qui signé celui qui a signé ton certificat et ainsi de suite.

Le format PEM, c’est juste un format lisible par ton éditeur de texte favori sans qu’il ne t’affiche de la bouillie binaire. Avec des -----BEGIN CERTIFICATE----- et -----END CERTIFICATE----- pour bien te dire où un certificat commence et où il finit, comme pour découper le talon de paiement d’une facture.

Pour vérifier le bon fonctionnement d’un certificat déployé pour un site web, je recommande https://www.digicert.com/help/. Tu peux voir un beau certificat pour le site [mono]linuxfr.org[/mono] ou un certificat avec un petit bug pour le site [mono]robowhois.com[/mono] .


AnonymousCoward

Ca n’a pas fonctionné…
je détail mes étapes…

installation apache
création répertoire du site
attribution des droits
je copie le virtualhost default je le modifie en lui attribuant un nom de serveur (nom de domaine) je le dirige vers mon répertoire
je copie colle le virtualhost default ssl
j’envoi via ssh mon domain.crt et mon domain.ca-bundle
je recopie ma clé privée dans un fichier texte
je le renomme en domain.key
j’envoi ca sur le serveur dans le dossier
je vais dans le virtualhost que j’ai copié collé de default-ssl je rajoute un servername (domaine) je rajoute 3 lignes en dessous de SSLengine on
qui sont les trois ligne que tu m’a donné
une qui dirige vers domaine.crt
un qui dirige vers domaine.key
et une vers domain.ca-bundle
je fais un a2ensite monvirtualhost
je fais un service apache2 restart

et résultat le https ne fonctionne pas :confused:

j’ai même essayé de couper le ca-bundle en 2 de mettre le premier certif en principal et le second en chain.crt, ensuite j’ai essayé de remettre le domaine.crt en normal et de mettre 2 chain.crt que sont le chain.crt divisé en 2 car deux certif dedans…
ca n’a pas fonctionné, faut tout m’expliquer à moi je débute vraiment ^^

edit2 : aux temps pour moi, il n’y avait pas besoin de découper le .ca-bundle en deux, par contre j’avais oublié le : a2enmod ssl :laughing: