Hitachi

JP1 Version 12 JP1/Navigation Platform ナビゲーション プラットフォーム 導入から運用まで


4.10.2 HTTPS通信に必要なファイルの作成手順

HTTPS通信に必要なファイルの作成手順を説明します。

重要

ここで説明する手順で作成したファイルは,バックアップ/リストアコマンドの対象ではありません。必ず,バックアップを取得しておいてください。証明書発行要求(CSR)など,ナビゲーション プラットフォームのセットアップや起動時には不要なファイルについても,必要に応じてバックアップを取得することを推奨します。

〈この項の構成〉

(1) CA(認証局)からサーバー証明書を発行する場合のファイルの作成の流れ

ユーザセットアッププロパティファイル(ucnp_setup_user.properties)に次の値を指定しておいてください。

  1. 必要な暗号方式ごとに次の手順を実施します。

    • サーバー秘密鍵を作成

    • パスワードファイルを作成

    • 証明書発行要求(CSR)を作成

    • CAに証明書発行要求(CSR)を送付

    • CAからサーバー証明書,CA証明書を受領

  2. サーバー秘密鍵,パスワードファイル,サーバー証明書,およびCA証明書を配置します。

(2) 検証用の自己署名証明書を作成する場合のファイルの作成の流れ

ユーザセットアッププロパティファイル(ucnp_setup_user.properties)に次の値を指定しておいてください。

  1. 必要な暗号方式ごとに次の手順を実施します。

    • サーバー秘密鍵を作成

    • パスワードファイルを作成

    • 証明書発行要求(CSR)を作成

    • 自己署名証明書を作成

  2. サーバー秘密鍵,パスワードファイル,およびサーバー証明書を配置します。

(3) サーバー秘密鍵の作成手順(RSA暗号方式)

RSA暗号を利用したPKCS#1形式のWebサーバーの秘密鍵を作成します。

