チュートリアル: Node.js の Sitecore CA 証明書の設定
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
ローカル環境では、Sitecore インスタンスは、非公開で署名された証明書を使用してインストールされます。ただし、ルート CA が不明であるため、これらは Node.js によって拒否されます。Node.js 7.3.0 以降では、既知の追加の証明書を Node.js に NODE_EXTRA_CA_CERTS
環境変数で追加することができます。
非公開で署名された証明書が正しく設定されていないと、JSS アプリケーションの実行中にコード UNABLE_TO_VERIFY_LEAF_SIGNATURE
のエラーが表示されます。以下に例を示します。
Error: unable to verify the first certificate
...
type: 'system',
errno: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
Error occurred while trying to proxy request /sitecore/api/layout/render/jss?item=%2F&sc_apikey={A6AAE4C9-EEFF-4728-BDCB-80292FDB16EC}
from localhost:3000 to <https://cm.localhost> (UNABLE_TO_VERIFY_LEAF_SIGNATURE)
このチュートリアルでは、非公開で署名された SSL 証明書を受け入れるように Node.js を設定する手順について説明します。
-
Sitecore コンテナーを使用している場合は、Sitecore インスタンスで使用される証明書ファイルを特定します。または、SIF Sitecore インストールのための証明書ファイルを作成します。
-
証明書を Node.js 環境に提供します。
Sitecore コンテナー インスタンスで使用される証明書ファイルを特定します。
Docker ベースの Sitecore コンテナーの場合は、証明書ファイルはプロジェクトのセットアップ中に mkcert
によって作成されています。
証明書の場所を見つけるには、ターミナルのプロジェクトのルート ディレクトリで、次のコマンドを実行します。
mkcert -CAROOT
証明書は PEM 形式で、既定では rootCA.pem
という名前が付きます。ファイル パスは C:\Users\<username>\AppData\Local\mkcert\rootCA.pem
のようになります。
Sitecore オンプレミス インスタンスで使用する証明書ファイルを作成します。
Sitecore インストール フレームワーク (SIF) でインストールされた Sitecore インスタンスの場合は、Windows 証明書ストアから証明書をエクスポートする必要があります。
証明書をエクスポートするには:
-
コマンド行で
certlm
を実行するか、「コンピューター証明書の管理」を検索して、ローカル コンピューターの Windows 証明書マネージャーを開きます。 -
[信頼されたルート認証機関] > [証明書] で [Sitecore Installation Framework] を右クリックし、[ ]、[ ] の順にクリックします。
-
新しいウィンドウで、[
] をクリックします。 -
[エクスポート ファイルの形式] 画面で、[Base-64 encoded X.509 (.CER)] を選択し、[ ] をクリックします。
-
ファイル名 (例: SIFRoot.cer) を入力し、
.cer
ファイルの保存先を選択します。[ ]、[ ] の順にクリックします。
Sitecore のコンテナー インスタンスとオンプレミス インスタンスの両方を使用している場合は、証明書を 1 つのファイルに結合できます。以下に例を示します。
-----BEGIN CERTIFICATE-----
{your mkcert certificate}
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
{your SIF certificate}
-----END CERTIFICATE-----
証明書を Node.js 環境に提供する
Node.js 環境に証明書を含めるには、それらを Node.js の既知のルート証明書に追加する必要があります。
この方法で定義された環境変数は、読み込みが遅すぎて Node.js によって認識されないため、.env
ファイルへの追加と dotenv
ライブラリーの使用は機能しません。
証明書を提出するには、いくつかのオプションがありますが、いずれも NODE_EXTRA_CA_CERTS
を使用します。
-
ローカルまたはシステム環境で、次のコマンドを実行します。
RequestResponsesetx NODE_EXTRA_CA_CERTS <file>
システム全体に証明書を設定するには、オプションの
/m
パラメーターを使用します。ターミナルまたはコード エディターを再起動して、変更を有効にします。
-
PowerShell セッションで、次のスクリプトを実行します。
RequestResponse$env:NODE_EXTRA_CA_CERTS="<file>"
新しいセッションを開始するときは、この手順を繰り返す必要があります。
-
JSS アプリケーションの
package.json
ファイルでstart:connected
スクリプトを編集します。RequestResponse"start:connected": "cross-env-shell NODE_EXTRA_CA_CERTS=<file> ..."