2013-02-26 6 views
1

Contexte:
Je travaille sur un projet qui implique l'authentification du client (via un certificat client). Nous essayons de lancer une application tierce qui authentifie d'abord le certificat client, puis lance son application.
Nous utilisons Java et SSL hanshake, et notre serveur client est Weblogic 10.x. Le certificat client est au format PKCS12 (ne peut pas changer cela)
Ceci est le morceau de code pour la présentation du certificat:
Certificat client utilisant Weblogic

System.setProperty("javax.net.ssl.keyStore","MyPath/cert.pfx"); 
System.setProperty("javax.net.ssl.keyStorePassword","MyPwd"); 
System.setProperty("javax.net.ssl.keyStoreType","PKCS12"); 
url.openConnection(); 

Tout cela fonctionne assez bien d'un standalone. Le problème commence quand nous mettons cela sur weblogic. Parfois, cela fonctionne, parfois 'Certificat client absent' (http 403.7) est retourné. J'ai essayé différentes combinaisons (y compris la configuration de custome keystore sur la console weblogic) mais rien ne semble fonctionner. N'importe quelle idée pourquoi weblogic ignorerait complètement les paramètres de SSL (il ne jette pas une erreur même si je mets keystore à un dossier inexistant)? System.setProperty pour SSL semble inutile sur weblogic!

Répondre

1

Enfin trouvé la solution! Weblogic semble dépasser les configurations de keystore si cela est fait par Java comme ci-dessus. La chose qui a fonctionné pour moi était de configurer les paramètres SSL au niveau de la JVM, au démarrage de la logique Web.
Pour le faire fonctionner, je viens d'ajouter ces options Java dans le démarrage script pour weblogic:

-Djavax.net.ssl.keyStore=MyPath/cert.pfx 
-Djavax.net.ssl.keyStoreType=MyPwd 
-Djavax.net.ssl.keyStorePassword=PKCS12 

Restarted weblogic et SSL a travaillé beaucoup depuis lors :)

1

En Weblogic 12c Vous devez également ajouter le paramètre afin d'indiquer au serveur weblogic d'utiliser les gestionnaires Sun Http à la place des siens. Par conséquent, vous avez besoin des paramètres Java VM suivants:

-Djavax.net.ssl.keyStore=MyPath/cert.pfx 
-Djavax.net.ssl.keyStoreType=PKCS12 
-Djavax.net.ssl.keyStorePassword=MyPwd 
-DUseSunHttpHandler=true 
Questions connexes