Generar un certificado SSL

Necesitará un certificado SSL para el contenedor de Blue Prism Decision. Según los requisitos de seguridad de su infraestructura y de la organización de TI, este podría ser un certificado SSL creado internamente o un certificado adquirido.

El contenedor de Blue Prism Decision requiere una clave de cliente y una clave de servidor para garantizar que la comunicación entre el complemento Decision en el Hub y el contenedor Decision sea segura.

Los certificados autofirmados se pueden utilizar, pero solo se recomiendan para entornos POC/POV/Dev. Para entornos de producción, utilice certificados de la autoridad de certificación aprobada de su organización. Se recomienda que se comunique con su equipo de Seguridad de TI para verificar cuáles son sus requisitos. Deberá asegurarse de que su autoridad de certificación le proporcione los siguientes archivos:

  • server.crt
  • server.key
  • ca.crt
  • client.crt

Certificado autofirmado

Para los entornos de POC/POV/Dev, puede crear un certificado mediante el siguiente proceso. Este proceso requiere que se instale OpenSSL. Estas instrucciones son para Windows Server. Si está usando Linux, realice los ajustes necesarios.

  1. Si aún no lo tiene, instale OpenSSL.

  2. Cree una carpeta donde ejecutará el script (en el siguiente paso) para que el resultado se genere en un solo lugar.
  3. En la carpeta que creó, utilice uno de los siguientes scripts según el sistema operativo host, ingresando los valores apropiados indicados en las variables en la parte superior del script:

    Ingrese la contraseña del certificado: reemplácela por una contraseña que se utilizará para crear el certificado.

    Ingrese CN para el certificado del cliente: reemplace con un nombre común para el certificado del cliente, por ejemplo, client.decision.blueprism.com.

    Ingrese CA: reemplace con el nombre común de la Autoridad de certificación, por ejemplo, decisionCA.

    Introduzca CN para el certificado del servidor: reemplace con un nombre común para el certificado de servidor. Esto debe coincidir con el nombre de dominio completo (FQDN) del contenedor de Decision, por ejemplo, decision.blueprism.com. O bien, si el contenedor está en el mismo servidor que Hub, utilice, por ejemplo, decision.local.

    Script para crear certificados en Windows

    Ejecute PowerShell como administrador y utilice el siguiente script:

    Copiar
    $cred = Get-Credential -UserName 'Enter certificate password' -Message 'Enter certificate password'
    $mypwd = $cred.GetNetworkCredential().password
    $clientCN = Read-Host "Enter CN for client certificate"
    $CA = Read-Host "Enter CA"
    $serverCN = Read-Host "Enter CN for server certificate"

    echo Generate CA key:
    openssl genrsa -passout pass:$mypwd -des3 -out ca.key 4096

    echo Generate CA certificate:
    $CASubject = "/CN=" + $CA
    openssl req -passin pass:$mypwd -new -x509 -days 365 -key ca.key -out ca.crt -subj $CASubject

    echo Generate server key:
    openssl genrsa -passout pass:$mypwd -des3 -out server.key 4096

    echo Generate server signing request:
    $serverSubject = "/CN=" + $serverCN
    openssl req -passin pass:$mypwd -new -key server.key -out server.csr -subj $serverSubject

    echo Self-sign server certificate:
    openssl x509 -req -passin pass:$mypwd -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

    echo Remove passphrase from server key:
    openssl rsa -passin pass:$mypwd -in server.key -out server.key

    echo Generate client key
    openssl genrsa -passout pass:$mypwd -des3 -out client.key 4096

    echo Generate client signing request:
    $clientSubject = "/CN=" + $clientCN
    openssl req -passin pass:$mypwd -new -key client.key -out client.csr -subj $clientSubject

    echo Self-sign client certificate:
    openssl x509 -passin pass:$mypwd -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

    echo Remove passphrase from client key:
    openssl rsa -passin pass:$mypwd -in client.key -out client.key

    echo Generate pfx from client key:
    openssl pkcs12 -export -password pass:$mypwd -out client.pfx -inkey client.key -in client.crt

    Los certificados se generan en la carpeta que creó.

    Script para crear certificados en Linux

    Ejecute el siguiente script de Bash:

    Copiar
    #!/bin/sh

    read -s -p 'Enter certificate password: ';
    CER_PWD=${REPLY};
    echo "";

    read -p 'Enter CN for client certificate: ';
    CLIENT_CN=${REPLY};
    #echo "";

    read -p 'Enter CA: ';
    CA=${REPLY};
    #echo "";

    read -p 'Enter CN for server certificate: ';
    SERVER_CN=${REPLY};
    #echo "";

    unset REPLY;

    echo Generate CA key:
    openssl genrsa -passout pass:$CER_PWD -des3 -out ca.key 4096

    echo Generate CA certificate:
    CA_SUBJECT="/CN=${CA}"
    openssl req -passin pass:$CER_PWD -new -x509 -days 365 -key ca.key -out ca.crt -subj $CA_SUBJECT

    echo Generate server key:
    openssl genrsa -passout pass:$CER_PWD -des3 -out server.key 4096

    echo Generate server signing request:
    SERVER_SUBJECT="/CN=${SERVER_CN}"
    openssl req -passin pass:$CER_PWD -new -key server.key -out server.csr -subj $SERVER_SUBJECT

    echo Self-sign server certificate:
    openssl x509 -req -passin pass:$CER_PWD -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

    echo Remove passphrase from server key:
    openssl rsa -passin pass:$CER_PWD -in server.key -out server.key

    echo Generate client key
    openssl genrsa -passout pass:$CER_PWD -des3 -out client.key 4096

    echo Generate client signing request:
    CLIENT_SUBJECT="/CN=${CLIENT_CN}"
    openssl req -passin pass:$CER_PWD -new -key client.key -out client.csr -subj $CLIENT_SUBJECT

    echo Self-sign client certificate:
    openssl x509 -passin pass:$CER_PWD -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

    echo Remove passphrase from client key:
    openssl rsa -passin pass:$CER_PWD -in client.key -out client.key

    echo Generate pfx from client key:
    openssl pkcs12 -export -password pass:$CER_PWD -out client.pfx -inkey client.key -in client.crt

    Los certificados se generan en la carpeta que creó.

  4. Agregue el certificado como certificado de confianza en la máquina local ejecutando los siguientes scripts:

    Copiar
    $scriptPath = (Get-Item .).FullName
    $crt = "$($scriptPath)\client.pfx"
    $mypwd = Get-Credential -UserName 'Enter password' -Message 'Enter password'
    Import-PfxCertificate -FilePath $crt -CertStoreLocation Cert:\LocalMachine\My -Password $mypwd.Password

    Copiar
    $scriptPath = (Get-Item .).FullName
    $crt = "$($scriptPath)\ca.crt"
    Import-Certificate -FilePath $crt -CertStoreLocation Cert:\LocalMachine\Root

  5. Dar acceso al certificado del cliente para usuarios de ISS:

    1. Abra Administrar certificados de computadora y ubique el certificado del cliente.
    2. Haga clic con el botón derecho en el certificado y seleccione Todas las tareas, y luego Administrar claves privadas….
    3. Agregue IIS_IUSRS con el permiso de Lectura.
    4. Haga clic en Aplicar.

Si está utilizando diferentes máquinas para alojar el contenedor de Blue Prism Decision Model Service y Blue Prism Hub, deberá asegurarse de lo siguiente:

  • El host del contenedor de Decision Model Service tiene los siguientes archivos:
    • server.crt
    • server.key
    • ca.crt
  • El servidor que ejecuta Blue Prism Hub tiene los siguientes archivos:
    • client.crt
    • ca.crt