Descargar archivos a través de HTTPS con certificado SSL no verificado

Primero la teoría ... Como dice la Guía de referencia de JSSE :

NOTA IMPORTANTE: El JDK se entrega con un número limitado de certificados raíz de confianza en el archivo / lib / security / cacerts. Como se documenta en keytool, es su responsabilidad mantener (es decir, agregar / eliminar) los certificados contenidos en este archivo si lo utiliza como un almacén de confianza.

Dependiendo de la configuración del certificado de los servidores que contacte, es posible que necesite agregar certificados raíz adicionales. Obtenga los certificados raíz específicos necesarios del proveedor correspondiente.

Los usuarios deben mantener la lista de certificados de CA ellos mismos. Desafortunadamente, muchas personas no sabrán cómo hacerlo. Podrían usar el cacertsarchivo de otro JRE (más reciente) en su propia instalación.

Podría usar un administrador de confianza que confíe en cualquier certificado y usarlo específicamente para esa conexión, pero esa no es una buena idea, ya que abre la conexión a posibles ataques MITM. Hay suficientes ejemplos de código para esta solución insegura.

La mejor solución, si desea confiar en un certificado específico, es cargarlo correctamente utilizando un almacén de confianza específico, como se describe en esta respuesta. Incluso puede cargar este almacén de confianza desde un InputStreamcargador de clases si desea agruparlo con su aplicación.

Alternativamente, donde sea posible, puede usar el almacén de confianza del sistema operativo directamente. En Windows, puede cargar el Windows-ROOTalmacén de claves como se describe en este artículo . En OSX, puede cargar a KeychainStore.

Respuesta 1

Estoy haciendo una versión muy básica del viejo juego Asteroids en javaFX para volver a la programación. Al generar asteroides y viñetas (que son objetos de las clases) los mantengo en una Lista. Soy ...

¿Alguien sabe de alguna manera en powermock que pueda probar un constructor y burlarse de los métodos que el constructor llama? es decir, tengo una clase como esta; public class myClass {public myClass () {...

Tengo un proyecto en Intellij IDEA 11.1.3 que funciona y es totalmente increíble. Sin embargo, ahora quiero exportarlo a un archivo WAR, así que fui Módulo-> Grails-> ejecutar objetivo -> <prueba de guerra> y ...

Estoy usando una carpeta para enlazar y validar un TextField y un ComboBox. Para recibir notificaciones de los cambios de validación, agrego un StatusChangeListener al cuaderno. El oyente verifica si .hasValidationErrors () ...