Crear certificados SSL auto-firmados
Este ejemplo explica cómo crear certificados SSL auto-firmados para una instancia FlowForce Server que se esté ejecutando en una red privada. Tenga en cuenta que hemos simplificado el ejemplo de forma intencionada, por lo que es posible que no se pueda utilizar en producción. Es probable que su organización tenga políticas de seguridad específicas para los certificados SSL y que use unas herramientas SSL distintas a las que se describen a continuación.
La creación de certificados SSL auto-firmados incluye los siguientes procedimientos:
1.Crear un certificado raíz
2.Crear un certificado FlowForce
3.Importar el certificado raíz
Para más información sobre cada paso, véase las subsecciones a continuación.
Requisitos
Este ejemplo usa las herramientas OpenSSL (https://www.openssl.org/) para generar certificados auto-firmados. Tenga en cuenta que OpenSSL es una biblioteca de software libre, por lo que es posible que tenga que compilarla antes de poder usarla en la línea de comandos. Las instrucciones de compilación e instalación para OpenSSL varían en función del sistema operativo. Por lo general, OpenSSL viene preinstalado en la mayoría de las versiones de Linux y en los equipos de macOS. Puede comprobar rápidamente si tiene instalado OpenSSL tecleando el siguiente comando (que también indica qué versión de OpenSSL está instalada):
openssl version
También puede instalar OpenSSL en equipos de Windows. En la wiki de OpenSSL encontrará enlaces para descargar los binarios de instalación.
Paso n°1: Crear un certificado raíz
Las instrucciones a continuación explicarán cómo crear un certificado raíz. El certificado raíz se usará para firmar el certificado del servidor (véase el siguiente paso más abajo).
1.Cree un directorio que almacene todos los certificados usados en este ejemplo (p.ej. C:\secure). Este será el directorio de trabajo para todos los comandos OpenSSL posteriores. Ahora deberá cambiar a este directorio desde la línea de comandos:
cd C:\secure
2.Para esta demostración emitiremos certificados con extensiones OpenSSL. Para ello, busque el archivo openssl.cnf de su distribución de OpenSSl y cópielo en el directorio de trabajo que creamos en el paso anterior.
3.Crea la clave raíz que actuará como clave privada de su autoridad de certificación. Observe que la clave privada raíz es una pieza esencial de la infraestructura de la clave pública, por lo que siempre se debe generar y almacenar en un entorno seguro (en esta demostración se almacena en C:\secure).
openssl genrsa -aes256 -out root.key 2048
Cuando la aplicación lo solicite, introduzca una contraseña para proteger la clave raíz. Seguirá necesitando esta contraseña más tarde para firmar solicitudes de certificados.
4.Cree el certificado raíz que es el certificado público de su autoridad de certificación. El siguiente comando genera un certificado auto-firmado para la clave privada que hemos creado más arriba con una duración de 3650 días. Tenga en cuenta que el parámetro -config apunta al archivo openssl.cnf del mismo directorio. El parámetro -extensions se refiere a la extensión (sección) v3_ca definida en openssl.cnf.
openssl req -config openssl.cnf -extensions v3_ca -x509 -new -nodes -key root.key -sha256 -days 3650 -out root.pem
Cuando la aplicación lo solicite, introduzca información sobre su organización, por ejemplo:
Country Name (2 letter code) [AU]: AT
State or Province Name (full name) [Some-State]: .
Locality Name (eg, city) []: Vienna
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany Ltd
Organizational Unit Name (eg, section) []: IT
Common Name (eg, YOUR name) []: Demo CA
Email Address []: test@example.org
Rellene cada campo con la información pertinente de su organización. Para el Nombre común campo, introduzca el nombre de la autoridad de su certificado auto-firmado (Demo CA en este ejemplo).
Paso n°2: Crear un certificado FlowForce
El siguiente paso consiste en crear el certificado que se usará para el cifrado SSL (en FlowForce Server, FlowForce Web Server o en ambos). El certificado FlowForce se firmará con el certificado raíz que se creó en el paso 1.4. Para ello siga estos pasos:
1.Cree la clave privada usando el comando OpenSSL de más abajo. La clave privada acompaña al certificado auto-firmado que haya proporcionado para que lo use FlowForce.
openssl genrsa -out flowforce.key 2048
La clave privada debe estar en formato PEM (correo de privacidad mejorada). La extensión de los archivos PEM suele ser .pem, pero también puede ser .key, .cert, .cer o .crt. Para que la clave privada se pueda usar en FlowForce no debe estar protegida por una contraseña. La clave privada debe guardarse de forma segura.
2.Abra el archivo de trabajo openssl.cnf y añádale el siguiente segmento de código:
[ server_cert ]
# Extensions for server certificates (`man x509v3_config`).
basicConstraints = CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName=DNS:server.my.domain.com
Asegúrese de cambiar el subjectAltName (Nombre alternativo del sujeto) para que se corresponda con el FQDN (nombre de dominio completo) del equipo en el que se está ejecutando FlowForce Server. En este ejemplo se llama server.my.domain. En Google Chrome 58 y versiones posteriores es necesario especificar también un nombre alternativo del sujeto; de lo contrario, su certificado auto-firmado generará el error NET::ERR_CERT_COMMON_NAME_INVALID (véase la página de ayuda de Chrome).
3.Cree una petición de firma de certificado (CSR), usando el comando que se muestra a continuación. Observe que el parámetro -config apunta al archivo openssl.cnf que hemos editado previamente. El parámetro -extension se refiere a la extensión server_cert definida en openssl.cnf.
openssl req -config openssl.cnf -extensions server_cert -new -nodes -key flowforce.key -out flowforce.csr
4.Cuando la aplicación lo solicite, introduzca información sobre su organización, por ejemplo:
Country Name (2 letter code) [AU]: AT
State or Province Name (full name) [Some-State]: .
Locality Name (eg, city) []: Vienna
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany Ltd
Organizational Unit Name (eg, section) []: IT
Common Name (eg, YOUR name) []: server.my.domain.com
Email Address []: test@example.org
Para el campo Nombre común, asegúrese de que introduce el FQDN (nombre de dominio completo) del equipo anfitrión en el que se ejecuta FlowForce Server. Deje el campo de la contraseña de comprobación aleatoria cuando la aplicación la solicite.
5.Firme el certificado FlowForce con el certificado raíz. Observe que, en un entorno de producción, el certificado raíz normalmente no firma certificados de servidor directamente, sino que usa certificados intermedios. El siguiente comando firma la petición de certificado flowforce.csr con el certificado raíz creado previamente y crea el archivo flowforce.crt (que es el certificado de servidor que necesita FlowForce Server):
openssl x509 -extfile openssl.cnf -extensions server_cert -req -in flowforce.csr -CA root.pem -CAkey root.key -CAcreateserial -out flowforce.crt -days 365 -sha256
Resumen
Si ha seguido los pasos anteriores, ahora debe contar con estos certificados y esta clave:
•root.key: Esta es la clave privada de su autoridad de certificación. Guarde este archivo en lugar seguro; si peligrase esta clave, entonces cualquiera podría generar en su nombre certificados que los exploradores considerasen de confianza.
•root.pem: Este es el certificado público de su autoridad de certificación. Necesitará instalar (importar) este certificado en el almacén de certificados de confianza de cada equipo (o navegador) que deba acceder a FlowForce de forma segura (véase el paso 3 más abajo).
•flowforce.key: Esta clave privada acompaña al certificado auto-firmado que haya proporcionado para que lo use FlowForce (véase el punto siguiente).
•flowforce.crt: Este es su certificado auto-firmado para que lo usen FlowForce Server, FlowForce Web Server o ambos.
Paso n°3: Importar el certificado raíz
Cuando crea su propia autoridad de certificación (CA), el certificado raíz está auto-firmado, por lo que ningún navegador lo considerará de confianza por defecto. Para que un cliente HTTP (como un navegador) confíe en su certificado auto-firmado, este debe importarse como sigue:
•En el almacén de certificados de confianza del sistema, si el navegador lo usa. En Windows, por ejemplo, Google Chrome y Microsoft Edge usa el almacén de certificados del sistema operativo, mientras que Mozilla Firefox usa su propio almacén. En Linux, Google Chrome y Mozilla Firefox usan sus propios almacenes de certificados (véase el siguiente punto). En Mac, Safari usa el almacén de certificados del sistema operativo (acceso a llaveros).
•En el almacén de certificados de confianza del propio navegador.
Notas
•El certificado autofirmado se debe importar para cada equipo cliente (o navegador, si procede) que quiera acceder a FlowForce Server. •Cuando habilite el cifrado SSL entre FlowForce Web Server y FlowForce Server, no basta con importar el certificado en el navegador. Su certificado autofirmado de autoridad de certificación debe ser de confianza para el sistema operativo también. |
Hay varias maneras de importar el certificado raíz, dependiendo de su sistema operativo. Para más detalles siga leyendo.
En Linux puede importar un certificado de confianza en el almacén de certificados del sistema como explicamos a continuación. Siga estas instrucciones solamente si está seguro de la autenticidad del certificado en el que desea confiar.
En Debian y Ubuntu, siga estos pasos:
1.Copie el archivo de certificado del servidor web en este directorio.
sudo cp /home/downloads/server_cert.crt /usr/local/share/ca-certificates/
2.Actualice el almacén de certificados de la siguiente manera:
sudo update-ca-certificates
En Cent OS, siga estos pasos:
1.Instale el paquete ca-certificates:
yum install ca-certificates
2.Habilite la función de configuración dinámica de entidades de certificación:
update-ca-trust enable
3.Copie el certificado de servidor en este directorio:
cp server_cert.crt /etc/pki/ca-trust/source/anchors/
4.Utilice este comando:
update-ca-trust extract
En los casos en que necesite acceder al servidor solo mediante el navegador, basta con que importe el certificado en el almacén de certificados del navegador. Las instrucciones exactas pueden ser distintas para cada navegador. Por ejemplo, en Firefox 59.0.2 puede hacer lo siguiente:
1.En Opciones | Privacidad & seguridad, haga clic en Ver certificados. 2.En la pestaña Autoridades, haga clic en Importar y navegue hasta el archivo del certificado raíz que creó previamente. 3.Cuando la aplicación lo solicite, seleccione Confiar en este certificado al identificar páginas web y haga clic en Aceptar.
|
En macOS puede importar un certificado de confianza en el Acceso a llaveros como explicamos a continuación:
1.Ejecute el Acceso a llaveros. 2.Haga clic en Sistema y después en Certificados. 3.En el menú Archivo, haga clic en Importar elementos. 4.Navegue hasta el certificado de confianza y haga clic en Abrir. 5.Cuando la aplicación lo solicite, introduzca la contraseña del Acceso a llaveros y haga clic en Modificar llavero. 6.Haga doble clic en el certificado, expanda la sección Confiar y seleccione Confiar siempre.
|
En Windows puede gestionar certificados en el complemento Certificados de Microsoft Management Console (MMC) tanto para su cuenta de usuario como para la cuenta del equipo.
Para abrir el complemento Certificados para el usuario actual de Windows, ejecute el siguiente comando en la línea de comandos:
certmgr.msc
Para abrir el complemento Certificados para la cuenta del equipo, siga estos pasos:
1.Ejecute mmc en la linea de comandos. 2.En el menú File (archivo) del MMC haga clic en Add/Remove Snap-in (agregar/eliminar complementos). 3.Haga clic en Certificates (certificados) y después en Add (agregar). 4.Haga clic en Computer account (cuenta del equipo) y después en Next (siguiente). 5.Haga clic en Local computer (equipo local) y después en Finish (finalizar).
En Windows puede importar un certificado de confianza en el sistema de certificados como explicamos a continuación:
1.Abra el almacén de certificados de Windows de la cuenta del equipo, véase . 2.Expanda la carpeta Entidades de certificación raíz de confianza de la estructura Certificados (equipo local), haga clic con el botón derecho en Certificados y seleccione Todas las tareas | Importar. Después, siga las instrucciones del asistente de importación de certificados.
Para más información consulte este artículo (en inglés): Importar un certificado en el sitio web de Microsoft.
|
Siguiente paso
Una vez realizado los pasos anteriores, ahora puede habilitar SSL para FlowForce Server, FlowForcer Web Server y para la conexión HTTP entre ellos. Este paso se describe en el paso 7 de la sección Configurar el cifrado SSL.