Voici les différentes étapes pour mettre en place un appel web service sécurisé par du two-way SSL sur un Oracle Service Bus (11.1.1.7).
Pré-requis
- Certificat de votre serveur/environnement : RQT.cer
- Certificat du client à appeler : client-ssl.cer
- Votre clé public : public-key.csr
- Votre clé privée : private-key.key
- Certificat de confiance des serveurs clients : client-trust.cer
Configuration serveur
Je me suis personnellement créer un alias pour l’outil keytool (outil permettant de gérer le keystore et les certificats) afin d’aléger la lisibilité des commandes :
# ---------------
alias keytool = $bea_home/jdk/bin/keytool
cd bea_home/wlserver_10.3/lib
# ---------------
# Ajout du certificat de confiance du client dans le trust-keystore de weblogic
keytool -import -file client-trust.cer -keystore DemoTrust.jks -storepass changeit
# ---------------
# Conversion du certificat client en format .PEM
openssl x509 -inform der -in client-ssl.cer -out client-ssl.pem
# ---------------
# Génération du pkcs12 pour englober la clé privée et le certificat .PEM dans notre jks et l'injecter dans un keystore de type PKCS12
# Un mot de passe sera demandé pour la génération du keystore, veillez à le noter
openssl pkcs12 -export -inkey private-key.key< -in RQT.cer -name clientcertssl -certfile client-ssl.pem-out RQT.p12
# ---------------
# Ajout du certificat PKCS12 dans notre keystore dédié pour le flux Web Service
keytool -importkeystore -srckeystore RQT.p12 -srcstoretype PKCS12 -destkeystore osb.jks -deststoretype JKS
# ---------------
Une fois terminé : redémarrez votre serveur weblogic.
Configuration Weblogic
Il s’agit maintenant de s’identifier sur le weblogic et de vérifier l’activation des options suivantes :
- « Servers » -> *servername* -> « SSL » -> « advanced » -> cochez Use JSSE SSL
- « Servers » -> *servername* -> « SSL » -> « advanced » -> décochez Use server certs
- « Servers » -> *servername* -> « SSL » -> « advanced » -> hostname verification : NONE
Configuration OSB
Depuis votre console OSB (sbconsole), il suffira maintenant d’accéder à votre « key provider » utilisé par votre proxy service, de l’éditer, puis de lui fournir votre alias « clientcertssl » et le mot de passe noté plus haut.
Un dernier redémarrage peut s’avérer nécessaire.