bg-tutorials

Comment installer un certificat SSL sur des serveurs macOS

Ce tutoriel explique comment installer un certificat SSL sur macOS. Il couvre l’importation de votre certificat et du bundle CA avec Keychain Access, l’ancien flux de travail macOS Server (Server.app) que de nombreuses configurations existantes utilisent encore, ainsi que la méthode réaliste pour les versions actuelles de macOS où Server.app n’existe plus.

Important : Apple a abandonné le produit macOS Server (Server.app). Les services web, mail et la plupart des services d’hébergement ont été supprimés en 2018, et l’application elle-même a été retirée en avril 2022. La dernière version, 5.12.2, ne fonctionne que jusqu’à macOS Monterey. Les étapes ci-dessous couvrent à la fois la méthode héritée de Server.app et l’approche actuelle.

Générer un code CSR

Pour activer votre certificat SSL, vous devez envoyer des informations sur votre domaine et votre organisation à l’autorité de certification (CA). Cette étape standard s’appelle une demande de signature de certificat, ou CSR. Vous avez deux options :

Soumettez le CSR lors de votre commande. La CA validera votre demande et, une fois approuvée, signera et émettra le certificat. Vous recevrez les fichiers du certificat par e-mail. Ensuite, poursuivez avec l’installation ci-dessous.

Installer un certificat SSL sur macOS

Les étapes ci-dessous suivent le flux de travail original de macOS Server (Server.app) : importer le bundle CA et le certificat avec Keychain Access, puis assigner le certificat aux services dans l’application Server. Si votre Mac n’a plus l’application Server, passez à macOS actuel : sans Server.app après l’étape 2, car l’importation dans Keychain reste applicable.

Étape 1 : préparer vos fichiers de certificat

Téléchargez l’archive ZIP que la CA vous a envoyée et extrayez-la. Vous devriez avoir un fichier avec l’extension .crt (votre certificat principal) et un fichier avec l’extension .ca-bundle (les certificats racine et intermédiaires, aussi appelés le bundle CA). Vous aurez également besoin de la clé privée que vous avez créée avec le CSR.

Étape 2 : ajouter le fichier .ca-bundle à Keychain Access

Commencez par le bundle CA. Il contient les certificats racine et intermédiaires que les navigateurs et les clients utilisent pour établir une chaîne de confiance jusqu’à une racine de confiance. Sans eux, les visiteurs peuvent voir un avertissement de type « non sécurisé » ou de certificat non fiable.

  1. Repérez le fichier avec l’extension .ca-bundle.
  2. Ouvrez Keychain Access (cherchez-le via Spotlight, ou trouvez-le dans Applications > Utilitaires).
  3. Faites glisser le fichier .ca-bundle dans la fenêtre Keychain Access. Ajoutez-le au trousseau System pour qu’il s’applique à tous les utilisateurs et services.
  4. Pour confirmer l’importation, saisissez le nom de votre CA dans la barre de recherche. Vous devriez voir les certificats intermédiaires et le certificat racine listés.

Vous pouvez effectuer la même opération depuis le Terminal, ce qui est utile sur un serveur sans interface graphique ou distant. Ceci importe le bundle dans le trousseau système :

sudo security import yourdomain.ca-bundle -k /Library/Keychains/System.keychain

Étape 3 : ajouter votre certificat principal (Server.app héritée)

Cette étape utilise l’application Server.app désormais abandonnée. Si votre Mac ne l’a plus, consultez la section suivante à la place.

  1. Ouvrez l’application Server et allez dans Server > Certificates.
  2. Sur la page principale, double-cliquez sur le certificat en attente (celui créé lors de la génération du CSR).
  3. Dans la fenêtre qui s’ouvre, faites glisser votre fichier .crt, puis cliquez sur OK.
  4. Un certificat valide affiche désormais le nom de l’émetteur et la date d’expiration.

Étape 4 : attribuer le certificat à vos services (Server.app héritée)

Dans l’application Server, trouvez le paramètre Secure services using. Utilisez le menu déroulant pour sélectionner votre certificat SSL. Pour l’attribuer à des services spécifiques comme le partage de fichiers ou le mail, cliquez sur Custom et choisissez les services que vous souhaitez sécuriser. Une fois terminé, cliquez sur OK.

Votre certificat SSL est désormais installé. Pour confirmer le résultat et vérifier l’absence de problèmes courants, utilisez notre SSL Checker.

macOS actuel : sans Server.app (utiliser Keychain avec Apache ou nginx)

Comme Apple a retiré Server.app, les versions actuelles de macOS ne disposent plus de l’écran Server > Certificates ni de l’attribution de certificat par service. L’importation du certificat dans Keychain Access (étape 2) reste applicable pour la confiance système, mais vous servez le HTTPS en configurant directement un serveur web. macOS inclut Apache (httpd) par défaut, et nginx est disponible via Homebrew. Placez votre certificat et votre clé là où le serveur peut les lire, par exemple sous /etc/ssl/, et gardez la clé privée lisible uniquement par root.

