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 en open
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 de hello.c
:-)), y se pudo verificar con codesign -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".