Pregunta

Mientras que he estado familiarizado con HTTPS y el concepto de SSL, que han comenzado recientemente un cierto desarrollo y se encontró que estoy un poco confundido.

El requisito era que escribo una pequeña aplicación Java que se ejecuta en una máquina unidos a un escáner. Cuando se escanea un documento esto se recogió y el archivo (normalmente PDF) enviada por Internet a nuestro servidor de aplicaciones que luego procesarlo. He escrito la aplicación que utiliza las bibliotecas Apache Commons y HTTPClient.

El segundo requisito era conectar a través de SSL, lo que requiere un certificado. Siguiendo la orientación de la página HttpClient estoy usando AuthSSLProtocolSocketFactory desde la página de contribuciones.

El constructor puede tener un almacén de claves, la contraseña del almacén de claves, y almacén de confianza del almacén de confianza contraseña. Como una prueba inicial de nuestro DBA habilitado SSL en uno de nuestros servidores web y de desarrollo me proporcionó un archivo .p12 que cuando se Importé en IE me permite conectar con éxito.

Estoy un poco confundido entre los almacenes de claves y almacenes de confianza y qué pasos tengo que tomar el uso de la herramienta de claves. He intentado importar el p12 en un archivo de almacén de claves, pero obtener el error:

keytool error: java.lang.Exception: Input not an X.509 certificate

Me siguió una sugerencia de la importación de la p12 en Internet Explorer y exportación como .cer que luego se puede importar con éxito en un almacén de claves. Cuando yo proporciono esto como un argumento de almacén de claves de la AuthSSLProtocolSocketFactory Puedo obtener un errror sin sentido, pero si lo intento como un almacén de confianza que parece que lo lee bien, pero en última instancia consigo

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

estoy seguro si me he perdido algunos pasos, estoy mal entendido SSL y autenticación mutua por completo o éste es de fallos de configuración en el servidor.

Puede cualquier persona proporcionar sugerencias o que me señale hacia los recursos que podrían ayudar a mí a resolver esto por favor?

¿Fue útil?

Solución

El almacén de claves tiene sus claves privadas y certificados asociados. El almacén de confianza mantener los certificados de confianza y por lo tanto que se puede utilizar para la ruta de certificados y la verificación.

Estos son algunos enlaces que pueden ser útiles:

java.lang.Exception: Entrada no un X.509 certificado

clave privada y el certificado de importación en el almacén de claves de Java

Configuración de claves y almacenes de confianza

Otros consejos

asegurarse de que su archivo de certificado no tiene nada antes y después de éstos.

----- BEGIN CERTIFICATE -----

----- END CERTIFICATE -----

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top