Comment demander et utiliser un certificat de signature de code ServBay
Vue d’ensemble
Lors du développement et de la distribution de logiciels, la signature de code est une étape clé pour assurer la confiance des utilisateurs et l’intégrité logicielle. La signature numérique permet aux développeurs de prouver l’origine du logiciel et de garantir que le code n’a pas été altéré depuis sa signature.
ServBay propose une fonctionnalité pratique permettant aux développeurs de demander et d’utiliser, dans leur environnement local, des certificats de signature de code émis par une Autorité de Certification (AC) interne à ServBay. Ces certificats sont particulièrement adaptés aux situations suivantes :
- Signer des logiciels lors de la phase de développement ou de test local, afin de simuler le processus réel de signature.
- Signer des scripts, outils ou applications destinés à un usage interne pour en garantir la provenance et l’intégrité au sein de l’équipe ou d’un environnement de confiance.
- Apprendre et expérimenter l’ensemble du processus de signature de code sans avoir à acheter un certificat commercial onéreux.
Important : Les certificats de signature de code émis par l’AC interne de ServBay ne sont pas délivrés par une autorité de certification reconnue publiquement (comme Let’s Encrypt, Comodo, etc.). Ils ne seront donc pas considérés comme fiables par défaut par les systèmes d’exploitation ou navigateurs publics. Par conséquent, ces certificats ne conviennent pas aux scénarios où la confiance publique est requise, tels que la distribution de logiciels commerciaux pour les utilisateurs finaux, la soumission à des boutiques d’applications, ou les logiciels nécessitant de passer les contrôles de sécurité du système (par exemple l’avertissement Gatekeeper sur macOS à propos d’éditeurs inconnus). Ils sont conçus principalement pour le développement local, les tests ou la signature dans un environnement contrôlé.
Introduction au certificat de signature de code
Le certificat de signature de code est un certificat numérique destiné à apposer une signature sur du code logiciel — fichiers exécutables, scripts, bibliothèques, etc. Son rôle principal est de créer un climat de confiance et d’assurer la sécurité :
- Vérification de l’identité de l’éditeur : Le certificat contient les informations de l’éditeur, et la signature numérique permet de prouver que le logiciel provient bien du développeur ou de l’organisation identifiés par le certificat.
- Garantie d’intégrité du code : Le processus de signature génère une valeur de hachage fondée sur le contenu du code et la chiffre à l’aide de la clé privée. Lors de la vérification, le système recalcule la valeur de hachage et la compare à celle déchiffrée via la clé publique. Toute modification du code provoque une discordance des hachages, entraînant l’échec de la vérification, signe que le code a été altéré.
- Renforcement de la confiance utilisateur : Les systèmes d’exploitation ou logiciels de sécurité affichent souvent des avertissements pour les logiciels non signés ou émis par un éditeur inconnu. Utiliser un certificat de signature de code permet d’éviter de tels avertissements (dans un environnement de confiance, ou si l’AC de ServBay est ajoutée à la chaîne de confiance manuellement), ce qui augmente la confiance des utilisateurs lors de l’installation et l’utilisation.
- Prévention de la propagation de logiciels malveillants : La signature de code permet de distinguer plus aisément les logiciels authentiques des programmes malicieux se faisant passer pour des logiciels légitimes, contribuant ainsi à limiter la distribution de malwares.
Demander un certificat de signature de code via ServBay
ServBay simplifie la procédure d’obtention d’un certificat de signature de code en local.
Ouvrir le panneau de gestion des certificats SSL : Dans la barre latérale de l’application ServBay, cliquez sur le menu "SSL Certificates".
Soumettre une nouvelle demande de certificat : Depuis la page de gestion des certificats SSL, cliquez sur le bouton "+" (Ajouter) en haut à droite.
Renseigner les informations du certificat : Sur la page "Request Certificate" (Demander un certificat), complétez les informations suivantes :
- Common Name (Nom commun) : Saisissez le nom de votre organisation ou votre nom personnel. Par exemple :
ServBay, LLC
ouServBay Demo Developer
. - Usage Purpose (Utilisation) : Indiquez la finalité du certificat. Sélectionnez
Code Signing
(Signature de code). - Request Method (Méthode de demande) : Sélectionnez la méthode d’émission. Choisissez
ServBay CA
pour utiliser la fonctionnalité intégrée de délivrance de certificats ServBay. - Issuer (Émetteur) : Sélectionnez l’AC interne de ServBay qui signera ce certificat. En général, choisissez
ServBay User CA
. - Algorithm (Algorithme) : Sélectionnez l’algorithme cryptographique pour générer la paire de clés. Les options courantes sont
ECC
(courbes elliptiques) ouRSA
(Rivest-Shamir-Adleman). ECC offre généralement une sécurité supérieure avec des clés plus courtes à sécurité équivalente. - Key Length (Longueur de clé) : Précisez la taille de clé pour l’algorithme choisi. Pour ECC, par exemple
384
; pour RSA,2048
ou4096
. Une taille de clé supérieure accroît la sécurité mais peut ralentir les performances. - Password (Mot de passe) : Très important ! Choisissez un mot de passe robuste pour protéger la clé privée de votre certificat. Ce mot de passe sera requis lors de l’export du certificat (fichier
.p12
) et lors de l’utilisation dans un outil de signature de code. Gardez-le soigneusement, car ServBay ne pourra pas en assurer la récupération en cas de perte. Indiquez un mot de passe personnalisé. (Remarque : le mot de passeServBay.dev
illustré en capture d’écran n’est qu’un exemple ; veuillez utiliser votre propre mot de passe sécurisé.)
Exemple de capture d’écran, renseignez vos véritables informations
- Common Name (Nom commun) : Saisissez le nom de votre organisation ou votre nom personnel. Par exemple :
Soumettre la demande de certificat : Après avoir tout vérifié, cliquez sur le bouton "Request" en bas de page. ServBay générera alors automatiquement votre certificat de signature de code à l’aide de l’AC interne spécifiée.
Export et utilisation du certificat
Une fois le certificat obtenu, exportez-le au format standard pour l’utiliser avec différents outils de signature. Les certificats exportés via ServBay sont généralement des fichiers au format .p12
.
Accédez au panneau de gestion des certificats SSL : Dans la barre latérale ServBay, cliquez sur "SSL Certificates".
Repérez votre certificat de signature de code : Dans la liste, trouvez le certificat dont l’utilisation est "Code Signing" que vous venez de demander.
Cliquez sur l’icône d’exportation : Sur la ligne du certificat, cliquez sur l’icône d’exportation (souvent une flèche vers la droite).
Choisissez le dossier de destination et saisissez le mot de passe : Dans la fenêtre qui s’ouvre, sélectionnez le dossier local où enregistrer le fichier certificat. Le fichier sera au format
.p12
(PKCS#12), incluant le certificat et la clé privée, protégé par mot de passe. Saisissez alors le mot de passe que vous aviez défini à la demande pour procéder à l’export.Utilisez le certificat dans un outil de signature : Importez le fichier
.p12
dans votre outil de signature de code. Selon l’OS ou l’environnement :- macOS : Utilisez la commande intégrée
codesign
. Il faudra sans doute importer le fichier.p12
dans le Trousseau (Keychain Access) de macOS au préalable. - Windows : Utilisez l’outil en ligne de commande
signtool.exe
fourni avec le SDK Windows. Le certificat devra probablement être importé dans le gestionnaire de certificats de Windows. - Autres plateformes/chaînes d’outils : Selon vos outils (ex :
jarsigner
Java,SignTool
.NET, outils tiers en Go…), vérifiez leur documentation sur l’import et la signature via un fichier.p12
. Il faut généralement fournir le chemin du.p12
et le mot de passe de la clé privée.
- macOS : Utilisez la commande intégrée
Après import, vous pourrez signer numériquement vos codes, applications, drivers, etc. avec ce certificat.
Exemple d’utilisation du certificat pour signer du code (macOS)
Ce qui suit montre comment utiliser l’outil codesign
sur macOS avec un certificat .p12
exporté via ServBay pour signer et vérifier un binaire.
Prérequis : vous avez importé le fichier .p12
dans Trousseau d’accès de macOS, en saisissant le bon mot de passe lors de l’import.
# 1. Créer un simple fichier source C pour tester la signature
# Sauvegardez ce qui suit sous le nom test.c
cat <<EOF > test.c
#include <stdio.h>
int main() {
printf("Hello, ServBay Code Signing!\n");
return 0;
}
EOF
# 2. Compiler le fichier C en binaire exécutable
# -o /tmp/test définit le nom de sortie
gcc test.c -o /tmp/test
echo "Compilation réussie, fichier /tmp/test généré"
# 3. Lister les identités utilisables pour la signature de code
# -v informations détaillées
# -p codesigning affiche les identités de signature de code
# Notez le 'Common Name' ou le hash de la vôtre (ex : 99C183BC3796067FAFBA6F232D1C3C3425DAABDA)
security find-identity -v -p codesigning
# Un exemple de résultat :
# 1) ABCDEF1234567890ABCDEF1234567890ABCDEF12 "Apple Development: Votre Nom (XYZ123)"
# 2) 99C183BC3796067FAFBA6F232D1C3C3425DAABDA "ServBay Demo Developer"
# 2 valid identities found
# Noter la valeur associée à votre certificat ServBay (Common Name ou hash)
# 4. Signer le binaire avec le certificat choisi
# -f force la signature (remplace une signature éventuelle)
# -s indique l'identité (nom ou hash s’il est unique)
# --timestamp ajoute un horodatage (optionnel mais recommandé)
# /tmp/test est le fichier à signer
codesign -f -s "ServBay Demo Developer" --timestamp /tmp/test
# Ou avec le hash :
# codesign -f -s "99C183BC3796067FAFBA6F232D1C3C3425DAABDA" --timestamp /tmp/test
echo "/tmp/test a été signé avec le certificat de signature de code"
# 5. Vérifier la signature
# -dvvv affiche toutes les infos en détail
codesign -dvvv /tmp/test
# Vérifiez le champ "Authority" dans la sortie, il doit contenir votre certificat ServBay et la chaîne CA
# Vérifiez aussi la "Signature size", "CDHash", etc. pour voir que le fichier est bien signé
# Vérifiez la présence de "Timestamp"
# Exemple de sortie :
# Authority=ServBay Demo Developer
# Authority=ServBay User CA - ECC Code Signing
# Authority=ServBay Public CA - ECC Root
# Timestamp=7 nov. 2024 à 18:26:48 (exemple)
# 6. Modifier le contenu du fichier (corrompt la signature)
# On injecte des données aléatoires, ce qui change le hash
echo "abcde" >> /tmp/test
echo "Le contenu de /tmp/test a été modifié"
# 7. Vérifier la signature à nouveau
# Cette fois la vérification doit échouer
codesign -dvvv /tmp/test
# Exemple de sortie :
# /tmp/test: code object is not signed at all
# Ou un message d’erreur similaire, montrant que la modification a invalidé la signature.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Notes :
security find-identity
liste les certificats du trousseau autorisés pour signature (ex :codesigning
). Relevez le nom commun (Common Name) ou le hash de la vôtre.codesign -f -s "Votre identité"
effectue la signature. L’option--timestamp
interroge un serveur d’horodatage ; la signature reste valide même si le certificat expire, du moment qu’il était valable lors de la signature et que l’horodatage est valide.codesign -dvvv
vérifie la signature : validité du certificat, chaîne de confiance, cohérence du contenu avec le hash signé, etc.- L’étape finale (modification, puis vérification) illustre la vérification d’intégrité : toute modification du fichier rend la signature invalide.
Renouvellement du certificat
Les certificats de signature de code émis par ServBay ont une durée de validité limitée (habituellement 800 jours). Avant l’expiration, vous pouvez les renouveler dans le panneau de gestion des certificats SSL ServBay.
- Accédez au panneau de gestion des certificats SSL.
- Repérez le certificat de signature de code à renouveler.
- Cliquez sur l’icône de renouvellement : Sur la ligne du certificat, cliquez sur l’icône de renouvellement (généralement une flèche circulaire).
- Confirmez le renouvellement : Cliquez sur "Renouveler" et ServBay émettra un nouveau certificat valable 800 jours à partir de la date actuelle.
Suppression de certificat
Si vous n’avez plus besoin d’un certificat de signature de code, vous pouvez le supprimer depuis ServBay.
- Accédez au panneau de gestion des certificats SSL.
- Repérez le certificat à supprimer.
- Cliquez sur l’icône de suppression : Sur la ligne du certificat, cliquez sur l’icône poubelle.
- Confirmez la suppression : Dans le menu de confirmation, choisissez "Supprimer" et validez. Attention, la suppression est irréversible.
Foire Aux Questions (FAQ)
Q : Les certificats de signature de code émis par ServBay sont-ils gratuits ?
R : Oui, les certificats émis par l’AC interne de ServBay sont inclus dans la solution, sans coût additionnel.
Q : Puis-je utiliser un certificat émis par ServBay pour signer et distribuer mon logiciel commercial auprès d’utilisateurs finaux ?
R : Non. Les certificats ServBay sont délivrés par une AC interne et ne sont pas reconnus par les OS publics ni les boutiques d’applications. Ils se destinent uniquement au développement local, test ou usage interne contrôlé. Pour une distribution publique, achetez un certificat auprès d’une autorité reconnue.
Q : J’ai oublié le mot de passe défini lors de l’export du fichier .p12
. Que faire ?
R : ServBay ne conserve pas votre mot de passe de clé privée. En cas d’oubli, il sera impossible d’exporter ou d’utiliser la clé du certificat. Il faudra alors supprimer ce certificat et en demander un nouveau.
Q : Puis-je ajouter la ServBay User CA à la liste des autorités de confiance de mon système d’exploitation ?
R : Oui, vous pouvez exporter le certificat ServBay User CA puis l’importer manuellement dans le magasin de confiance de votre OS ou navigateur.
Conclusion
La fonctionnalité de certificat de signature de code proposée par ServBay permet aux développeurs de signer en toute simplicité leurs applications et outils lors du développement ou pour des besoins internes. Ce guide vous a présenté les étapes pour demander, exporter et utiliser ces certificats. Gardez à l’esprit que ceux-ci sont destinés au développement et aux tests, et non à des scénarios nécessitant la confiance publique.
Pour tout souci rencontré lors de la demande ou de l’utilisation, consultez la documentation officielle ServBay ou demandez de l’aide à la communauté.