Middleware 12c : SSL via OPSS Keystore Service

Initialement, nous avons souvent l’habitude de mettre en place la configuration SSL de nos serveurs via les mécanismes habituels : création par commande de keystores, association avec les serveurs, commandes keytool en vrac, pas d’interface uniquement une console…
Cette configuration a toujours été délicate, pas toujours intuitive, et personnellement, j’ai toujours eu l’impression que c’était quelque chose de bien compliqué pour ce que c’était.
Récemment, j’ai pu découvrir dans l’Enterprise Manager (EM) de notre infrastructure middleware, une interface relativement user-friendly permettant la mise en place de la configuration des keystores via OPSS.
Tout de suite, sa simplicité m’a attiré, et j’ai donc tenté de configurer la partie SSL de mes serveurs middleware 12c de cette façon !

OPSS en bref

OPSS (Oracle Platform Security Services) est une plateforme permettant la gestion de la sécurisation des applicatifs déployés sur les plateformes supportées.
Cette plateforme est notamment la partie sous-jacente qui fournit la sécurité pour les produits Fusion Middleware (Weblogic, SOA, …). Elle supporte notamment la mise en place de solutions pour :

  • Authentification
  • Autorisations
  • User/Role
  • Accès aux clefs et certificats
  • … et bien d’autres !

Voici un petit schéma présentant l’architecture d’OPSS, issu de la documentation Oracle :
opss_architecture
 

Schéma de l’architecture OPSS

Ce schéma présente notamment des éléments relatifs à la sécurisation associée à Fusion Middleware, dans la partie Security Service Providers. Ces providers implémentent des interfaces (SSPI) qui permettent de fournir des modules qui pourront se plugguer à OPSS pour fournir de nouveaux éléments de sécurisation.
On remarque également que le stockage des éléments de sécurisation pourront s’appuyer sur divers éléments pour sauvegarder les éléments (database, file, LDAP).
Dans le cadre de cet article, nous allons principalement nous intéresser à la brique « Trust ».

Configuration KSS

Avec OPSS, il est donc possible de mettre en place tout le nécessaire pour configurer le SSL de nos serveurs. Pour cela, un nouveau type de keystores fait son apparition, en plus des habituels JKS (Java KeyStores) : KSS ou KeyStore Service.
Hormis leur nommage, leur utilisation ne va pas être grandement différente de ce que l’on peut connaitre des JKS. Il s’agit d’un ensemble de certificats qui sont regroupés dans une même unité de stockage.
L’interface pour leur configuration est accessible dans l’EM via clic-droit sur le domaine (Security > Keystores) :
opss_acces_kss_definition
 

Accès dans l’EM à l’interface d’administration

Quelques éléments au niveau de l’organisation :

  • Application Stripe : représente en quelques sortes un dossier dans lequel on pourra définir des éléments keystores. Pratique pour organiser les éléments.
  • Keystore : à définir dans les différents « application stripes ».

On pourra gérer à l’intérieur de chacun des Keystores, de type KSS, les éléments habituels de communication SSL et présents dans les keystores :

  • Clefs asymétriques
  • Clefs symétriques
  • Certificats de confiance

Le tout se fait de manière graphique, via des imports de certificats. On a également la possibilité de voir facilement les éléments présents sans passer par des commandes « barbares » type keytool.
opss1

Vision stripe / keystore dans l’interface

opss2
 

Vision d’un certificat via l’interface

 
Bien sûr, les Keystores ne seront pas accessibles à tous et pourront être protégés par un mot de passe, ou par des permissions.

Configuration Serveurs

Une fois KSS configuré, il faut encore définir que nos serveurs vont les utiliser !
Pour cela, rien de bien compliqué et de bien différent d’une configuration plus habituelle par JKS.
Il suffira de configurer la partie les onglets Configuration/Keystores et Configuration/SSL des serveurs cibles pour mettre en place la configuration voulue.
L’URL utilisée pour la mise en place sera de type KSS tel que :

kss://[application stripes path]/[keystore name]

Il ne reste plus ensuite qu’à redémarrer les serveurs concernés pour leur permettre d’utiliser cette nouvelle configuration !

Conclusion

Dans le cadre d’une infrastructure Middleware, on a donc la possibilité de mettre en place une configuration SSL « lisible », facilement consultable et administrable, qui, je trouve, est une nette amélioration de ce que je pouvais voir sur ce point auparavant.
La plateforme OPSS permettrait de faire bien plus que cette simple utilisation pour la configuration des keystores SSL.
Actuellement, je n’ai pas investigué plus profondément ces autres problématiques, mais cela sera certainement un des points que j’aborderais bientôt.

Sources