Générer un certificat SSL

Vous avez besoin d'un certificat SSL pour le conteneur de Blue Prism Decision. Selon les exigences de sécurité de votre infrastructure et de votre organisation informatique, il peut s'agir d'un certificat SSL créé en interne ou d'un certificat acheté.

Le conteneur de Blue Prism Decision nécessite une clé client et une clé serveur pour s'assurer que la communication entre le plug-in Decision dans Hub et le conteneur Decision est sécurisée.

Les certificats autosignés peuvent être utilisés, mais ne sont recommandés que pour les environnements POC\POV\Dev. Pour les environnements de production, utilisez les certificats de l'autorité de certification approuvée de votre organisation. Il est recommandé de contacter votre équipe de sécurité informatique pour vérifier leurs exigences. Vous devrez vous assurer que votre autorité du certificat fournit les fichiers suivants :

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

Certificat autosigné

Pour les environnements POC\POV\Dev, vous pouvez créer un certificat à l'aide du processus suivant. Ce processus nécessite l'installation d'OpenSSL. Ces instructions concernent un serveur Windows Server. Si vous utilisez Linux, veuillez faire les ajustements nécessaires.

  1. Si vous ne l'avez pas déjà, installez OpenSSL.

  2. Créez un dossier dans lequel vous exécuterez le script (à l'étape suivante) afin que la sortie soit générée à un seul endroit.
  3. Dans le dossier que vous avez créé, utilisez l'un des scripts suivants en fonction du système d'exploitation hôte, en saisissant les valeurs appropriées indiquées dans les variables en haut du script :

    Saisir le mot de passe du certificat : remplacer par un mot de passe qui sera utilisé pour créer le certificat.

    Saisir CN pour le certificat client : remplacer par un nom commun pour le certificat client, par exemple, client.decision.blueprism.com.

    Saisir CA : remplacer par le nom commun de l'autorité du certificat, par exemple, decisionCA.

    Saisir CN pour le certificat de serveur : remplacer par un nom commun pour le certificat de serveur. Il doit correspondre au nom de domaine explicite (FQDN) du conteneur Decision, par exemple, decision.blueprism.com. Ou, si le conteneur se trouve sur le même serveur que Hub, utilisez, par exemple, decision.local.

    Script pour la création de certificats dans Windows

    Exécutez PowerShell en tant qu'administrateur et utilisez le script suivant :

    Copier
    $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

    Les certificats sont générés dans le dossier que vous avez créé.

    Script pour la création de certificats dans Linux

    Exécutez le script Bash suivant :

    Copier
    #!/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

    Les certificats sont générés dans le dossier que vous avez créé.

  4. Ajoutez le certificat en tant que certificat de confiance sur la machine locale en exécutant les scripts suivants :

    Copier
    $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

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

  5. Accorder aux utilisateurs IIS l'accès au certificat client :

    1. Ouvrez Gérer les certificats informatiques et localisez le certificat client.
    2. Cliquez avec le bouton droit de la souris sur le certificat, sélectionnez Toutes les tâches, puis Gérer les clés privées….
    3. Ajoutez IIS_IUSRS avec la permission Lecture.
    4. Cliquez sur Appliquer.

Si vous utilisez différentes machines pour héberger le conteneur de Blue Prism Decision Model Service et Blue Prism Hub, vous devrez vous assurer que :

  • L'hôte du conteneur de Decision Model Service comporte les fichiers suivants :
    • server.crt
    • server.key
    • ca.crt
  • Le serveur exécutant Blue Prism Hub possède les fichiers suivants :
    • client.crt
    • ca.crt