2009-08-19 17 views
5

He generado un certificado autofirmado para mi aplicación Java usando keytool. Sin embargo, cuando voy al sitio en un navegador siempre aparece con una advertencia, diciendo que este sitio no es dueño del certificado, ¿hay alguna forma de auto firmar/certificar un certificado, así que no recibiré estas advertencias en un ¿navegador? Tanto el servidor como el navegador se encuentran en el mismo host y navego al sitio usando "http://localhost/". No quiero agregar una excepción al navegador porque tengo pruebas que se ejecutan en una gran granja de servidores, por lo que es excesivo agregar una excepción a todos los navegadores en todas las máquinas de construcción.¿Puedo crear un certificado autofirmado en Java en el que los navegadores web confíen automáticamente?

Respuesta

4

También podría configurar una Autoridad de certificación (CA) autofirmada utilizando OpenSSL o posiblemente su herramienta Java. A continuación, puede usar esa CA para firmar varios certs de servidor.

Aún necesitará confiar manualmente en su firma autofirmada en todos los clientes que acceden a sus servidores de prueba, pero al menos solo debe confiar en una CA raíz, en lugar de un conjunto de certificados de servidor autofirmados individuales .

Otra opción es consultar CAcert.

+0

RichieHindle es correcto. Este método no eliminará las advertencias en el navegador. – shosti

+0

Buena respuesta Brian – sixtyfootersdude

19

No, no puede. También podría preguntar "¿Cómo puedo hacer un certificado falso para hsbc.com?"

Hay dos maneras de obtener un navegador para aceptar un certificado:

  • Comprar un certificado para un dominio de una autoridad de confianza (que significa demostrando que la autoridad que es el propietario de ese dominio) y luego utilizar esa dominio como el nombre de los servidores de prueba
  • Instale su certificado de firma en los navegadores, para que se convierta efectivamente en una autoridad de confianza para ese navegador.

Sin tocar los navegadores, no hay otra manera de hacerlo, ¿cómo podría ser, si Internet debe permanecer seguro?

+1

+1 para aplicar la pista de palo vigorosamente :-) –

+5

@Corehpf - ¿quieres una respuesta imaginativa o la verdad? No hay forma de que los navegadores acepten certificados o certificados autofirmados firmados por un certificado de CA no raíz ... además de instalarlos o el certificado de CA en sus navegadores. –

1

¿El certificado que ha creado para localhost o test.textbox.com? Si crea un certificado para el FQDN test.textbox.com, así es como debe llegar al servidor para no recibir esos errores, siempre que el certificado esté firmado correctamente. No puede generar un certificado para el FQDN y luego usar una IP o un alias (localhost) para acceder sin advertir que las cosas no coinciden correctamente. ¿O estoy malinterpretando tu problema?

+0

Nota: Obviamente test.testbox.com es solo un ejemplo que utilicé para esto. – MattC

+0

Está haciendo certs autofirmados (lo que significa que no se remonta a ninguna de las CA conocidas), por lo que, por definición, no puede aceptarlos automáticamente. Para que el navegador acepte automáticamente un certificado, debe rastrearse hasta una CA de la que el navegador tenga conocimiento. –

+0

Sí, pero el error que se queja de que el sitio no posee el certificado indica que el nombre de host para el que se creó el certificado y lo que sea que esté usando para acceder a ese sitio son dos cosas diferentes. Dijo que está usando localhost y estoy apostando a que el certificado es para el nombre de host real del servidor. Eso causará banderas rojas en la mayoría de los navegadores como un problema de seguridad. – MattC

1

Haga el certificado para "localhost" en su lugar. Debe coincidir con el nombre de host que tiene en la URL.

Todavía le molestarán ya que no se confía en el certificado, pero ese es otro problema.

Cuestiones relacionadas