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をインストールします。

  2. 次のステップでスクリプトを実行するためのフォルダーを作成し、出力が1か所に生成されるようにします。
  3. 作成したフォルダーで、ホストのオペレーティングシステムに応じて次のいずれかのスクリプトを使用し、スクリプトの上部にある変数で指定された適切な値を入力します。

    Enter certificate password – 証明書の作成に使用するパスワードに置き換えます。

    Enter CN for client certificate – クライアント証明書のコモンネーム(client.decision.blueprism.comなど)に置き換えます。

    Enter CA – 証明局のコモンネーム(decisionCAなど)に置き換えます。

    Enter CN for server certificate – サーバー証明書のコモンネームに置き換えます。これは、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