Programmation d'une configuration SSL sortante grâce à l'API JSSEHelper

WebSphere Application Server comporte un programme qui permet de désigner les configurations SSL (Secure Sockets Layer) à utiliser avant d'établir une connexion sortante. L'interface com.ibm.websphere.ssl.JSSEHelper fournit un jeu complet d'interfaces de programmation d'application (API) pour gérer les configurations SSL.

Pourquoi et quand exécuter cette tâche

Suivez la procédure ci-après pour votre application lors de l'utilisation de l'API JSSEHelper pour établir un objet de propriétés SSL sur l'unité d'exécution à utiliser par le module d'exécution. Certaines de ces API ont des exigences d'autorisation de type Java™ 2 Security. Pour plus d'informations sur les autorisations requises par votre application, voir la documentation des API JSSEHelper.

Sélectionnez l'approche qui convient le mieux à votre situation de connexion lorsque vous précisez par programme les configurations SSL (Secure Sockets Layer) à utiliser avant d'effectuer une connexion sortante.

Procédure

  1. Obtenez une instance de l'API JSSEHelper.
    com.ibm.websphere.ssl.JSSEHelper jsseHelper  = com.ibm.websphere.ssl.JSSEHelper.getInstance();
  2. Extrayez les propriétés SSL de la configuration WebSphere Application Server ou utilisez celles fournies par votre application. Utilisez l'une des options suivantes.
    • Par sélection de la direction d'un nom d'alias, dans la même portée de gestion ou une portée supérieure comme dans l'exemple suivante :
      try 
      { 	String alias = "NodeAServer1SSLSettings";
        // As specified in the WebSphere SSL configuration 	Properties
       sslProps = jsseHelper.getProperties(alias); }
       catch (com.ibm.websphere.ssl.SSLException e)
       { 	e.printStackTrace();   // handle exception }
    • Par l'utilisation de l'API getProperties pour la sélection de programmation, de direction, de dynamique sortant ou de portée de gestion (en fonction des règles de priorité et d'héritage). Le module d'exécution SSL utilise l'API getProperties pour déterminer quelle configuration SSL utiliser pour un protocole particulier. Cette décision est fondée sur l'entrée (sslAlias et connectionInfo) et la portée de gestion depuis laquelle la propriété est appelée. L'API getProperties prend les décisions dans l'ordre suivant :
      1. L'API vérifie dans l'unité d'exécution l'existence des propriétés.
      2. L'API vérifie la présence d'une configuration sortante dynamique correspondant aux ENDPOINT_NAME, REMOTE_HOST et/ou REMOTE_PORT.
      3. L'API vérifie si la propriété facultative sslAlias est spécifiée. Vous pouvez définir tout protocole comme étant direct ou géré en central. Lorsqu'un protocole est configuré comme étant direct, le paramètre sslAlias est null. Lorsqu'un protocole est configuré comme étant géré en central, le paramètre sslAlias est aussi null.
      4. Si aucune sélection n'est effectuée, l'API choisit la configuration sortante dynamique fondée sur la portée de gestion à partir de laquelle il a été appelé. Si la configuration dynamique sortante n'est pas définie dans la même portée, il cherche à en localiser une dans la hiérarchie.

      Le dernier choix est la configuration SSL à portée de cellule (dans WebSphere Application Server, Network Deployment) ou la configuration SSL à portée de noeud (dans Base Application Server). Le paramètre com.ibm.websphere.ssl.SSLConfigChangeListener est notifié lorsque la configuration SSL choisie par un appel à l'API getProperties change. Le protocole peut alors à nouveau appeler l'API pour obtenir de nouvelles propriétés comme dans l'exemple suivant :

      try { 	String sslAlias = null;
       // The sslAlias is not specified directly at this time. 	String host = "myhost.austin.ibm.com";
       // the target host 	String port = "443";
       // the target port  	HashMap connectionInfo = new HashMap();
       connectionInfo.put(JSSEHelper.CONNECTION_INFO_DIRECTION,    JSSEHelper.DIRECTION_OUTBOUND);
       connectionInfo.put(JSSEHelper.CONNECTION_INFO_REMOTE_HOST, host);
       connectionInfo.put(JSSEHelper.CONNECTION_INFO_REMOTE_PORT,    Integer.toString(port));
      	connectionInfo.put(JSSEHelper.CONNECTION_INFO_ENDPOINT_NAME,    JSSEHelper.ENDPOINT_IIOP);
                  	java.util.Properties props = jsseHelper.getProperties(sslAlias,    connectionInfo, null); }
       catch (com.ibm.websphere.ssl.SSLException e)
       { 	e.printStackTrace();   // handle exception }
    • Par la création de vos propres propriétés SSL et la transmission de celles-ci à l'unité d'exécution, comme dans l'exemple suivant :
      try {
      	// This is the recommended "minimum" set of SSL properties. The trustStore can
       	// be the same as the keyStore. 	Properties sslProps = new Properties();
      	sslProps.setProperty("com.ibm.ssl.trustStore", "some value");
      	sslProps.setProperty("com.ibm.ssl.trustStorePassword", "some value");
      	sslProps.setProperty("com.ibm.ssl.trustStoreType", "some value");
      	sslProps.setProperty("com.ibm.ssl.keyStore", "some value");
      	sslProps.setProperty("com.ibm.ssl.keyStorePassword", "some value");
      	sslProps.setProperty("com.ibm.ssl.keyStoreType", "some value");
       	jsseHelper.setSSLPropertiesOnThread(sslProps); }
       catch (com.ibm.websphere.ssl.SSLException e) 
      { 	e.printStackTrace();   // handle exception } 
  3. Utilisez l'API JSSEHelper.setSSLPropertiesOnThread(props) pour définir l'objet Properties sur l'unité d'exécution de sorte que le module d'exécution choisisse et utilise la même API JSSEHelper.getProperties. Vous pouvez aussi obtenir des propriétés d'une unité d'exécution après leur définition par l'API jsseHelper.getSSLPropertiesOnThread() API, comme dans l'exemple suivant :
    try 
    { 	Properties sslProps = jsseHelper.getProperties(null,    connectionInfo, null);
    jsseHelper.setSSLPropertiesOnThread(sslProps); }
     catch (com.ibm.websphere.ssl.SSLException e) 
    { 	e.printStackTrace();   // handle exception }
  4. Lorsque la connexion est terminée, vous devez effacer les propriétés SSL de l'unité d'exécution en transmettant la valeur null à l'API setPropertiesOnThread.
    try
     { 	jsseHelper.setSSLPropertiesOnThread(null); }
     catch (com.ibm.websphere.ssl.SSLException e) 
     { 	e.printStackTrace();   // handle exception }

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_ssloutconfiguseJSSE
Nom du fichier : tsec_ssloutconfiguseJSSE.html