Bien que le lien de RedYeti soit utile, afin d'épargner quelques clics à d'autres, je vais récapituler comment générer un certificat de signature de code et l'utiliser pour la (re)signature de code :
-
Créez votre propre certificat de signature de code :
-
Dans Accès au trousseau, Accès au trousseau > Assistant de certificat > Créer un certificat. Ceci lance l'assistant de certificat :
-
Nom : Entrez ici une chaîne arbitraire dont vous pouvez vous souvenir. Évitez les espaces, sinon vous devrez échapper le nom du certificat lorsque vous utiliserez la fonction codesign
à partir de la ligne de commande.
-
Type d'identité : Racine auto-signée
-
Type de certificat : Signature de code
-
Cochez la case "Let me override defaults", c'est très important.
-
Numéro de série : 1 (OK tant que la combinaison nom du certificat/numéro de série est unique)
-
Période de validité : 3650 (vous donne 10 ans)
-
Email, Nom, etc. à remplir comme vous le souhaitez.
-
Info sur la paire de clés : définie sur RSA, 2048 bits. N'a pas vraiment d'importance IMHO.
-
De "Extension de l'utilisation des clés" jusqu'à "Extension du nom alternatif du sujet" : acceptez les valeurs par défaut.
-
Emplacement : porte-clés de connexion.
-
Une fois qu'il est créé, réglez-le sur "Toujours faire confiance" dans le trousseau de connexion : cliquez avec le bouton droit de la souris sur le certificat, choisissez "Obtenir des informations", et dans la section "Confiance", réglez "Lorsque vous utilisez ce certificat" sur "Toujours faire confiance".
-
Re-signature d'une application : codesign -f --deep -s <certname> /path/to/app
-
Vérifiez que ça a marché : codesign -dvvvv /path/to/app
Profitez-en !
UPDATE : Les gens m'ont demandé pourquoi cela "ne fonctionne pas" dans MacOS 10.14 "Mojave". Maintenant que j'ai enfin effectué la mise à niveau :-), voici ce que j'ai appris.
Fondamentalement, n'utilisez pas de certificat auto-signé pour la signature de code. Générer un certificat en utilisant votre Apple ID dans Xcode à la place. Pour récapituler brièvement les étapes :
Dans Xcode > Préférences > Comptes, sélectionnez votre ID de développeur Apple, cliquez sur "Gérer les certificats", sélectionnez le "+" dans le coin inférieur gauche, il vous offre l'option "Développement Apple". Sélectionnez-la, cela va créer un certificat pour vous. En faisant un Ctrl-clic sur le nouveau certificat, vous pouvez l'exporter (dans le menu de gauche). .p12
), et par open
- que .p12
il est chargé dans votre trousseau de connexion.
Vous verrez que ce certificat est valide pour un an, "Issued by : Apple Worldwide Developer Relations Certification Authority". Je pense que c'est plus fiable qu'un certificat auto-signé.
Vous pouvez maintenant signer votre application comme auparavant avec codesign -f -s <apple_ID> /path/to/prog
. Je l'ai essayé avec un simple binaire (compilé à partir de hello.c
:-) ), et il pourrait être vérifié avec codesign -v
.
Je n'ai pas encore essayé avec les paquets Python, donc je n'ai pas de conseil à donner aux personnes qui ont mentionné dans leurs commentaires que cela ne peut pas signer "Python.app".