SSL-Konfiguration für abgehende Verbindungen programmgesteuert mit der API "JSSEHelper" angeben

WebSphere Application Server bietet eine Möglichkeit, vor dem Herstellen einer abgehenden Verbindung programmgesteuert die zu verwendenden SSL-Konfigurationen anzugeben. Die Schnittstelle "com.ibm.websphere.ssl.JSSEHelper" stellt eine vollständige Gruppe von Anwendungsprogrammierschnittstellen (APIs) für die Handhabung von SSL-Konfigurationen bereit.

Informationen zu diesem Vorgang

Wenn Sie mit der API "JSSEHelper" ein SSL-Eigenschaftenobjekt in dem Thread für die Laufzeit erstellen möchten, führen Sie für Ihre Anwendung die folgenden Schritte aus. Einige dieser APIs setzen bestimmte Berechtigungen für die Java™-2-Sicherheit voraus. Weitere Informationen zu den für Ihre Anwendung erforderlichen Berechtigungen enthält die Dokumentation zur API "JSSEHelper".

Wählen Sie die Herangehensweise aus, die am besten zu Ihrer Verbindungssituation passt, wenn Sie vor dem Herstellen einer abgehenden Verbindung die zu verwendenden SSL-Konfigurationen über das Programm angeben.

Vorgehensweise

  1. Rufen Sie eine Instanz der API "JSSEHelper" ab.
    com.ibm.websphere.ssl.JSSEHelper jsseHelper  = com.ibm.websphere.ssl.JSSEHelper.getInstance();
  2. Rufen Sie SSL-Eigenschaften aus der Konfiguration von WebSphere Application Server ab, oder verwenden Sie die von Ihrer Anwendung bereitgestellten Eigenschaften. Verwenden Sie eine der folgenden Optionen.
    • Direkte Auswahl eines Aliasnamens innerhalb desselben Verwaltungsbereichs oder in einem übergeordneten Verwaltungsbereich. Vergleichen Sie hierzu das folgende Beispiel:
      try 
      { 	String alias = "NodeAServer1SSLSettings";
        // Wie in den Eigenschaften der WebSphere-SSL-Konfiguration angegeben
       sslProps = jsseHelper.getProperties(alias); }
       catch (com.ibm.websphere.ssl.SSLException e)
       { 	e.printStackTrace();   // Ausnahme behandeln }
    • Verwendung der API "getProperties" für die programmgesteuerte Auswahl, die Auswahl nach Verbindungsrichtung, die dynamische Auswahl abgehender Verbindungen oder die Auswahl des Verwaltungsbereichs (ausgehend von Vorrangregeln und Vererbung). Die SSL-Laufzeitumgebung bestimmt mit der API "getProperties", welche SSL-Konfiguration für ein bestimmtes Protokoll zu verwenden ist. Diese Entscheidung basiert auf der Eingabe (sslAlias und connectionInfo) und auf dem Verwaltungsbereich, aus dem die Eigenschaft aufgerufen wird. Die API "getProperties" trifft Entscheidungen dieser Reihenfolge:
      1. Die API überprüft den Thread, um festzustellen, ob es bereits Eigenschaften gibt.
      2. Die API prüft, ob es eine Konfiguration für dynamische abgehende Verbindungen gibt, die zu ENDPOINT_NAME, REMOTE_HOST und/oder REMOTE_PORT passt.
      3. Die API prüft, ob die optionale Eigenschaft "sslAlias" angegeben ist. ´Sie können ein beliebiges Protokoll als direkt oder zentral verwaltet konfigurieren. Wenn ein Protokoll als direkt veraltetes Protokoll konfiguriert ist, ist der Parameter "sslAlias" gleich null. Ist ein Protokoll als zentral veraltetes Protokoll konfiguriert, ist der Parameter "sslAlias" ebenfalls null.
      4. Wenn keine Auswahl getroffen wurde, wählt die API ausgehend von dem Verwaltungsbereich, in dem sie aufgerufen wurde, die Konfiguration für dynamische abgehende Verbindungen aus. Falls in diesem Bereich keine Konfiguration für dynamische abgehende Verbindungen definiert ist, wird die Hierarchie nach einer solchen Definition durchsucht.

      Die letzte Option ist die SSL-Konfiguration auf Zellenebene (in WebSphere Application Server Network Deployment) oder auf Knotenebene (in Base Application Server). Wenn sich die SSL-Konfiguration ändert, die durch einen Aufruf der API "getProperties" ausgewählt wurde, wird der Parameter "com.ibm.websphere.ssl.SSLConfigChangeListener" benachrichtigt. Das Protokoll kann die API dann erneut aufrufen, um die neuen Eigenschaften abzurufen. Vergleichen Sie hierzu das folgende Beispiel:

      try { 	String sslAlias = null;  // sslAlias wird jetzt noch nicht direkt angegeben. String host = "myhost.austin.ibm.com";
       // Der Zielhost 	String port = "443";
       // Der Zielport 	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();   // Ausnahme behandeln }
    • Erstellung eigener SSL-Eigenschaften, die dann an die Laufzeit übergeben werden. Schauen Sie sich hierzu das folgende Beispiel an:
      try { 	// Dies ist das empfohlene Minimum an SSL-Eigenschaften. Der Truststore kann
      	// mit dem Keystore identisch sein.
      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();   // Ausnahme behandeln }
  3. Verwendung der API "JSSEHelper.setSSLPropertiesOnThread(props)" zum Setzen des Properties-Objekts in dem Thread, damit die Laufzeit es übernimmt und dieselbe API "JSSEHelper.getProperties" verwendet. Sie können die Eigenschaften auch aus dem Thread abrufen, nachdem sie mit der API "jsseHelper.getSSLPropertiesOnThread()" gesetzt wurden. Vergleichen Sie dazu das folgende Beispiel:
    try 
    { 	Properties sslProps = jsseHelper.getProperties(null,    connectionInfo, null);
    	jsseHelper.setSSLPropertiesOnThread(sslProps); }
     catch (com.ibm.websphere.ssl.SSLException e) 
    { 	e.printStackTrace();   // Ausnahme behandeln }
  4. Nach Beendigung der Verbindung müssen Sie die SSL-Eigenschaften aus dem Thread löschen, indem Sie den Wert null an die API "setPropertiesOnThread" übergeben.
    try
     { 	jsseHelper.setSSLPropertiesOnThread(null); }
     catch (com.ibm.websphere.ssl.SSLException e) 
     { 	e.printStackTrace();   // Ausnahme behandeln }

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_ssloutconfiguseJSSE
Dateiname:tsec_ssloutconfiguseJSSE.html