Configuración de ThingWorx y ThingWorx Flow para la conexión SSL bidireccional de Windchill (solo 9.0)
|
Este tema no es válido si se está en ThingWorx Flow 9.0.2 y versiones posteriores.
|
PTC recomienda utilizar el protocolo Secure Sockets Layer (SSL) para un entorno de producción. ThingWorx utiliza SSL para autenticar mutuamente los servidores y proteger la comunicación entre los servidores.
Las configuraciones de HTTPS requieren el uso de un certificado de autoridad. ThingWorx requiere que el certificado sea de confianza para Java. Si se utiliza un certificado que no es de confianza para Java, se debe configurar Java para que lo sea. Los certificados proporcionados por otros proveedores, como Verisign y Thawte, son certificados de autoridad de confianza para Java.
|
En este documento se proporcionan pasos que requieren un mínimo de esfuerzo para implementar HTTPS para la instalación. No se trata de una lista exhaustiva de todas las opciones disponibles en una configuración de SSL.
|
Requisitos previos
Antes de configurar ThingWorx y ThingWorx Flow para una conexión SSL bidireccional de Windchill, asegúrese de cumplir los siguientes requisitos previos:
• Windchill está configurado con los siguientes certificados (solo es necesario si el certificado de Windchill está autofirmado):
◦ Certificado de Windchill
En este documento se supone que el certificado de Windchill se almacena en el fichero server.crt.
◦ Certificado de CA con el que se crea el certificado de Windchill.
En este documento se supone que el certificado de CA se almacena en el fichero rootCA.crt.
• Asegúrese de añadir CARPETA_PRINCIPAL_JAVA/bin a la variable de entorno PATH.
Pasos
Estos son los pasos principales del proceso:
|
Omita este paso si ya se ha configurado SSL para la misma instancia de ThingWorx para ThingWorx Navigate.
|
Paso 1: Configurar ThingWorx para la conexión SSL bidireccional de Windchill
Para configurar ThingWorx para la conexión SSL bidireccional de Windchill, se debe generar un fichero KeyStore con el fin de aceptar conexiones SSL mediante un certificado autofirmado. Para ello, complete los siguientes pasos:
1. Inicie el símbolo del sistema como administrador y desplácese hasta la ubicación en la que desea guardar el fichero KeyStore.
2. Cree un fichero Java KeyStore (JKS), thingworx.jks y genere un par de claves pública y privada inicial con el alias thingworx:
keytool -genkey -alias thingworx -keyalg rsa -dname "CN=<Nombre de dominio completo del servidor de ThingWorx>" -keystore thingworx.jks -storetype JKS
Cuando se le solicite, introduzca la misma contraseña para el fichero KeyStore y la clave privada.
Asegúrese de que la contraseña solo incluya letras y números. No se soportan los caracteres especiales. PTC no asume la responsabilidad de la seguridad de los certificados ni los ficheros KeyStore o TrustStore que se generan.
|
Si no se inicia el símbolo del sistema como administrador, es posible que se reciba el siguiente error:
keytool error: java.io.FileNotFoundException: thingworx.jks (Access is denied)
|
3. Genere un certificado autofirmado para la clave:
keytool -selfcert -alias thingworx -validity 1825 -keystore thingworx.jks -storetype JKS
Cuando se solicite la contraseña de KeyStore, introduzca la misma contraseña que se ha introducido para el comando anterior.
4. Exporte la clave pública para el nuevo certificado autofirmado:
keytool -export -alias thingworx -file thingworx.cer -rfc -keystore thingworx.jks -storetype JKS
Paso 2: Configurar ThingWorx Flow para la conexión SSL bidireccional de Windchill
Parte A: Obtener el certificado y la clave privada asociados con el KeyStore thingworx.jks.
2. En KeyStore Explorer, abra thingworx.jks, el KeyStore de ThingWorx que se ha creado en el paso 1.
Cuando se le solicite, introduzca la contraseña correcta del KeyStore.
3. Pulse con el botón derecho del ratón en thingworx y pulse en > para exportar el certificado asociado con el KeyStore thingworx.jks:
4. En la ventana Export Certificate Chain from entry 'thingworx', realice lo siguiente:
a. Para Export Length, seleccione Head Only.
b. Para Export Format, seleccione X.509.
c. Seleccione la casilla PEM.
d. En el campo Export File, pulse en Browse para buscar la ubicación en la que desea guardar el certificado exportado. Por ejemplo: thingworx.crt.
e. Pulse en Exportar.
5. Pulse con el botón derecho del ratón en thingworx y pulse en > para exportar la clave privada asociada con el KeyStore de thingworx.jks.
6. En la ventana Export Private Key Type, seleccione PKCS#8 y pulse en OK.
7. En la ventana Export Private Key as PKCS#8 from KeyStore Entry 'thingworx', realice lo siguiente:
a. Despeje la casilla Encrypt.
b. Seleccione la casilla PEM.
c. En el campo Export File, pulse en Browse para buscar la ubicación en la que desea guardar la clave exportada. Por ejemplo: thingworx.key.
d. Pulse en Exportar.
Parte B: añadir los certificados de ThingWorx y Windchill al TrustStore de ThingWorx Flow
1. El valor del parámetro secret se utiliza para descifrar el TrustStore. Para obtener el valor del parámetro secret, inicie el símbolo del sistema como administrador en el equipo en el que se ha instalado ThingWorx Flow y ejecute los siguientes comandos:
a. pm2 ls
Tome nota del valor del ID de cualquier servicio de ThingWorx Flow.
b. pm2 env <ID>
, donde <ID> es el ID de cualquier servicio de ThingWorx Flow. Por ejemplo: el ID de servicio flow-api.
c. Copie el valor de la variable CONFIG_IMAGE. Este es el valor del parámetro secret.
2. Ejecute el siguiente comando:
<Directorio de instalación de ThingWorx Flow>\cryptography\tw-security-common-nodejs npm link
3. Ejecute el siguiente comando para añadir el fichero de certificado thingworx.crt al TrustStore:
PtcOrchKeyFileTool set --keyName thingworx-crt --keyPath <Ruta a thingworx.crt> --configPath <Ruta absoluta del fichero config.json de cualquier servicio de Flow> --secret <Secreto para descifrar TrustStore>
No cambie el valor del parámetro keyName. Debe definirse en thingworx-crt.
4. Ejecute el siguiente comando para añadir el fichero de claves privadas thingworx.key al TrustStore:
PtcOrchKeyFileTool set --keyName thingworx-key --keyPath <Ruta a thingworx.key> --configPath <Ruta absoluta del fichero config.json de cualquier servicio de Flow> --secret <Secreto para descifrar TrustStore>
No cambie el valor del parámetro keyName. Debe definirse en thingworx-key.
5. Si el certificado de Windchill está autofirmado, realice lo siguiente:
a. Cree un nuevo fichero, ca.crt.
b. Pegue el contenido de los ficheros rootCA.crt y server.crt en el fichero ca.crt.
c. Ejecute el siguiente comando para añadir el certificado de Windchill al TrustStore:
PtcOrchKeyFileTool set --keyName <Windchill-crt>--keyPath <Ruta de ca.crt file> --configPath <Ruta absoluta del fichero config.json de cualquier servicio de Flow> --secret <Secreto para descifrar TrustStore>
Para este comando, se puede cambiar el valor del parámetro keyName. En el caso de varios servidores Windchill, asegúrese de definir diferentes valores para el parámetro keyName.
6. Reinicie el servidor de ThingWorx y ThingWorx Flow.
Se ha configurado correctamente ThingWorx y ThingWorx Flow para la conexión SSL bidireccional de Windchill.
Ahora se puede añadir una conexión SSL bidireccional de Windchill para cualquier acción de Windchill. Para obtener más información, consulte la sección sobre la
adición de conexión SSL bidireccional de Windchill.