2010-05-05 5 views
1

Bien que je sois familier avec HTTPS et le concept de SSL, j'ai récemment commencé un développement et j'ai trouvé que j'étais un peu confus.Utilisation de HttpClient avec SSL et certificats

L'exigence était que j'écrive une petite application Java qui s'exécute sur une machine attachée à un scanner. Quand un document est scanné, il est récupéré et le fichier (généralement PDF) envoyé sur Internet à notre serveur d'application qui le traitera ensuite. J'ai écrit l'application en utilisant les bibliothèques Apache Commons et HTTPClient.

La deuxième exigence était de se connecter via SSL, nécessitant un certificat. En suivant les instructions sur la page HTTPclient, j'utilise AuthSSLProtocolSocketFactory depuis la page des contributions.

Le constructeur peut prendre un fichier de clés, un mot de passe de fichier de clés, un fichier de clés certifiées et un mot de passe de fichier de clés certifiées. En tant que test initial, notre DBA a activé SSL sur l'un de nos serveurs Web de développement et m'a fourni un fichier .p12 qui, une fois importé dans IE, me permet de me connecter avec succès.

Je suis un peu confus entre les keystores et les truststores et les étapes que je dois suivre en utilisant l'outil keytool. J'ai essayé d'importer le p12 dans un fichier keystore mais obtenir l'erreur:

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

J'ai suivi une suggestion d'importer le p12 dans Internet Explorer et l'exportation comme .cer que je peux importer ensuite avec succès dans un magasin de clés. Quand je l'offre cela comme un argument keystore du AuthSSLProtocolSocketFactory je reçois un errror vide de sens, mais si je l'essayer comme truststore il semble que cela le lit bien, mais finalement, je me

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

Je ne suis pas sûr si j'ai raté quelques étapes, je suis mal compris SSL et l'authentification mutuelle tout à fait ou c'est une mauvaise configuration sur le côté serveur.

Est-ce que quelqu'un peut fournir des suggestions ou me diriger vers des ressources qui pourraient m'aider à comprendre cela?

Répondre

1

assurez-vous que votre fichier de certificat n'a rien avant et après ceux-ci.

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

----- CERTIFICAT DE FIN -----

Questions connexes