SSL für sichere Kommunikation verwenden
|
Dieses Thema betrifft Systeme, für die Windchill Authentifizierung konfiguriert wurde.
|
Einführung
An Ihrem Standort kann Zwei-Wege-SSL verwendet werden, um die Kommunikation zwischen dem ThingWorx Server und der Windchill Anwendung zu sichern. PTC empfiehlt die Verwendung von SSL beim Arbeiten in einer Produktionsumgebung. Die Erweiterung kann SSL zum einen verwenden, um die Server untereinander zu authentifizieren, und zum anderen, um die Kommunikation selbst zu schützen.
Für eine SSL-Verbindung müssen beide Systeme einander vertrauen. Hierzu müssen SwaggerConnector und ptc-windchill-Odata-connector so konfiguriert werden, dass sie die auf dem ThingWorx Server gespeicherten Java-KeyStore und -TrustStore-Dateien, die Schlüssel für die Transaktion bereitstellen, referenzieren. Der HTTP-Server auf dem Windchill Server muss so konfiguriert werden, das er diesen Schlüsseln vertraut.
SSL-Konfigurationen unterscheiden sich erheblich, und dieses Thema versucht nicht, alle Optionen zu beschreiben, die in einer SSL-Konfiguration verfügbar sind. Die folgenden Schritte bieten stattdessen eine Übersicht über den Prozess zum Konfigurieren von SSL.
In diesem Verfahren wird vorausgesetzt, dass ThingWorx und Windchill so konfiguriert sind, dass sie SSL für die Standardkommunikation verwenden. Außerdem beruht es 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 M030 und höher enthalten.
|
• Sie können ein kommerzielles, vertrauenswürdiges Platzhalterzertifikat für Windchill verwenden.
• Sie können ein selbstsigniertes Zertifikat oder ein kommerzielles, vertrauenswürdiges Platzhalterzertifikat zwischen ThingWorx und Windchill verwenden.
|
ThingWorx mit KeyStore und TrustStore konfigurieren
ThingWorx erfordert Java-KeyStore und -TrustStore. Anweisungen zum Erstellen dieser Dateien finden Sie im Thema
KeyStore- und TrustStore-Dateien für ThingWorx Navigate erstellen.
1. Erstellen Sie einen TrustStore für ThingWorx, und importieren Sie das Windchill SSL-Zertifikat.
2. Erstellen Sie einen KeyStore für ThingWorx und generieren Sie ein KeyPair im KeyStore.
3. Konfigurieren Sie Windchill so, dass die Anwendung ThingWorx vertraut.
4. Referenzieren Sie sie in der Konfiguration der Dingvorlage WindchillConnector, die zum Verbinden von ThingWorx mit dem Windchill System verwendet wird, das gesichert wird.
Windchill für Client-Authentifizierung konfigurieren
Konfigurieren Sie auf dem Windchill Server die SSL-Authentifizierung in PTC HTTP-Server so, dass dem ThingWorx Schlüssel und Zertifikat vertraut wird.
|
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. Aktualisieren Sie die Konfiguration von PTC HTTP-Server so, dass die CA-Zertifikatdatei referenziert wird.
a. Erstellen Sie eine Datei unter <HTTPSERVER_HOME>\conf\ca-bundle.crt. Dieser Speicherort wird empfohlen, ist jedoch nicht obligatorisch.
b. Speichern Sie ca-bundle.crt.
c. Erstellen Sie eine Datei sslclientauth.conf unter <HTTPSERVER_HOME>\conf\sslvhostconf.d.
d. Fügen Sie SSLCACertificateFile zu <PATH_TO>\ca-bundle.crt hinzu, sodass sie auf die Datei ca-bundle.crt verweist. Beispiel:
SSLCACertificateFile
<HTTP_Server>\conf\ca-bundle.crt
e. Speichern Sie die Änderungen.
2. Fügen Sie das ThingWorx Client-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. Bearbeiten Sie ca-bundle.crt und fügen Sie den PEM-Dateiinhalt des ThingWorx Client-Zertifikats ein.
c. Speichern Sie die Änderungen.
3. 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.
i. Bearbeiten Sie die Datei <windchill-home>/codebase/WEB-INF/web.xml.
ii. Suchen Sie nach <filter-name>TrustedSSLAuthFilter</filtername>.
iii. Fügen Sie ein zusätzliches <init-param>-Element nach dem vorhandenen hinzu, wobei [cert-name] der Name Ihres Zertifikats ist:
Sie können die folgenden Beispiele als Referenz verwenden:
Beispiel 1
|
Beispiel 2
|
<init-param> <param-name>trustedSubjectPattern.1</param-name> <param-value>[cert-name]</param-value> </init-param>
Ersetzen Sie im obigen Beispiel [cert-name] durch den Zertifikatnamen, der unter Betreff im Zertifikat aufgeführt ist. Beispiel: Ist Betreff für Ihr Zertifikat CN=navigate.domain.com, ersetzen Sie [cert-name] durch navigate.domain.com.
|
<init-param> <param-name>trustedSubjectPattern.1</param-name> <param-value>.*[cert-name].*</param-value> </init-param>
Ersetzen Sie im obigen Beispiel [cert-name] durch den Zertifikatnamen, der unter Betreff im Zertifikat aufgeführt ist. Bespiel: Ist Betreff für Ihr Zertifikat CN=navigate.domain.com, ersetzen Sie [cert-name] durch navigate.
|
d. Speichern Sie die Änderungen.
e. Starten Sie Windchill sowie den PTC HTTP-Server neu.