ウォークスルー
.js用のSitecore CA証明書の設定方法

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

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

ローカル環境では、Sitecoreインスタンスはプライベート署名済みの証明書を使ってインストールされます。しかし、ルートCAが不明であるため、Node.jsによって拒否されます。7.3.0 Node.js以降は、NODE_EXTRA_CA_CERTS環境変数でよく知られた追加証明書をNode.jsに追加することが可能です。

プライベート署名済みの証明書が正しく設定されていないと、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

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\\AppData\Local\mkcert\rootCA.pemのような形になります。

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

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

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

  1. コマンドラインからcertlmまたは「Manage Computer Certificates」を検索してローカルコンピュータのWindows証明書マネージャーを開きます。
  2. Trusted Root Certification > Certificates」の「Trusted Root Certification」「 Installation Framework 」証明書Sitecoreを右クリックし、「All Tasks」をクリックし、「エクスポート」を選びます。
  3. 新しいウィンドウで「次へ」をクリックしてください。
  4. エクスポートファイルフォーマット画面で、**Base-64でエンコードされたX.509(.CER)**を選び、「次へ」をクリックします。
  5. 例えば、ファイル名、SIFRoot.cer 、.cerファイルを保存する場所を入力します。「次へ」をクリックし、「終了」をクリックします。

!注Sitecoreコンテナとオンプレミスインスタンスの両方を持っている場合、証明書を1つのファイルにまとめることができます。例えば:

-----BEGIN CERTIFICATE-----{YOUR MKCERT CERTIFICATE}-----END CERTIFICATE-----

-----証明書開始-----{あなたのSIF証明書}-----証明書終了-----

Node.js環境に証明書を提供します

Node.js環境に証明書を含めるには、Node.jsのよく知られたルート証明書に追加する必要があります。

!重要.envファイルに追加してdotenvライブラリを使うと、環境変数がこの方法で定義されたものは読み込みが遅すぎて認識Node.jsないためうまくいきません。

証明書を提供するには、以下のNODE_EXTRA_CA_CERTSを使った複数の選択肢があります:

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

    setx NODE_EXTRA_CA_CERTS

    システム全体の証明書を設定するには、オプションの /mパラメータを使用します。

    変更を有効にするには端末かコードエディタを再起動してください。

  • PowerShellセッションで、以下のスクリプトを実行します。

    $env

    _EXTRA_CA_CERTS=""

    新しいセッションを始めるときにこの手順を繰り返す必要があります。

  • JSSアプリケーションのpackage.jsonファイルでスクリプトをstart:connected修正します:

    "start

    ": "cross-env-shell NODE_EXTRA_CA_CERTS= ..."

この記事を改善するための提案がある場合は、 お知らせください!