Beispielkonfiguration mit SSL für sichere Kommunikation
  
Beispielkonfiguration mit SSL für sichere Kommunikation
Das folgende Beispiel veranschaulicht eine Möglichkeit, Windchill und ThingWorx für vertrauenswürdige SSL-Kommunikation zu konfigurieren. In diesem Beispiel wird ein selbstsigniertes Zertifikat verwendet, um die Kommunikation zwischen Windchill und ThingWorx zu sichern; diese Methode ist für Umgebungen geeignet, in denen die Kommunikation innerhalb der firmeneigenen Firewall stattfinden. Bei Datenverkehr über das Internet wird die Verwendung eines kommerziellen vertrauenswürdigen Zertifikats empfohlen.
* 
Diese Anweisungen beruhen auf Konfigurationsskripts, die in der neuesten Version von PTC HTTP-Server enthalten sind. Die neueste Version von PTC HTTP-Server ist im Lieferumfang von Windchill 11.0 M020 und den aktuellen CPS-Versionen für Windchill 10.2 enthalten.
In diesem Beispiel wird vorausgesetzt, dass Windchill bereits für die Verwendung von SSL konfiguriert ist.
Dieses Beispiel gilt für den alten Windchill Connector, WindchillConnector, der in PTC Navigate 1.4 und früher verwendet wurde.
Alte Windchill Konnektoren können ebenfalls mit der ThingWorx Single Sign-On-Umgebung verwendet werden.
Der hier verwendete Schlüssel muss nicht mit dem für die Windchill oder ThingWorx Weboberfläche verwendeten identisch sein.
Die Codebeispiele wurden zur Anpassung an die Seitengröße umformatiert und enthalten unter Umständen Zeilennummern, verborgene Zeichen (wie Tabulatoren und Zeilenendezeichen) sowie belanglose Leerzeichen. Wenn Sie Code ausschneiden und einfügen, suchen Sie nach diesen Zeichen, und entfernen Sie sie, bevor Sie den Beispielcode in Ihrer Anwendung einzusetzen versuchen.
1. Erstellen Sie einen Vertrauensspeicher für ThingWorx, und importieren Sie das Windchill Zertifikat:
2. Erstellen Sie einen Schlüsselspeicher für ThingWorx.
3. Konfigurieren Sie Windchill so, dass die Anwendung ThingWorx vertraut.
* 
Wenn sich ThingWorx und Windchill auf verschiedenen Systemen befinden, können die Schritte 3 a, b und c auf dem Windchill Server ausgeführt werden. Kopieren Sie dann die *.jks-Dateien auf den ThingWorx Server.
a. Aktualisieren Sie die Konfiguration von PTC HTTP-Server so, dass die CA-Zertifikatdatei referenziert wird.
a. Navigieren Sie zu <HTTPSERVER_HOME>/conf/extra/httpd-ssl.conf, und bearbeiten Sie die Datei.
b. Heben Sie die Auskommentierung des Eintrags SSLCACertificateFile auf, sodass er die Datei ca-bundle.crt referenziert. Notieren Sie den Speicherort der Datei ca-bundle.crt.
c. Speichern Sie die Änderungen.
b. Fügen Sie das ThingWorx Zertifikat der Liste vertrauenswürdiger CA-Zertifikate von PTC HTTP-Server hinzu.
a. Bearbeiten Sie die Datei ca-bundle.crt, auf die Sie zuvor im Eintrag SSLCACertificateFile verwiesen haben.
* 
Wenn die Datei noch nicht vorhanden ist, erstellen Sie die Datei und alle erforderlichen Verzeichnisse.
b. Hängen Sie den Inhalt des im Vertrauensspeicher gespeicherten ThingWorx Zertifikats ("servercert.pem" aus Schritt 2 a oben) an diese Datei an.
c. Speichern Sie die Änderungen.
c. Konfigurieren Sie PTC HTTP-Server so, dass die Zertifikatinformationen nach Windchill exportiert werden.
a. Bearbeiten Sie die Datei <HTTPSERVER_HOME>/conf/extra/httpd-ssl.conf.
b. Suchen Sie die Zeile mit SSLOptions.
c. Heben Sie die Auskommentierung der Zeile mit SSLOptions +ExportCertData auf.
Beispiel:
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire<FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars/FilesMatch><Directory "C:/ptc/Windchill_10.2/HTTPServer/cgi-bin"> SSLOptions +StdEnvVars</Directory>
d. Speichern Sie die Änderungen.
d. Konfigurieren Sie PTC HTTP-Server für die sslClientAuth-URL.
a. Suchen Sie den Windchill Web-App-Namen in <windchill-home>/codebase/wt.properties im Eintrag wt.webapp.name.
b. Öffnen Sie eine Shell oder eine Eingabeaufforderung, und geben Sie Folgendes ein:
cd <HTTPSERVER_HOME>ant -f webAppConfig.xml -DappName=[windchill-web-app]
-Dresource=sslClientAuth -DresourceAuthType=sslClientAuth addAuthResource
c. Konfigurieren Sie Windchill so, dass die Anwendung dem ThingWorx Zertifikat vertraut.
a. Bearbeiten Sie die Datei <windchill-home>/codebase/WEB-INF/web.xml.
b. Suchen Sie nach <filter-name>TrustedSSLAuthFilter</filtername>.
c. Fügen Sie ein weiteres <init-param>-Element nach dem vorhandenen hinzu, wobei [thingworx-cert-name] der Name des ThingWorx Zertifikats ist. Bei einem selbstsignierten Zertifikat ist der Zertifikatsname der Besitzerwert des Zertifikats bei Ausführung von keytool -list -v -keystore <path-to-ThingWorxKeyStore.jks>:
<init-param><param-name>trustedSubjectPattern.1 </param-name><param-value>[thingworx-cert-name]</param-value>
</init-param>
d. Speichern Sie die Änderungen.
4. Konfigurieren Sie ThingWorx für SSL.
a. Bearbeiten Sie in ThingWorx Composer die Dingvorlage ptc-windchill-demo-thing, die die Verbindung zum Windchill System darstellt, das konfiguriert wird.
b. Geben Sie den Pfad zu ThingWorxKeyStore.jks (siehe Beispiel im Screenshot) sowie das Passwort an.
c. Geben Sie den Pfad zu ThingWorxTrustStore.jks (siehe Beispiel im Screenshot) sowie das Passwort an.
d. Geben Sie die Windchillhttps-Adresse und den SSL-Port an.
e. Speichern Sie das Ding.
f. Zeigen Sie das ThingWorx Anwendungsprotokoll an, um zu verifizieren, dass keine Konfigurationsfehler vorhanden sind.
5. Starten Sie ptc-connected-demo-mashup, um die vertrauenswürdige SSL-Konfiguration zwischen ThingWorx und Windchill zu überprüfen.
* 
Für die Konfiguration mit neuen Windchill Konnektoren, siehe ThingWorx Navigate mit Windchill Authentifizierung konfigurieren.