He aceptado esto tantas veces que el firewall ya debería recordarlo.
Por ejemplo, lo obtengo para Eclipse cuando inicio mis programas java en modo de depuración ... a veces este cuadro de diálogo se muestra muy brevemente, como medio segundo, y desaparece. También lo obtengo para iTunes (cuando habilito compartir mi biblioteca) y otros programas, a pesar de que los tengo listados en el panel de preferencias de Firewall (configuración de avisos).
macos
snow-leopard
firewall
Peter Štibraný
fuente
fuente
Respuestas:
Aquí hay dos opciones:
plist
archivo de esas aplicaciones, ejecutarlas y luego agregarlas a la lista. La lista es responsable de muchos comportamientos y estoy dispuesto a apostar que una actualización del sistema operativo o la aplicación pueden hacer que el "enlace" se rompa.Acerca de los
plist
archivos ... Un plist es un tipo especial de archivo de texto que contiene propiedades que la aplicación y otros recursos, generalmente el sistema operativo, utilizan para retener y reutilizar la información necesaria para ejecutar la aplicación.plist
es un tipo de archivo y tiene muchos usos, generalmente almacena las preferencias del usuario, pero, esencialmente, es un archivo XML. Puede ver si hay cachés, que normalmente sonplist
archivos, para las aplicaciones en cuestión en/Library/Caches
y/System/Library/Caches
. También hay uno,~/Library/Caches/
pero pueden pasar cosas malas cuando estás jugando allí, así que déjalo en paz. El sistema entra en esas carpetas por una amplia variedad de razones, y generalmente limpio las dos primeras carpetas que enumeré por completo aproximadamente una vez al mes.fuente
~
s en las rutas de los archivos anteriores hacen referencia a la carpeta de inicio del usuario actual o al directorio raíz?Nunca he tenido que crear un certificado con este método.
Si eso no ayuda, intente sin
--deep
y sin la barra diagonal final:Nota, solo para aclararlo: después de haber aplicado la firma, inicie la aplicación, acepte las conexiones entrantes por última vez, luego salga y comience nuevamente para verificar que la solicitud haya desaparecido.
fuente
-
after--sign
significa que se utiliza "firma ad-hoc"; no es necesario tener un certificado para usar ese comando. No entiendo por qué esto contradiría el uso del terminal. Correman codesign
para ver la explicación.sudo codesign --force --sign - /path/to/application.app
ha funcionado para mí, pero no la variación sugerida por el autor. Me pregunto si--deep
o la barra diagonal principal fue un problema.Si bien el enlace de RedYeti es útil, solo para guardar unos pocos clics para otros, permítanme recapitular cómo generar un certificado de firma de código y usarlo para la (re) firma de código:
Cree su propio certificado de firma de código:
En Keychain Access, Keychain Access> Certificate Assistant> Crear un certificado. Esto inicia el Asistente de certificado:
Nombre: ingrese aquí una cadena arbitraria que pueda recordar. Evite espacios; de lo contrario, deberá escapar del nombre del certificado cuando lo use
codesign
desde la línea de comandos.Tipo de identidad: raíz autofirmada
Tipo de certificado: firma de código
Marque la casilla "Permitirme anular los valores predeterminados", esto es bastante importante
Número de serie: 1 (OK siempre que la combinación de nombre de certificado / número de serie sea única)
Período de validez: 3650 (le da 10 años)
Correo electrónico, nombre, etc., complete como desee.
Información del par de claves: establecido en RSA, 2048 bits. Realmente no importa en mi humilde opinión.
Desde "Extensión de uso de clave" hasta "Extensión de nombre alternativo del sujeto": acepte los valores predeterminados.
Ubicación: llavero de inicio de sesión.
Una vez creado, establezca "Confiar siempre" en el llavero de inicio de sesión: haga clic con el botón derecho en el certificado, elija "Obtener información" y, en la sección "Confiar", establezca "Al usar este certificado" en "Confiar siempre".
Volver a firmar una aplicación:
codesign -f --deep -s <certname> /path/to/app
Verifique que funcionó:
codesign -dvvvv /path/to/app
¡Disfrutar!
ACTUALIZACIÓN: La gente me preguntó por qué esto "no funciona" en macOS 10.14 "Mojave". Ahora que finalmente he actualizado :-), esto es lo que aprendí.
Básicamente, no use un certificado autofirmado para la firma del código. Genere un certificado utilizando su ID de Apple en Xcode . Para recapitular los pasos brevemente:
En Xcode> Preferencias> Cuentas, seleccione su ID de desarrollador de Apple, haga clic en "Administrar certificados", seleccione el "+" en la esquina inferior izquierda, le ofrece la opción "Desarrollo de Apple". Seleccione eso, esto hará un certificado para usted. Al presionar Ctrl y hacer clic en el nuevo certificado, puede exportarlo (en
.p12
formato) y al hacer clic enopen
ese.p12
archivo se carga en su llavero de inicio de sesión.Verá que este certificado es válido por un año, "Emitido por: Autoridad de Certificación de Relaciones con Desarrolladores de Apple en todo el mundo". Sospecho que es más confiable que un certificado autofirmado.
Ahora puede firmar su aplicación como antes con
codesign -f -s <apple_ID> /path/to/prog
. Lo probé con un binario simple (compilado dehello.c
:-)), y se pudo verificar concodesign -v
.Todavía no lo he probado con los paquetes de Python, por lo que no tengo ningún consejo para las personas que mencionaron en sus comentarios que esto no puede firmar "python.app".
fuente
Esto se relaciona con si la aplicación está firmada o no. Si no está firmado, no se recordará la preferencia.
Para ver si una aplicación está firmada, haga esto en la Terminal:
Para Eclipse, el mío dice que no está firmado en absoluto. No puedo comentar más sobre cómo firmar la aplicación, ya que no me he molestado en hacerlo, pero esta respuesta en superusuario lo cubre:
https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself#300841
fuente
Sin embargo, solo una nota, si está utilizando un entorno virtual, asegúrese de firmar la aplicación que se está utilizando para el entorno. Sé que esto es obvio, pero aún así hay que decirlo.
fuente
Aprecio que este es un viejo Q & A, pero fue el primer éxito en Google para mí cuando tuve el mismo problema. Solo quería agregar algo para otros que puedan aterrizar aquí.
Para ejecutar cualquiera de los comandos de codeign descritos aquí, es necesario tener instaladas las herramientas de línea de comandos de xcode. Sin estos, uno recibe un mensaje de error:
Para solucionar esto, instale las herramientas con:
Hubiera comentado sobre la publicación de ahall, pero no tengo los puntos de reputación para hacerlo.
fuente
Recibí este cuadro de diálogo (Canon ccpd) cada vez que inicié mi computadora. Abra el firewall> seguridad y privacidad> desbloquee para habilitar los cambios> haga clic en el botón "Habilitar modo oculto"> haga clic en el botón "Bloquear todas las conexiones entrantes".
No más cuadro de diálogo irritante del controlador de impresora Canon después de eso.
fuente
Intenté todo lo anterior en Mac 10.13 y nada funcionó.
Al final, escribí un script que se ejecutó al cerrar la sesión adjunto al gancho de inicio de sesión que apagó el firewall, por lo que cuando inició sesión ya no necesitaba permiso, luego, usando el programa de inicio retardado, ejecuté otro script que activó el firewall.
Todo bien ahora
fuente
Mi situación involucra dos copias de Eclipse instaladas en MacOS Mojave 10.14.5. La primera copia fue autorizada con el firewall de MacOS. La segunda copia siempre presentaría el mensaje "aceptar conexiones entrantes". Elegir "Aceptar" continuaría presentando el mensaje después de cada reinicio, aparentemente la configuración del firewall no se actualizó.
La solución fue abrir las Preferencias del Sistema MacOS -> Seguridad y Privacidad -> Firewall, desbloquear la pantalla, Opciones de Firewall. Seleccione Eclipse.app "Permitir conexiones entrantes" y elimínelo con el botón "-". La próxima vez que seleccioné "Permitir" en el mensaje "aceptar conexiones entrantes" de Eclipse fue la última.
fuente
La solución para mí fue simplemente desactivar el firewall por completo. Es extremadamente común crear piezas de software habilitadas para la web que, por supuesto, no están firmadas porque las está compilando de forma nativa.
Abra el centro de atención con CMD + Barra espaciadora y busque "privacidad" y seleccione "Seguridad y privacidad". Luego cambie a la pestaña "Firewall" y desactive el firewall allí.
fuente