チュートリアル: Node.js の Sitecore CA 証明書の設定

Version: 20.x
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

ローカル環境では、Sitecore インスタンスは、非公開で署名された証明書を使用してインストールされます。ただし、ルート CA が不明であるため、これらは Node.js によって拒否されます。Node.js 7.3.0 以降では、既知の追加の証明書を Node.js に NODE_EXTRA_CA_CERTS 環境変数で追加することができます。

非公開で署名された証明書が正しく設定されていないと、JSS アプリケーションの実行中にコード UNABLE_TO_VERIFY_LEAF_SIGNATURE のエラーが表示されます。以下に例を示します。

RequestResponse
Error: unable to verify the first certificate
 ...
 type: 'system',
  errno: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
  code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
RequestResponse
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 によって作成されています。

証明書の場所を見つけるには、ターミナルのプロジェクトのルート ディレクトリで、次のコマンドを実行します。

RequestResponse
mkcert -CAROOT

証明書は PEM 形式で、既定では rootCA.pem という名前が付きます。ファイル パスは C:\Users\<username>\AppData\Local\mkcert\rootCA.pem のようになります。

Sitecore オンプレミス インスタンスで使用する証明書ファイルを作成します。

Sitecore インストール フレームワーク (SIF) でインストールされた Sitecore インスタンスの場合は、Windows 証明書ストアから証明書をエクスポートする必要があります。

証明書をエクスポートするには:

  1. コマンド行で certlm を実行するか、「コンピューター証明書の管理」を検索して、ローカル コンピューターの Windows 証明書マネージャーを開きます。

  2. [信頼されたルート認証機関] &gt; [証明書] で [Sitecore Installation Framework] を右クリックし、[すべてのタスク]、[エクスポート] の順にクリックします。

  3. 新しいウィンドウで、[次へ] をクリックします。

  4. [エクスポート ファイルの形式] 画面で、[Base-64 encoded X.509 (.CER)] を選択し、[次へ] をクリックします。

  5. ファイル名 (例: SIFRoot.cer) を入力し、.cer ファイルの保存先を選択します。[次へ]、[完了] の順にクリックします。

注記

Sitecore のコンテナー インスタンスとオンプレミス インスタンスの両方を使用している場合は、証明書を 1 つのファイルに結合できます。以下に例を示します。

RequestResponse
-----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 を使用します。

  • ローカルまたはシステム環境で、次のコマンドを実行します。

    RequestResponse
    setx 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> ..."

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、