Pregunta

He desarrollado un par de extensiones para Firefox, y me molesta que sea tan difícil conseguir la extensión firmada. Cuando una extensión no está firmada, dice " Autor no verificado " cuando está instalado, y para mí eso simplemente se ve mal.

Tengo un script de compilación simple que construye mi archivo .xpi a partir de fuentes, y tengo una copia con licencia de PKZip (que de acuerdo con una serie de tutoriales es necesario para compilar un archivo xpi firmado que Firefox requiere), pero no tengo No encontré una manera de obtener un certificado gratuito / barato que realmente funcione o un conjunto de instrucciones que hagan el truco.

Ya que mis extensiones son gratuitas, no quiero gastar $ 400 en un certificado comercial, pero no me importa gastar $ 50 o más para hacerlo. Tengo máquinas Linux y Windows, aunque mi script de compilación actualmente usa Windows y sería más conveniente de usar.

¿Cómo has resuelto esto? ¿Qué debo hacer para firmar de forma automática y segura mis extensiones cuando se crean?

Editar: Aprecio los éxitos de Google, pero los pasos que proporcionan no son lo suficientemente completos sobre cómo obtener un certificado que funcione. La sensación que tengo me recuerda a este clásico:

alt text

¿Fue útil?

Solución

He usado el certificado de comodo para firmar XPIs. Era la opción más barata en ese momento.

He escrito algunas publicaciones en XPI Forma t y un howto para firma utilizando una herramienta de línea de comandos de java.

Mi herramienta XPISigner simplifica considerablemente el proceso y se integra en los sistemas de compilación.

He eliminado la herramienta porque ya no funciona con FF4 o superior. La fuente está disponible en http://code.google.com/p/xpisigner/ si cualquiera tiene ganas de arreglarlo.

Otros consejos

Evite los certificados de firma de códigos de GoDaddy ya que el certificado de CA intermedio necesario no está en Firefox de forma predeterminada.     C = EE. UU., ST = Arizona, L = Scottsdale, O = GoDaddy.com \, Inc., OU = http://certificates.godaddy.com/repository,CN=Go Daddy Secure Certification Authority, SERIALNUMBER = 07969287 '

Si firma con él, sus usuarios obtendrán errores de firma con él.

por ejemplo

SIgning could not be verified. -260

Lo que encontré con Google fue esto: http://www.mercille.org/snippets /xpiSigning.php que dice:

  

Si no quieres un comercial   certificado o no puede pagar uno,    Ascertia puede proporcionarle una   certificado, pero convirtiéndolo en un   certificado de firma de código requiere alguna   trabajo extra, que he detallado en    otra página .

No puedo decir que lo haya intentado. Y en http://developer.mozilla.org/en/Signing_a_XPI dice:

  

El mas barato universalmente soportado   Certificado (Mozilla, Java, Microsoft)   Parece ser el Comodo Instant-SSL   ofrecimiento. Puedes conseguir una gratis   Certificado para desarrolladores de código abierto.   de Unizeto Certum, pero su raíz   El certificado solo está presente en Mozilla.   Firefox y Opera (no Java o   Microsoft).

Sí, la firma de XPI desafortunadamente es bastante trivial. Aconsejaría buscar / publicar en los grupos de noticias de mozilla (dev-extensions, propietarios del proyecto @ mozdev, irc.mozilla.org) y también tratar de ponerse en contacto con las personas que lo hicieron funcionar.

Tucows vende certificados de firma de código Comodo por $ 75 por año, eso es lo más barato que puedo decir de lo que puedo decir ( https : //author.tucows.com/ , " Certificados de firma de código " sección). Todavía es demasiado dinero para que lo gaste, así que no probé cómo funciona. No puedo intentarlo, por lo que puedo decirte que necesitas ser una organización registrada para comprar un certificado de Comodo.

En cuanto a Ascertia, obtener un certificado es bastante fácil ( http: // www. ascertia.com/onlineCA/Issuer/CerIssue.aspx ) - pero dicho certificado es tan inútil como un certificado autoemitido porque necesitaría importar su certificado raíz antes de ver un efecto.

Si tiene un proyecto de código abierto, puede obtener un certificado de firma de código gratuito de Unizeto.

Los pasos para obtener el certificado en sí se describen en detalle aquí .

Una vez que tenga el certificado, haga lo siguiente:

  • obtenga la clave privada de su navegador (p. ej., descárguela como .p12 desde su llavero - no establezca una contraseña) y conviértala en formato PEM a través de openssl pkcs12 -in key.p12 -nodes -out private. clave -nocerts
  • Abra su archivo .pem que descargó de Unicert, agregue su clave privada debajo y la Clave pública de Certum Level III CA de aquí debajo de la clave privada, para que se vea así:

    ----- BEGIN CERTIFICATE ----- [su certificado de Certum] ----- CERTIFICADO FINAL ----- ----- COMIENZA LA CLAVE RSA PRIVADA ----- [la clave privada que acaba de convertir del archivo .p12 de su llavero] ----- FIN DE LA CLAVE RSA PRIVADA ----- ----- COMENZAR CERTIFICADO ----- [la clave pública de Certum Level III CA que acabas de descargar] ----- CERTIFICADO FINAL -----

  • Guarde este archivo como cert_with_key_and_ca.pem
  • Instale xpisign.py con pip install https://github.com /nmaier/xpisign.py/zipball/master
  • Ejecute xpisign -k cert_with_key_and_ca.pem unsigned.xpi signed.xpi
  • Arrastrar & amp; Coloque el signed.xpi en Firefox y debería ver el nombre del autor donde antes había un mensaje (Autor no verificado) junto al nombre de la extensión.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top