Пример конфигурации с использованием SSL для безопасных взаимодействий
  
Пример конфигурации с использованием SSL для безопасных взаимодействий
Следующий пример иллюстрирует один способ конфигурирования Windchill и ThingWorx для доверительного обмена данными по протоколу SSL. В этом примере используется самоподписанный сертификат для защиты взаимодействий между Windchill и ThingWorx, соответствующий среде, в которой возникает взаимодействие в условиях корпоративного брандмауэра. Везде, где возникает трафик в Интернете, рекомендуется использовать коммерческий доверенный сертификат.
* 
Эти инструкции используют сценарии конфигурации, которые поступают с самой последней версией PTC HTTP Server. Самая последняя версия PTC HTTP Server включена вместе с Windchill 11.0 M020 и самыми последними выпусками CPS для Windchill 10.2.
В этом примере предполагается, что система Windchill уже сконфигурирована для использования SSL.
Этот пример применим к старой версии Windchill Connector, WindchillConnector, которая использовалась в версии PTC Navigate 1.4 и более ранних.
Старые соединители Windchill могут также использоваться в среде ThingWorx с единым входом.
Ключ, используемый здесь, не должен совпадать с ключом, который использовался для веб-интерфейса Windchill или ThingWorx.
Примеры кода переформатированы для соответствия размерам страницы и могут содержать номера строк, скрытые символы редактирования (такие как символы табуляции и конца строки) и лишние пробелы. При вырезании и вставке кода проверьте, нет ли этих символов, и удалите их, прежде чем попытаетесь использовать этот пример в своем приложении.
1. Создайте доверительное хранилище для ThingWorx и импортируйте сертификат Windchill:
2. Создайте хранилище ключей для ThingWorx.
3. Сконфигурируйте Windchill для доверия ThingWorx.
* 
Если ThingWorx и Windchill находятся в отдельных системах, шаги 3 а, b и c могут быть выполнены на сервере Windchill. Затем скопируйте файлы *.jks на сервер ThingWorx.
a. Обновите конфигурацию PTC HTTP Server для привязки к файлу сертификации CA.
a. Перейдите к файлу <HTTPSERVER_HOME>/conf/extra/httpd-ssl.conf и отредактируйте его.
b. Раскомментируйте запись SSLCACertificateFile, чтобы она была привязана к файлу ca-bundle.crt. Обратите внимание на расположение файла ca-bundle.crt.
c. Сохраните изменения.
b. Добавьте сертификат ThingWorx в список сертификатов доверенного CA для PTC HTTP Server.
a. Отредактируйте файл ca-bundle.crt, ссылка на который была указана ранее в записи SSLCACertificateFile.
* 
Если этот файл еще не существует, создайте его и все необходимые каталоги.
b. Присоедините к этому файлу содержимое сертификата ThingWorx (servercert.pem из приведенного выше шага 2), находящееся в хранилище доверия.
c. Сохраните изменения.
c. Сконфигурируйте PTC HTTP Server для экспорта информации о сертификате в Windchill.
a. Отредактируйте <HTTPSERVER_HOME>/conf/extra/httpd-ssl.conf.
b. Найдите строку с SSLOptions.
c. Раскомментируйте строку с SSLOptions +ExportCertData.
Например:
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. Сохраните изменения.
d. Сконфигурируйте PTC HTTP Server для URL-адреса sslClientAuth.
a. Найдите наименование веб-приложения Windchill в файле <windchill-home>/codebase/wt.properties в записи wt.webapp.name.
b. Откройте оболочку или командную строку и введите следующую команду:
cd <HTTPSERVER_HOME>ant -f webAppConfig.xml -DappName=[windchill-web-app]
-Dresource=sslClientAuth -DresourceAuthType=sslClientAuth addAuthResource
c. Сконфигурируйте Windchill, чтобы сертификат ThingWorx стал доверенным.
a. Отредактируйте файл <windchill-home>/codebase/WEB-INF/web.xml.
b. Найдите <filter-name>TrustedSSLAuthFilter</filtername>.
c. Добавьте другой элемент <init-param> после существующего элемента, где [thingworx-cert-name] - это наименование сертификата ThingWorx. Для самоподписанного сертификата наименование сертификата - это значение владельца сертификата при выполнении 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. Сохраните изменения.
4. Сконфигурируйте ThingWorx для использования SSL.
a. В ThingWorx Composer отредактируйте шаблон вещи ptc-windchill-demo-thing, представляющей подключение к конфигурируемой системе Windchill.
b. Укажите путь к файлу ThingWorxKeyStore.jks (см. пример в скриншоте) и задайте пароль.
c. Укажите путь к файлу ThingWorxTrustStore.jks (см. пример в скриншоте) и задайте пароль.
d. Укажите адрес Windchillhttps и порт SSL.
e. Сохраните вещь.
f. Просмотрите журнал приложения ThingWorx, чтобы убедиться в отсутствии ошибок конфигурации.
5. Запустите ptc-connected-demo-mashup, чтобы убедиться, что ThingWorx - доверенная SSL-конфигурация Windchill.
* 
Сведения о конфигурировании с новыми соединителями Windchill см. в разделе Конфигурирование ThingWorx Navigate с аутентификацией Windchill.