生成 SSL 证书

您需要为 Blue Prism Decision 容器提供 SSL 证书。根据您的基础设施和 IT 组织安全要求,该证书可以是内部创建的 SSL 证书,也可以是购买的证书。

Blue Prism Decision 容器需要客户端密钥和服务器密钥,以确保 Hub 中的 Decision 插件和 Decision 容器之间的通信是安全的。

可使用自签名证书,但建议仅用于 POC\POV\Dev 环境。对于生产环境,请使用组织批准的证书颁发机构提供的证书。建议您联系 IT 安全团队,了解他们的要求。您需要确保您的证书颁发机构为您提供以下文件:

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

自签名证书

对于 POC\POV\Dev 环境,您可以使用以下流程创建证书。此流程需要安装 OpenSSL。这些说明适用于 Windows Server。如果您正在使用 Linux,请进行必要的调整。

  1. 如果您没有 OpenSSL,请安装 OpenSSL

  2. 创建一个文件夹,您可以在其中运行脚本(在下一步中),以便在单个位置生成输出。
  3. 在您创建的文件夹中,根据主机操作系统,在脚本顶部的变量中输入指示的相应值:

    输入证书密码—替换为将用于创建证书的密码。

    输入客户端证书的 CN—替换为客户端证书的通用名称,例如 client.decision.blueprism.com。

    输入 CA—替换为证书颁发机构通用名称,例如,decisionCA。

    输入服务器证书的 CN—替换为服务器证书的通用名称。这必须与 Decision 容器 完全限定域名 (FQDN) 匹配,例如,decision.blueprism.com。或者,如果容器 与 Hub 位于同一服务器,请使用例如 decision.local。

    在 Windows 中创建证书的脚本

    以管理员身份运行 PowerShell,并使用以下脚本:

    复制
    $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

    证书将在您创建的文件夹中生成。

    在 Linux 中创建证书的脚本

    运行以下 Bash 脚本:

    复制
    #!/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

    证书将在您创建的文件夹中生成。

  4. 添加为本地计算机上的可信证书:

    复制
    $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

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

  5. 授予 IIS 用户访问证书的权限:

    1. 打开“管理计算机证书”,然后找到证书。
    2. 右键点击该证书并选择“所有任务”,然后选择“管理私钥...”。
    3. 添加具有读取权限的 IIS_IUSRS
    4. 点击应用

如果您使用不同的计算机托管 Blue Prism Decision Model Service 容器和 Blue Prism Hub,您需要确保下列事项:

  • Decision Model Service 容器主机具有以下文件:
    • server.crt
    • server.key
    • ca.crt
  • 运行 Blue Prism Hub 的服务器具有以下文件:
    • client.crt
    • ca.crt