Option A : Apache intégré (httpd)

Modifiez /etc/apache2/httpd.conf et retirez le # en début de ligne pour ces lignes afin que les modules SSL et la configuration SSL se chargent :

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf

Tout d’abord, créez un fichier de chaîne complète (votre certificat suivi du bundle CA), ce que SSLCertificateFile attend sur Apache 2.4.8 et versions ultérieures :

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

Modifiez ensuite /etc/apache2/extra/httpd-ssl.conf et assurez-vous qu’il écoute sur le port 443. Ce fichier contient déjà par défaut un bloc <VirtualHost _default_:443> avec un certificat auto-signé, donc modifiez ce bloc ou ajoutez le virtual host ci-dessous et commentez celui par défaut, afin d’éviter d’avoir deux hôtes sur le port 443 :

<VirtualHost *:443>
    ServerName www.yourdomain.com
    DocumentRoot "/Library/WebServer/Documents"

    SSLEngine on
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off
</VirtualHost>

Les chemins ci-dessus supposent que la clé privée se trouve dans /etc/ssl/private/, ce qui peut ne pas exister sur macOS par défaut. Créez-le d’abord et gardez la clé lisible uniquement par root :

sudo mkdir -p /etc/ssl/private
sudo chmod 600 /etc/ssl/private/yourdomain.key

Testez la configuration avant de redémarrer, puis redémarrez Apache :

sudo apachectl configtest
sudo apachectl restart

Vous devriez voir Syntax OK après le test. Si vous obtenez une erreur, corrigez-la avant de redémarrer afin que le serveur ne rencontre pas d’échec au démarrage.

Option B : nginx

Si vous utilisez nginx, référencez le fichier de chaîne complète et la clé dans votre bloc serveur, puis rechargez :

server {
    listen 443 ssl;
    server_name www.yourdomain.com;

    ssl_certificate     /etc/ssl/yourdomain_fullchain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
}
sudo nginx -t
sudo nginx -s reload

Pour la gestion de configuration sur un parc de Mac (le rôle que remplissait l’ancien Profile Manager), utilisez une solution MDM actuelle. Pour vérifier le certificat installé depuis n’importe quelle machine, utilisez notre SSL Checker.

Questions fréquentes

macOS Server est-il encore disponible ?

Non. Apple a supprimé la plupart des services d’hébergement de macOS Server en 2018 et a abandonné l’application elle-même en avril 2022. La dernière version, la 5.12.2, ne fonctionne que jusqu’à macOS Monterey et n’est pas prise en charge sur les versions plus récentes de macOS. Sur macOS actuel, vous importez les certificats dans Keychain Access et configurez Apache ou nginx directement, au lieu d’utiliser l’application Server.

Comment installer un certificat SSL sur macOS sans l’application Server ?

Importez le bundle CA et votre certificat dans Keychain Access afin que le système fasse confiance à la chaîne, puis pointez votre serveur web vers le certificat et la clé privée. macOS inclut Apache (configuré dans /etc/apache2/), et vous pouvez installer nginx via Homebrew. Définissez SSLCertificateFile et SSLCertificateKeyFile dans Apache, ou ssl_certificate et ssl_certificate_key dans nginx, puis testez la configuration et redémarrez le serveur.

Où macOS stocke-t-il les certificats SSL ?

Les certificats de confiance résident dans des trousseaux gérés par Keychain Access. Les certificats à l’échelle du système se trouvent dans le trousseau System, stocké dans /Library/Keychains/System.keychain. Les fichiers de certificat et de clé privée que lit votre serveur web peuvent être placés ailleurs, par exemple sous /etc/ssl/, à condition que la configuration du serveur les pointe et que la clé reste lisible uniquement par root.

Dois-je installer le bundle CA sur macOS ?

Oui. Le bundle CA contient les certificats intermédiaires et racine qui permettent aux navigateurs et aux clients de construire une chaîne de confiance complète. Si vous l’omettez, certains visiteurs verront un avertissement de chaîne de certificats non fiable ou incomplète. Importez le fichier .ca-bundle dans Keychain Access, ou concaténez-le après votre certificat dans un seul fichier de chaîne complète pour Apache ou nginx.

Comment vérifier que le certificat est correctement installé ?

Ouvrez votre site dans un navigateur et vérifiez le cadenas, ou interrogez le serveur depuis le Terminal avec OpenSSL pour lire le certificat qu’il sert :
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Ceci affiche l’émetteur et les dates de validité. Vous pouvez également effectuer une vérification externe complète avec notre SSL Checker.

Economisez 10% sur les certificats SSL en commandant aujourd’hui!

Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10

Image détaillée d'un dragon en vol
Rédigé par

Rédacteur de contenu expérimenté spécialisé dans les certificats SSL. Transformer des sujets complexes liés à la cybersécurité en un contenu clair et attrayant. Contribuer à l'amélioration de la sécurité numérique par des récits percutants.