2008-09-24 11 views
16

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á instalada, y para mí eso simplemente parece estar mal.¿Cómo firmas tus extensiones de Firefox?

Tengo un script de compilación simple que crea mi archivo .xpi desde fuentes, y tengo una copia con licencia de PKZip (que de acuerdo con una serie de tutoriales es necesaria para compilar un archivo xpi firmado que requiere Firefox), pero no he encontrado una forma de obtener un certificado gratis/barato que realmente funcione o un conjunto de instrucciones que lo solucionen.

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

¿Cómo ha resuelto esto? ¿Qué debo hacer para firmar de forma automática y segura mis extensiones cuando están compiladas?

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

alt text http://www.sciencecartoonsplus.com/images/miracle3.gif

Respuesta

3

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

He escrito algunos mensajes en el XPI Forma ty un howto para signing usando una herramienta de línea de comandos java.

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

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

+0

Esto es realmente útil, gracias, excelente información. ¿Es el certificado de Comodo el "código de firma" que cuesta alrededor de £ 110 por un año? –

+0

Finalmente tengo suficiente representante para responderte;) Eso es todo.Creo que lo conseguí un poco más barato el año pasado al confundir el sitio web para permitirme comprar en dólares. El tipo de cambio con el euro fue bastante favorable entonces. Puede encontrar revendedores que lo ofrecen más barato, creo que vi algunos en otra respuesta aquí. – koregan

+0

Solo para FYI, XPISigner tiene algunos problemas con Firefox 4 y algunas CA. – koregan

3

Lo que encontré en Google fue la siguiente: http://www.mercille.org/snippets/xpiSigning.php que establece:

Si no desea que un certificado comercial o puede' t permitirse uno, Ascertia puede proporcionarle un certificado gratuito, pero convertirlo en un certificado de firma de código requiere un poco de trabajo adicional , que he detallado en another page.

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

El más barato universalmente soportado (Mozilla, Java, Microsoft) Certificado parece ser la oferta Comodo Instant-SSL. Puede obtener un certificado gratuito para los desarrolladores de fuente abierta de Unizeto Certum, pero su certificado raíz solo está presente en Mozilla Firefox y Opera (no Java o Microsoft).

+0

Desafortunadamente, no está claro * qué * certificado en Ascertia obtener, y la "otra página" está casi en blanco en este momento. Me gustaría algo un poco más específico, por favor :) –

+0

Sí, también he mirado la segunda página, es por eso que compré PKZip. ¿Cómo obtengo exactamente el tipo de certificado de Unizeto? ¿Cuál es la URL para obtenerlo? –

+0

Sí, traté de dar seguimiento a esto también, y tampoco pude encontrar el paso 2. – dlamblin

1

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

1

Tucows vende certificados de firma de código de Comodo $ 75 por año, eso es tan barato como se pasa de lo que puedo decir (https://author.tucows.com/, "Código de certificados de firma" sección). Todavía es demasiado dinero para gastar, así que no probé cómo funciona. No es que yo pueda probar, por lo que puedo decir que necesita 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, ya que tendría que importar su certificado raíz antes de ver un efecto.

4

Evite los certificados de firma de GoDaddy ya que el certificado CA intermedio necesario no está en Firefox por defecto. C = US, ST = Arizona, L = Scottsdale, O = \ GoDaddy.com, Inc., OU = http://certificates.godaddy.com/repository,CN=Go Autoridad de Certificación Secure papá, número de serie = 07969287'

Si firma con él sus usuarios tendrán la firma de errores con eso.

p. Ej.

SIgning could not be verified. -260

+0

Esto parece ser un problema. Anotado en esta página https://developer.mozilla.org/en/Signing_a_XPI que lleva a esta entrada de error https://bugzilla.mozilla.org/show_bug.cgi?id=321156. –

1

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 se describen con detalle en here.

Una vez que tenga el certificado, haga lo siguiente:

  • obtener la clave privada de su navegador (por ejemplo descargarlo como p.12 de su llavero - no establezca una contraseña) y convertirlo en formato PEM a través de openssl pkcs12 -in key.p12 -nodes -out private.key -nocerts
  • Abra el archivo .pem que ha descargado desde Unicert, agregar su clave privada debajo de ella, y la Public Key of Certum Level III CA de here debajo de la clave privada, por lo que se ve así:

    -----BEGIN CERTIFICATE----- [your certificate from Certum] -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- [the private key you just converted from the .p12 file from your keychain] -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- [the Certum Level III CA public key you just downloaded] -----END CERTIFICATE-----

  • Guardar este archivo como cert_with_key_and_ca.pem
  • Instalar xpisign.py con pip install https://github.com/nmaier/xpisign.py/zipball/master
  • Run xpisign -k cert_with_key_and_ca.pem unsigned.xpi signed.xpi
  • Arrastre & Drop the signed.xpi en Firefox y debería ver el nombre del autor, donde antes había un (Autor no verificado) mensaje al lado del nombre de la extensión.