- 概要
- 要件
- インストール前
- インストール
- インストール後
- 移行とアップグレード
- クラスターの管理
- 製品固有の設定
- トラブルシューティング

OpenShift の Automation Suite のインストール ガイド
証明書を管理する
インストール プロセスによって、ユーザーに代わって自己署名証明書が生成されます。インストールが完了したら、信頼された証明機関 (CA) によって署名された証明書にすみやかに置換する必要があります。
uipathctl
CLI ツールを使用して、インストール後に証明書を更新できます。詳しくは、uipathctl のドキュメントをご覧ください。
CSR および秘密キーを生成するには、次のコマンドを実行します。
# copy the machine openssl configuration locally
cp /etc/pki/tls/openssl.cnf ./openssl.tmp.cnf
# Replace the [AUTOMATION_SUITE_FQDN] value. For example, "automationsuite.corp.com"
AS_FQDN=[AUTOMATION_SUITE_FQDN]
cat >> ./openssl.tmp.cnf <<EOF
[SAN]
subjectAltName=DNS:$AS_FQDN,DNS:alm.$AS_FQDN,DNS:monitoring.$AS_FQDN,DNS:registry.$AS_FQDN,DNS:objectstore.$AS_FQDN,DNS:insights.$AS_FQDN,DNS:apps.$AS_FQDN
EOF
# create the certificate request
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -subj "/C=xx/ST=xx/O=xx/OU=xx/CN=$AS_FQDN" -reqexts SAN -config openssl.tmp.cnf -out ${AS_FQDN}.csr
# copy the machine openssl configuration locally
cp /etc/pki/tls/openssl.cnf ./openssl.tmp.cnf
# Replace the [AUTOMATION_SUITE_FQDN] value. For example, "automationsuite.corp.com"
AS_FQDN=[AUTOMATION_SUITE_FQDN]
cat >> ./openssl.tmp.cnf <<EOF
[SAN]
subjectAltName=DNS:$AS_FQDN,DNS:alm.$AS_FQDN,DNS:monitoring.$AS_FQDN,DNS:registry.$AS_FQDN,DNS:objectstore.$AS_FQDN,DNS:insights.$AS_FQDN,DNS:apps.$AS_FQDN
EOF
# create the certificate request
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -subj "/C=xx/ST=xx/O=xx/OU=xx/CN=$AS_FQDN" -reqexts SAN -config openssl.tmp.cnf -out ${AS_FQDN}.csr
IT チームが、取得した値を使用して署名証明書を生成します。生成された秘密キーはローカルのままです。
TLS 証明書の更新に関する詳細情報を表示するには、次のコマンドを実行します。
uipathctl config update-tls-certificates --help
uipathctl config update-tls-certificates --help
出力:
************************************************************************************
Manage tls certificates
Usage:
uipathctl config tls-certificates [flags]
uipathctl config tls-certificates [command]
Available Commands:
get Get the current tls certificates
update Update tls certificates
Flags:
-h, --help help for tls-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
************************************************************************************
************************************************************************************
Manage tls certificates
Usage:
uipathctl config tls-certificates [flags]
uipathctl config tls-certificates [command]
Available Commands:
get Get the current tls certificates
update Update tls certificates
Flags:
-h, --help help for tls-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
************************************************************************************
<istio-system>
名前空間内に istio-ingressgateway-certs
という名前で確認できます。
証明書ファイルについては、以下のリストをご覧ください。
-
サーバー TLS 証明書は
tls.crt
として保存されます。 -
サーバー TLS 秘密キーは
tls.key
として保存されます。 -
CA バンドルは
ca.crt
として保存されます。
次のコマンドを使用して、シークレットを確認できます。
oc -n <istio-system> get secrets istio-ingressgateway-certs -o yaml
oc -n <istio-system> get secrets istio-ingressgateway-certs -o yaml
<uipath>
名前空間にも格納されます。 これは、受信呼び出しを信頼するために証明書情報を必要とするすべての UiPath® 製品に適用されます。 詳細については、「 証明書に関連するコンテナー アーキテクチャを理解する」をご覧ください。
サーバー証明書を更新する前に、証明書キーを復号する必要があります。復号手順をスキップすると、エラーが発生します。
証明書キーを復号するには、次のコマンドを実行します。
# replace /path/to/encrypted/cert/key to absolute file path of key
# replace /path/to/decrypt/cert/key to store decrypt key
# Once prompted, please entry the passphrase or password to decrypt the key
openssl rsa -in /path/to/encrypted/cert/key -out /path/to/decrypt/cert/key
# replace /path/to/encrypted/cert/key to absolute file path of key
# replace /path/to/decrypt/cert/key to store decrypt key
# Once prompted, please entry the passphrase or password to decrypt the key
openssl rsa -in /path/to/encrypted/cert/key -out /path/to/decrypt/cert/key
uipathctl
コマンドを実行します。3 つの証明書ファイルのそれぞれに対するパスが必要です。証明書ファイルは、いずれも pem
形式である必要があります。
-
証明機関バンドル - このバンドルには TLS サーバー証明書への署名に使用するチェーン証明書のみを含める必要があります。
--cacert
オプションで提供される証明書には、リーフ証明書を含めないでください。チェーンの制限は最大 9 個の証明書です。 -
サーバー証明書 - 公開サーバー証明書です。
手記:server.crt
ファイルには、 次に示すように、チェーン全体 例:-----server cert----- -----root ca chain-----
-----server cert----- -----root ca chain----- -
秘密キー - サーバー証明書の秘密キーです。
uipathctl config tls-certificates update --cert server.crt --cacert ca.crt --key server.key
uipathctl config tls-certificates update --cert server.crt --cacert ca.crt --key server.key
--use-istio-cert
フラグを使用する必要があります。 このフラグを使用すると、既存のシークレットを <uipath>
名前空間にコピーできます。 --use-istio-cert
フラグを使用するときは、他の証明書フラグを使用しないでください。使用しないと、コマンドは失敗します。<uipath>
の代わりに他の名前空間を使用する場合は、--namespace
フラグに渡して指定する必要があります。
クラスターに外部ソフトウェアを信頼させるには、追加の信頼された CA 証明書の提供が必要になる場合があります。 たとえば、SQL Server の CA 証明書、SMTP サーバーの CA 証明書、外部の S3 互換 ObjectStore の CA 証明書などがあります。
インストール時に、セキュリティで保護された TLS 通信を必要とする外部ソフトウェアすべてに対して CA 証明書を提供する必要があります。 ただし、TLS 通信を有効化していない場合は、インストール後に設定できます。
追加の CA 証明書の詳細情報を表示するには、次のコマンドを実行します。
uipathctl config additional-ca-certificates --help
uipathctl config additional-ca-certificates --help
出力:
***************************************************************************************
Manage additional ca certificates
Usage:
uipathctl config additional-ca-certificates [flags]
uipathctl config additional-ca-certificates [command]
Available Commands:
get Get the current additional ca certificates
update Update additional ca certificates
Flags:
-h, --help help for additional-ca-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
***************************************************************************************
***************************************************************************************
Manage additional ca certificates
Usage:
uipathctl config additional-ca-certificates [flags]
uipathctl config additional-ca-certificates [command]
Available Commands:
get Get the current additional ca certificates
update Update additional ca certificates
Flags:
-h, --help help for additional-ca-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
***************************************************************************************
uipathctl config additional-ca-certificates
コマンドを使用して実行できる操作について説明します。
このコマンドにより、既存の構成済み CA 証明書を更新または置換できます。
uipathctl config additional-ca-certificates update --cacert additional_ca.crt
uipathctl config additional-ca-certificates update --cacert additional_ca.crt
--replace
を追加してください。
.pem
形式である必要があり、複数の証明書を含めることができます。
Automation Suite では、ID トークン署名証明書のローテーションを管理する方法として、自動と手動の 2 つの方法が用意されています。
追加の ID トークン署名証明書の詳細情報を表示するには、次のコマンドを実行します。
uipathctl config token-signing-certificates --help
uipathctl config token-signing-certificates --help
出力:
************************************************************************************
Manage token signing certificates
Usage:
uipathctl config token-signing-certificates [flags]
uipathctl config token-signing-certificates [command]
Available Commands:
get Get the current token signing certificate
rotate Rotate token signing certificates
update Update future token signing certificate
Flags:
-h, --help help for token-signing-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
************************************************************************************
************************************************************************************
Manage token signing certificates
Usage:
uipathctl config token-signing-certificates [flags]
uipathctl config token-signing-certificates [command]
Available Commands:
get Get the current token signing certificate
rotate Rotate token signing certificates
update Update future token signing certificate
Flags:
-h, --help help for token-signing-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
************************************************************************************
証明書への署名には、キーの最大長 4096 ビットを使用できます。 ベスト プラクティスとして、少なくとも 512 ビット (64 バイト) のキー長を使用することを強くお勧めします。
uipathctl config token-signing-certificates
コマンドを使用して実行できる操作について詳しく説明します。
証明書の自動ローテーションとは、署名キーのライフサイクルを Automation Suite が管理することを意味します。 これには、90 日ごとのキーのローテーション、ローテーションの 14 日前に新しいキーのアナウンス、ローテーション後の 14 日間古いキーを保持し、14 日間の期間が終了したら削除することが含まれます。
古いバージョンから v2024.10 にアップグレードする場合、証明書の自動ローテーションは既定で無効化されています。 自動キー管理を有効にするには、次のコマンドを使用します。
uipathctl config token-signing-certificates automatic-key-management enable
uipathctl config token-signing-certificates automatic-key-management enable
証明書の自動ローテーションを有効化すると、最大 1 時間のダウンタイムが発生する可能性があります。
Automation Suite のクリーン インストールの場合、証明書の自動ローテーションは既定で有効化されています。 自動キー管理を無効にするには、次のコマンドを使用します。
uipathctl config token-signing-certificates automatic-key-management disable
uipathctl config token-signing-certificates automatic-key-management disable
自動管理機能が無効になっている場合は、署名証明書を手動で更新およびローテーションする必要があります。 手動のキー管理について詳しくは、証明書の手動更新とローテーションに関するドキュメントをご覧ください。
新しい証明書をアップロードしてトークンに署名するには、次のコマンドを実行します。
次のコマンドでは、既存のトークン署名証明書は置換されません。
.pem
形式であることを確認します。
server.crt
ファイルにはチェーン全体が含まれている必要があります。
-----server cert-----
-----root ca chain-----
-----server cert-----
-----root ca chain-----
uipathctl config token-signing-certificates update --cert server.crt --key server.key
uipathctl config token-signing-certificates update --cert server.crt --key server.key
古い証明書をローテーションしたり、新しい証明書に置換したりするには、次のコマンドを実行します。
uipathctl config token-signing-certificates rotate
uipathctl config token-signing-certificates rotate
ローテーション後、次のコマンドを実行して、デプロイとステートフル セットを再起動します。
kubectl -n uipath rollout restart deploy
kubectl -n uipath rollout restart sts
kubectl -n uipath rollout restart deploy
kubectl -n uipath rollout restart sts
現在のトークン署名証明書をダウンロードするには、次のコマンドを実行します。
uipathctl config token-signing-certificates get
uipathctl config token-signing-certificates get
証明書の更新とローテーションの間には、約 24 - 48 時間のリード タイムが必要です。
このリード タイムは、キャッシュされている、古い証明書によって署名されたトークンの認証を引き続きサポートするために必要となります。
キャッシュ トークンの有効期限の満了を待たずに証明書をローテーションすると、ダウンタイムが発生する場合があります。この場合、すべてのロボットの再起動が必要になる可能性もあります。