コマンドを実行すると,確認なしに出力ファイルで上書きされます。実行する前に,必要に応じて既存のファイルを退避してください。

  1. 次のコマンドを実行し,暗号化されたサーバー秘密鍵(PKCS#1形式)を作成します。

    形式

    "ナビゲーション プラットフォームインストールディレクトリ\PP\uCPSB\httpsd\sbin\openssl.bat"△genrsa△-rand△乱数生成用ファイルパス秘密鍵の暗号種別△-out△サーバー秘密鍵ファイルの出力パス秘密鍵のビット長

    パラメタ

    • 乱数生成用ファイルパス:乱数生成に利用する任意のファイルのパス

      乱数生成用のファイルは,十分に大きい適当なファイルを指定してください。

    • 秘密鍵の暗号種別:-desまたは-des3

      -desを指定した場合,暗号種別としてDES(Data Encryption Standard)が選択されます。

      -des3を指定した場合,暗号種別としてトリプルDESが選択されます。

      WebサーバーとWebブラウザ間の通信での暗号種別とは関係ありません。

    • サーバー秘密鍵ファイルの出力パス:

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem" (固定)

    • 秘密鍵のビット長:2048(固定)

    注意事項

    コマンドを実行すると,パスフレーズの入力を2回求められます。パスフレーズは,4〜64文字で,2回とも同じものを入力してください。パスフレーズに65文字以上を入力してもエラーにはならないので,注意してください。

    入力したパスフレーズは,他のコマンドを実行するときに利用するため,記録しておいてください。

    コマンド実行例

    "%UCNP_HOME%\PP\uCPSB\httpsd\sbin\openssl.bat" genrsa -rand "C:\Windows\System32\notepad.exe" -des -out "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem" 2048

(4) サーバー秘密鍵の作成手順(ECC(楕円曲線暗号)方式)

ECC(楕円曲線暗号)を利用したPKCS#8形式のWebサーバーの秘密鍵を作成します。

コマンドを実行すると,確認なしに出力ファイルで上書きされます。実行する前に,必要に応じて既存のファイルを退避してください。

  1. 次のコマンドを実行し,暗号化前のサーバー秘密鍵を作成します。

    形式

    "ナビゲーション プラットフォームインストールディレクトリ\PP\uCPSB\httpsd\sbin\openssl.bat"△ecparam△-genkey△-noout△-rand△乱数生成用ファイルパス△-name△楕円曲線名△-out△暗号化前のサーバー秘密鍵ファイルの出力パス

    パラメタ

    • 乱数生成用ファイルパス:乱数生成に利用する任意のファイルのパス

      乱数生成用のファイルは,十分に大きい適当なファイルを指定してください。

    • 楕円曲線名:P-256またはP-384

      秘密鍵の生成に利用する楕円曲線名を指定します。

    • 暗号化前のサーバー秘密鍵ファイルの出力パス:

      次の手順で入力とするファイルのパスを指定します。

      暗号化されていないサーバー秘密鍵ファイルなので,漏洩しないようにしてください。

    コマンド実行例

    "%UCNP_HOME%\PP\uCPSB\httpsd\sbin\openssl.bat" ecparam -genkey -noout -rand "C:\Windows\System32\notepad.exe" -name P-256 -out "%TEMP%\httpsdkey-ecc-unencrypted.pem"
  2. 次のコマンドを実行し,暗号化されたサーバー秘密鍵(PKCS#8形式)を作成します。

    形式

    "ナビゲーション プラットフォームインストールディレクトリ\PP\uCPSB\httpsd\sbin\openssl.bat"△pkcs8△-topk8△-in△暗号化前のサーバー秘密鍵ファイルのパス△-out△暗号化後のサーバー秘密鍵ファイルの出力パス△-v2△秘密鍵の暗号アルゴリズム

    パラメタ

    • 暗号化前のサーバー秘密鍵ファイルのパス:

      手順1で作成したファイルのパスを指定してください。

    • 暗号化後のサーバー秘密鍵ファイルの出力パス:

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey-ecc.pem" (固定)

    • 秘密鍵の暗号アルゴリズム:des-cbcまたはdes-ede3-cbc

      秘密鍵の暗号化のアルゴリズムを指定します。

      WebサーバーとWebブラウザ間の通信での暗号種別とは関係ありません。

    注意事項

    コマンドを実行すると,パスフレーズの入力を2回求められます。パスフレーズは,4〜64文字で,2回とも同じものを入力してください。パスフレーズに65文字以上を入力してもエラーにはならないので,注意してください。

    入力したパスフレーズは,他のコマンドを実行するときに利用するため,記録しておいてください。

    コマンド実行例

    "%UCNP_HOME%\PP\uCPSB\httpsd\sbin\openssl.bat" pkcs8 -topk8 -in "%TEMP%\httpsdkey-ecc-unencrypted.pem" -out "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey-ecc.pem" -v2 des-cbc

(5) パスワードファイルの作成手順

サーバー秘密鍵に対応するパスワードファイルを作成します。

この手順は,作成済みのサーバー秘密鍵が存在することを前提としています。また,RSA暗号方式,ECC方式の両方のサーバー秘密鍵に対応しています。

コマンドを実行すると,確認なしに出力ファイルで上書きされます。実行する前に,必要に応じて既存のファイルを退避してください。

  1. 次のコマンドを実行し,サーバー秘密鍵に対応するパスワードファイルを作成します。

    形式

    "ナビゲーション プラットフォームインストールディレクトリ\PP\uCPSB\httpsd\sbin\sslpasswd.bat"△サーバー秘密鍵ファイルのパスパスワードファイルの出力パス

    パラメタ

    • サーバー秘密鍵ファイルのパス:

      RSA暗号方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem"

      ECC方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey-ecc.pem"

    • パスワードファイルの出力パス:

      出力先パスを指定します。

      RSA暗号方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\.keypasswd"

      ECC方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\.keypasswd-ecc"

    コマンド実行例(RSA暗号方式の場合)

    "%UCNP_HOME%\PP\uCPSB\httpsd\sbin\sslpasswd.bat" "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem" "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\.keypasswd"

    コマンド実行例(ECC方式の場合)

    "%UCNP_HOME%\PP\uCPSB\httpsd\sbin\sslpasswd.bat" "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey-ecc.pem" "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\.keypasswd-ecc"

(6) 証明書発行要求(CSR)の作成手順

証明書発行要求(CSR)を作成します。自己署名証明書を作成する場合もこの手順で作成します。

この手順は,作成済みのサーバー秘密鍵が存在することを前提としています。また,RSA暗号方式,ECC方式の両方のサーバー秘密鍵に対応しています。

コマンドを実行すると,確認なしに出力ファイルで上書きされます。実行する前に,必要に応じて既存のファイルを退避してください。

  1. 次のコマンドを実行し,証明書発行要求(CSR)を作成します。

    コマンドを実行すると,パスフレーズの入力を求められます。サーバー秘密鍵の作成時に設定したパスフレーズを入力してください。

    形式

    "ナビゲーション プラットフォームインストールディレクトリ\PP\uCPSB\httpsd\sbin\openssl.bat"△req△-new△署名アルゴリズムに使用するハッシュ種別△-key△サーバー秘密鍵のファイルパス△-out△CSRファイルの出力パス△[-addext△subjectAltNameの値

    パラメタ

    • 署名アルゴリズムに使用するハッシュ種別:-sha256-sha384または-sha512

    • サーバー秘密鍵のファイルパス:

      RSA暗号方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem"

      ECC方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey-ecc.pem"

    • CSRファイルの出力パス:

      RSA暗号方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd.csr"

      ECC方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd-ecc.csr"

    • subjectAltNameの値:

      サーバー証明書のsubjectAltNameの値を設定します。

      サーバーのドメイン名またはIPアドレスを次の形式で指定できます。

      ・ドメイン名を1つ指定する場合の例

      "subjectAltName=DNS:jp1np.hitachi.jp"

      ・複数のドメイン名を指定する場合の例

      "subjectAltName=DNS:jp1np.hitachi.jp, DNS:jp1xxx.hitachi.jp"

      ・ドメイン名とIPアドレスを指定する場合の例

      "subjectAltName=DNS:jp1np.hitachi.jp, IP:192.168.0.1"

    コマンド実行例(RSA暗号方式,ドメイン名がjp1np.hitachi.jpの場合)

    "%UCNP_HOME%\PP\uCPSB\httpsd\sbin\openssl.bat" req -new -sha256 -key "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem" -out "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd.csr" -addext "subjectAltName=DNS:jp1np.hitachi.jp"

(7) 自己署名証明書の作成手順

検証用に,CA(認証局)を介さずに動作確認用のサーバー証明書(自己署名証明書)を作成する場合の手順を説明します。

この手順は,作成済みのサーバー秘密鍵が存在することを前提としています。また,RSA暗号方式,ECC方式の両方のサーバー秘密鍵に対応しています。

コマンドを実行すると,確認なしに出力ファイルで上書きされます。実行する前に,必要に応じて既存のファイルを退避してください。

  1. サーバー証明書のsubjectAltNameの値を設定する場合は,subjectAltNameの値を記載するテキストファイルを作成します。

    この手順では,san.txtというファイル名で作成したものとして説明します。

    ファイルの形式

    subjectAltName△=△subjectAltNameの値

    ファイルの例(ドメイン名を1つ指定する場合)

    subjectAltName = DNS:jp1np.hitachi.jp

    ファイルの例(IPアドレスを指定する場合)

    subjectAltName = IP:192.168.0.1
  2. 次のコマンドを実行し,サーバー証明書を作成します。

    形式

    "ナビゲーション プラットフォームインストールディレクトリ\PP\uCPSB\httpsd\sbin\openssl.bat"△x509△-req△-days△有効期間(日数)△-in△証明書発行要求(CSR)のファイルパス△-signkey△サーバー秘密鍵のファイルパス△-out△サーバー証明書ファイルの出力パス△[-extfile△subjectAltNameの値を設定するためのファイルのパス

    パラメタ

    • 有効期間(日数):1〜10000の整数

    • 証明書発行要求(CSR)のファイルパス:

      RSA暗号方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd.csr"

      ECC方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd-ecc.csr"

    • サーバー秘密鍵のファイルパス:

      RSA暗号方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem"

      ECC方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey-ecc.pem"

    • サーバー証明書ファイルの出力パス:

      RSA暗号方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd.pem"

      ECC方式の場合

      "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd-ecc.pem"

    • subjectAltNameの値を設定するためのファイルのパス:

      手順1で作成したファイルをフルパスで指定してください。

    コマンド実行例(RSA暗号方式の場合)

    "%UCNP_HOME%\PP\uCPSB\httpsd\sbin\openssl.bat" x509 -req -days 3650 -in "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd.csr" -signkey "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem" -out "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\httpsd.pem" -extfile "%UCNP_HOME%\PP\uCPSB\httpsd\conf\ssl\server\san.txt"