Sitecore
Usando certificados válidos para configurar MongoDB con SSL/TLS
Me indicaron que configurara MongoDB para SSL/TLS para un entorno de producción, lo que significa que tendría que usar CERTIFICADOS VÁLIDOS!
Y como quería hacerlo bien, elegí configurar MongoDB con la validación de certificados que requiere la creación de dos archivos .pem – uno para usar como PEMKeyFile y como CAFile en mi archivo de configuración de Mongo.
De acuerdo con la página de tutorial de MongoDB, aquí está lo que debes saber sobre ellos
- PEMKeyFile con el nombre del archivo .pem que contiene el certificado TLS/SSL firmado y la clave.
- CAFile con el nombre del archivo .pem que contiene la cadena de certificados raíz de la autoridad certificante.
Lo primero que hay que hacer es trabajar con el certificado válido que tienes, usualmente en formato PFX que contiene la Clave Pública y la Clave Privada asociada.
Exportación de PFX
Trabajar con certificados a veces es complicado, recomendaría usar DigiCert® Certificate Utility for Windows que uso a diario y que es una herramienta que ahorra tiempo. O puedes usar OpenSSL – que es otra HERRAMIENTA GENIAL.
Continuando… asumiendo que ya descargaste, ejecutaste DigiCert Certificate Utility, y que tu PFX ya está instalado en tu máquina, sigamos
1. En la DigiCert Certificate Utility for Windows©, haz clic en SSL (candado dorado), selecciona el certificado que quieres exportar como un archivo .pfx y luego haz clic en Export Certificate.

2. En el asistente de Certificate Export, selecciona Yes, export the private key, elige key file (Apache compatible mode), y finalmente haz clic en Next

3. Elige una ubicación y un nombre de archivo donde quieras guardar la clave, haz clic en Save y luego en Finish

4. Navega a la ubicación que guardaste; ten en cuenta que la carpeta debe contener la Clave Pública (wildcard_nonlinear_ca.crt), la Clave Privada (wildcard_nonlinear_ca.key) y el Certificado Intermedio (DigiCertCA.crt)

PEMKeyFile
Para generar el PEMKeyFile tendremos que usar Notepad++ u otro editor de texto de tu preferencia.
- Ve a la ubicación donde están las claves exportadas y abre la Clave Privada – en mi caso wildcard_nonlinear_ca.key

2. La Clave Privada debería verse así

3. Copia todo el contenido de este certificado, incluyendo —-BEGIN RSA PRIVATE KEY—- y —-END RSA PRIVATE KEY—-
4. Abre una nueva pestaña (o un nuevo editor de texto) y pega el contenido que acabas de copiar

5. Ahora, vamos a abrir la Clave Pública (wildcard_nonlinear_ca.crt) que debería verse así

6. Copia todo el cuerpo de este certificado, incluyendo —-BEGIN CERTIFICATE—- y —-END CERTIFICATE—-
7. Ve al nuevo texto que acabas de crear (paso 4) y pega el contenido de la Clave Pública en la siguiente línea después de —-END RSA PRIVATE KEY—-

8. Luego guarda este documento como archivo .pem

CAFile
El proceso es prácticamente el mismo que el descrito para el PEMKeyFile, sin embargo, el CAFile debe incluir también el certificado raíz. Asegúrate de mantener el siguiente orden:
- La Clave Privada (wildcard_nonlinear_ca.key)
- El Certificado Primario (wildcard_nonlinear_ca.crt)
- El Certificado Intermedio (DigiCertCA.crt)
- El Certificado Raíz – deberías poder obtenerlo directamente del lugar donde emitiste tu certificado; en mi caso se llama TrustedRoot.crt
Asegúrate de incluir las etiquetas de inicio y fin en cada certificado, y guarda también con la extensión .pem.
Configuración de MongoDB
Suponiendo que ya tienes MongoDB en funcionamiento, para habilitar SSL/TLS debes cambiar un par de cosas en el archivo de configuración mongod.cfg
net:
ssl:
mode: requireSSL
PEMKeyFile: F:\ssl\SysAdmin.pem
CAFile: F:\ssl\ca.pem
Una vez que lo hayas modificado, intenta detener/iniciar el servicio de MongoDB y asegúrate de que funcione correctamente.
Para conectarte a MongoDB a partir de ahora desde CMD, deberás incluir las siguientes opciones
- –ssl
- –host
- –sslPEMKeyFile
- –sslCAFile
mongo –ssl –host mongodb.mydomain.com –sslPEMKeyFile F:\ssl\SysAdmin.pem –sslCAFile F:\ssl\ca.pem
Sitecore conectándose a MongoDB usando SSL
He planteado la pregunta en Sitecore.Stackexchange y Hishaam Namooya, y Amitabh Vyas pudieron abordar mis problemas.
Amitabh Vyas dijo que
OOTB Sitecore no se comunica con Mongo usando SSL, necesitamos implementar un pipeline personalizado para dicha comunicación.
Personaliza el
Sitecore.Analytics.MongoDB.Configdefiniendo un nuevo Pipeline.Ahora tienes dos enfoques para establecer una conexión SSL entre Mongo y Sitecore.
- Integración SSL usando un archivo PFX físico
- Integración SSL leyendo la clave de la máquina
Por favor, mira mi entrada de blog para más detalles](https://sitecorecompetencies.com/2017/03/15/sitecore-mongodb-with-ssl-customization/).
Espero que te haya gustado, y gracias por leer.
¡Nos vemos en mi próxima publicación!