129 votes

Comment se débarrasser de la boîte de dialogue du pare-feu "accepter les connexions entrantes" ?

Je l'ai accepté tellement de fois que le pare-feu devrait déjà s'en souvenir.

Voulez-vous que l'application "AppName.app" accepte les connexions réseau entrantes ?

Le fait de cliquer sur Refuser peut limiter le comportement de l'application. Ce paramètre peut être modifié dans le volet Pare-feu des préférences Sécurité.

Refuser | Autoriser

Par exemple, je l'obtiens pour Eclipse lorsque je lance mes programmes java en mode débogage. Parfois, cette boîte de dialogue ne s'affiche que très brièvement, une demi-seconde par exemple, puis disparaît. Je l'obtiens également pour iTunes (lorsque j'active le partage de ma bibliothèque) et d'autres programmes, même s'ils sont répertoriés dans le panneau des préférences du pare-feu (paramètres avancés).

75voto

His Points 1298
sudo codesign --force --deep --sign - /path/to/application.app

Je n'ai jamais eu à créer un certificat en utilisant cette méthode.

Si cela n'aide pas, essayez sans --deep et sans la barre oblique de fin :

sudo codesign --force --sign - /path/to/application.app

Note, juste pour que ce soit plus clair : Après avoir appliqué la signature, lancez l'application, acceptez une dernière fois les connexions entrantes, puis quittez et recommencez pour vérifier que la demande a disparu.

61voto

Laryx Decidua Points 876

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 :

  1. 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".

  2. Re-signature d'une application : codesign -f --deep -s <certname> /path/to/app

  3. 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".

14voto

Mike Polen Points 3173

Il y a deux options ici :

  1. Vous pouvez simplement sélectionner "Autoriser tout" dans votre pare-feu, ou simplement le désactiver.
  2. Vous pouvez retirer les applications de la liste, supprimer les plist pour ces applications, les exécuter, puis les ajouter à la liste. Le fichier plist est responsable de nombreux comportements et je suis prêt à parier qu'une mise à jour de l'OS ou de l'application peut entraîner la rupture du "lien".

À propos de plist fichiers... Un plist est un type particulier de fichier texte qui contient des propriétés que l'application et d'autres ressources, généralement le système d'exploitation, utilisent pour conserver et réutiliser les informations nécessaires au fonctionnement de l'application. plist est un type de fichier et a de nombreuses utilisations, notamment le stockage des préférences de l'utilisateur, mais, essentiellement, c'est un fichier XML. Vous pouvez vérifier s'il existe des caches, qui sont généralement des fichiers plist pour les applications en question dans /Library/Caches et /System/Library/Caches . Il y en a aussi un en ~/Library/Caches/ mais de mauvaises choses peuvent arriver quand on fouille là-dedans, alors laissez-le tranquille. Le système va dans ces dossiers pour une grande variété de raisons, et je nettoie généralement les deux premiers dossiers que j'ai énumérés complètement environ une fois par mois.

14voto

RedYeti Points 449

Il s'agit de savoir si l'application est signée ou non. Si elle n'est pas signée, la préférence ne sera pas mémorisée.

Pour voir si une application est signée, faites ceci dans le Terminal :

cd path/to/your/app
codesign -vvv Eclipse.app/

Pour Eclipse - le mien dit qu'il n'est pas du tout signé. Je ne peux pas faire de commentaires sur la façon de signer l'application puisque je n'ai pas pris la peine de le faire, mais cette réponse sur superuser le couvre :

https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself#300841

11voto

Sayan Mohsin Points 31

Si vous programmez en Go :

http.ListenAndServe("localhost:8080", nil)

Au lieu de :

http.ListenAndServe(":8080", nil)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X