GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar WSO2 con el certificado Let's Encrypt

Configurar un certificado SSL para WSO2 API Manager no es sencillo, ya que requiere crear Keystore y agregar un certificado SSL al Keystore. En este artículo, veremos cómo configurar WSO2 con el certificado Let's Encrypt.

Supongo que ya tiene el certificado Let's Encrypt emitido y listo para agregarlo a los almacenes de claves WSO2. Si no es así, continúe y obtenga uno para su dominio. En mi caso, tenía el servidor NGINX al frente de los servicios de WSO2, por lo tanto, obtuve el certificado Let's Encrypt usando el certbot programa para el servidor web NGINX.

$ sudo certbot --nginx -d tg.com -d www.tg.com

Una vez emitido el certificado, encontrará .pem archivos bajo '/etc/letsencrypt/live/<domain_name>/ 'carpeta. Ahora copia el cert.pem y privkey.pem archivos a su directorio de inicio y siga los pasos a continuación.

¿Cómo configurar WSO2 con el certificado Let's Encrypt?

Paso 1:Cree un archivo PKCS12/PFX usando cert.pem y privkey.pem archivos.

Usaremos el comando OpenSSL para exportar certificados al formato PKCS12/PFX y lo protegeremos con una contraseña segura cuando se le solicite.

$ openssl pkcs12 -export -in cert.pem -inkey privkey.pem -name "letsencrypt" -out letsencrypt.pfx
Nota:

La opción -name toma el alias como valor. El alias puede ser cualquier nombre y se requiere para usarlo en los archivos de configuración de WSO2 más adelante.

Paso 2:crear un almacén de claves de Java

Una vez que tenga listo el archivo PFX, cree el almacén de claves de Java con el siguiente comando.

$ keytool -importkeystore -srckeystore letsencrypt.pfx -srcstoretype pkcs12 -destkeystore letsencrypt.jks -deststoretype JKS

Para que el comando anterior funcione, deberá tener instalado JDK (por supuesto, ya tiene la configuración de WSO2 lista). El comando keytool estaría ubicado dentro de bin directorio del JDK.

El comando anterior solicitará la contraseña del almacén de claves de origen y del almacén de claves de destino.

Paso 3:exporte la clave pública del archivo Java Keystore.

WSO2 viene con el almacén público de confianza (client-truststore.jks y este archivo debe actualizarse con la clave pública del archivo JKS creado en el paso 2.

Así que sigamos adelante y exportemos la clave pública desde letsencrypt.jks expediente. Para hacer eso, ejecute el siguiente comando.

$ keytool -export -alias "letsencrypt" -keystore letsencrypt.jks -file letsencrypt.pem
Nota:

Recuerde usar el mismo alias 'letsencrypt ' que había configurado en el paso 1.

Paso 4 :Mover letsencrypt.jks y letsencrypt.pem archivos al siguiente directorio.

$ cp letsencrypt.jks letsencrypt.pem <WSO2_APIM>/repository/resources/security
Nota:

WSO2_APIM debe reemplazarse con el directorio de instalación de WSO2.

Paso 5: Agregue una clave pública a client-truststore.jks

$ cd <WSO2_APIM>/repository/resources/security
$ keytool -import -alias letsencrypt -file letsencrypt.pem -keystore client-truststore.jks -storepass wso2carbon
Nota:

-storepass toma el valor como wso2carbon , que es la contraseña predeterminada del almacén de confianza del cliente.

Paso 6:Configure Keystore con WSO2 API Manager.

Configure WSO2 API Manager con el nuevo almacén de claves creado en el paso 2. Para hacerlo, es necesario editar los siguientes archivos.

Algunas versiones de WSO2 requieren carbon.xml archivo para ser editado, pero las últimas versiones solo necesitan el deployment.toml archivo a cambiar (ya que WSO2 logró simplificar el modelo de configuración).

$ vi <WSO2_APIM>/repository/conf/carbon.xml

Busque <KeyStore> etiquete y reemplácelo con el siguiente.

<KeyStore>
<!-- Keystore file location-->
<Location>${carbon.home}/repository/resources/security/letsencrypt.jks</Location>
<!-- Keystore type (JKS/PKCS12 etc.)-->
<Type>JKS</Type>
<!-- Keystore password-->
<Password><Keystore password></Password>
<!-- Private Key alias-->
<KeyAlias>letsencrypt</KeyAlias>
<!-- Private Key password-->
<KeyPassword><Keystore password></KeyPassword>
</KeyStore>
Nota:

Recuerde usar la misma contraseña y alias del almacén de claves al crear el archivo JKS en el paso 2

Cambie el deployment.toml archivo con los detalles del nuevo Keystore:

$vi <WSO2_APIM>/repository/conf/deployment.toml
[keystore.tls]
file_name = "letsencrypt.jks"
type = "JKS"
password = "<Keystore password>"
alias = "letsencrypt"
key_password = "<Keystore password>"

Supongo que modificando deployment.toml debería ser suficiente. Sin embargo, si las cosas no funcionan de inmediato, puede editar los archivos a continuación (probablemente necesarios para las versiones anteriores de WSO2 API Manager).

$ cd <WSO2_APIM>/repository/conf/
$ grep -rn "*.jks"

Edite todos los archivos enumerados con las entradas relevantes del almacén de claves.

Ahora continúe y reinicie el servidor WSO2.

$ <WSO_APIM>/bin/api-manager.sh --restart

Paso 7 :Inicie sesión en la interfaz de Carbon y verifique si el nuevo almacén de claves se agregó correctamente. Haga clic en Keystores > List.

Paso 8: Si no encuentra el almacén de claves, puede agregarlo manualmente haciendo clic en Keystores > Add .

¡Eso es todo! Ahora verá el candado verde junto a la URL de WSO2 en la barra de direcciones del navegador.

Aún así, ¿tienes problemas? Es posible que deba consultar las siguientes referencias.

  • Configurar WSO2 con un certificado válido
  • Importación de certificado SSL a almacenes de claves WSO2

Linux
  1. Cómo administrar los certificados Lets Encrypt SSL/TLS con certbot

  2. Asegure Nginx con Let's Encrypt en Ubuntu 18.04 - ¿Cómo hacerlo?

  3. Cómo instalar Let's Encrypt con Apache en CentOS 7

  4. Cómo proteger Nginx con Let's Encrypt en Ubuntu 20.04

  5. Cómo obtener un certificado SSL gratuito con SSL It! y Let's Encrypt en Plesk

Cómo instalar Let's Encrypt SSL con Nginx en CentOS 7

Cómo instalar LetsEncrypt con Nginx en Ubuntu 15.04

Proteja Nginx con el certificado Let's Encrypt SSL en Ubuntu 18.04

Cómo proteger Nginx con el certificado SSL de Let's Encrypt

Cómo proteger Apache con Let's Encrypt en CentOS 8

Cómo proteger Nginx con Let's Encrypt en CentOS 8