Exemple de configuration utilisant SSL pour la sécurisation des communications
  
Exemple de configuration utilisant SSL pour la sécurisation des communications
L'exemple suivant illustre une méthode de configuration de Windchill et de ThingWorx pour les communications SSL approuvées. Il utilise un certificat autosigné pour sécuriser les communications entre Windchill et ThingWorx, procédure adaptée pour les environnements au sein desquels les communications se produisent derrière le pare-feu d'entreprise. Lorsque le trafic circule sur Internet, un certificat commercial approuvé est recommandé.
* 
Ces instructions s'appuient sur les scripts de configuration fournis par la version la plus récente du serveur HTTP PTC. Le serveur HTTP PTC le plus récent est inclus dans Windchill version 11.0 M020 et les versions du groupe de correctifs critiques de Windchill version 10.2 les plus récentes.
Cet exemple part du principe que Windchill est déjà configuré pour utiliser SSL.
Cet exemple concerne l'ancien connecteur Windchill (WindchillConnector) utilisé dans PTC Navigate 1.4 et les versions antérieures.
Les anciens connecteurs Windchill peuvent également être utilisés avec l'environnement d'authentification unique de ThingWorx.
La clé utilisée ici n'est pas nécessairement celle qui est utilisée pour l'interface Web de Windchill ou ThingWorx.
Certains exemples de code de ce guide ont été reformatés de façon à s'adapter à la page et sont donc susceptibles de contenir des numéros de ligne, des caractères d'édition masqués (tabulations et caractères de fin de ligne, par exemple) ainsi que des espaces parasites. Si vous coupez et collez du code de ce manuel, recherchez ces caractères et supprimez-les avant d'utiliser l'exemple de code dans votre application.
1. Créez un truststore pour ThingWorx et importez le certificat Windchill :
2. Créez un KeyStore pour ThingWorx.
3. Configurez Windchill pour approuver ThingWorx.
* 
Si ThingWorx et Windchill se trouvent sur des systèmes distincts, les étapes 3 a, b et c peuvent être exécutées sur le serveur Windchill. Ensuite, copiez les fichiers *.jks sur le serveur ThingWorx.
a. Mettez à jour la configuration du serveur HTTP PTC, afin qu'elle fasse référence au fichier de certificats de l'autorité de certificats (CA).
a. Localisez et modifiez le fichier <HTTPSERVER_HOME>/conf/extra/httpd-ssl.conf.
b. Supprimez les marques de commentaire de l'entrée SSLCACertificateFile de façon qu'elle fasse référence au fichier ca-bundle.crt. Notez l'emplacement du fichier ca-bundle.crt.
c. Enregistrez les modifications.
b. Ajoutez le certificat ThingWorx à la liste de certificats CA approuvés du serveur HTTP PTC.
a. Modifiez le fichier ca-bundle.crt vers lequel vous pointiez précédemment dans l'entrée SSLCACertificateFile.
* 
Si le fichier n'existe pas encore, créez-le, ainsi que tous les répertoires requis.
b. Dans ce fichier, ajoutez le contenu du certificat ThingWorx (fichier servercert.pem de l'étape 2 a, ci-dessus) inclus dans le truststore.
c. Enregistrez les modifications.
c. Configurez le serveur HTTP PTC pour exporter les informations du certificat vers Windchill.
a. Modifiez le fichier <HTTPSERVER_HOME>/conf/extra/httpd-ssl.conf.
b. Recherchez la ligne incluant la chaîne SSLOptions.
c. Décommentez la ligne incluant la chaîne SSLOptions +ExportCertData.
Par exemple :
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. Enregistrez les modifications.
d. Configurez le serveur HTTP PTC pour l'URL de sslClientAuth.
a. Recherchez le nom de l'application Web Windchill dans le répertoire <windchill-home>/codebase/wt.properties, dans l'entrée wt.webapp.name.
b. Ouvrez une invite de commande ou un shell, et saisissez ce qui suit :
cd <HTTPSERVER_HOME>ant -f webAppConfig.xml -DappName=[windchill-web-app]
-Dresource=sslClientAuth -DresourceAuthType=sslClientAuth addAuthResource
c. Configurez Windchill de manière à approuver le certificat ThingWorx.
a. Modifiez le fichier <windchill-home>/codebase/WEB-INF/web.xml.
b. Recherchez la chaîne <filter-name>TrustedSSLAuthFilter</filtername>.
c. Ajoutez un autre élément <init-param> après l'élément existant, dans lequel [thingworx-cert-name] correspond au nom du certificat ThingWorx. Pour un certificat autosigné, le nom du certificat correspond à la valeur Propriétaire du certificat lorsque vous exécutez la commande 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. Enregistrez les modifications.
4. Configurez ThingWorx pour SSL.
a. Dans ThingWorx Composer, modifiez le modèle d'objet ptc-windchill-demo-thing qui représente la connexion au système Windchill en cours de configuration.
b. Spécifiez le chemin du fichier ThingWorxKeyStore.jks (voir l'exemple dans la capture d'écran), en spécifiant également le mot de passe.
c. Spécifiez le chemin du fichier ThingWorxTrustStore.jks (voir l'exemple dans la capture d'écran), en spécifiant également le mot de passe.
d. Spécifiez l'adresse Windchill au format https, ainsi que le port SSL.
e. Enregistrez l'objet.
f. Affichez le journal d'application de ThingWorx, afin de confirmer l'absence de toute erreur de configuration.
5. Démarrez ptc-connected-demo-mashup afin de vérifier la configuration SSL approuvée entre ThingWorx et Windchill.
* 
Pour effectuer une configuration avec de nouveaux connecteurs Windchill, consultez la rubrique Configuration de ThingWorx Navigate avec l'authentification Windchill.