1.8.6 REST APIクライアントとREST APIサーバ間でSSL通信するよう設定する(自己署名証明書を使用する場合)
背景
- 注意
-
サーバ証明書および秘密鍵は、REST APIサーバにログインしたすべてのユーザがアクセスできます。悪意のあるユーザがログインできないよう、ユーザアカウントの管理には十分に注意してください。
- ヒント
-
Linuxの場合、OpenSSLのファイルが手順中のパスとは異なる場所に格納されていることがあります。次の手順では、opensslファイルおよびopenssl.cfgファイルが<OpenSSLのインストール先>/binにある環境を想定しています。
次のコマンドを実行すると、openssl.cfgの格納先を確認できます。
<OpenSSLのインストール先>/bin/openssl version -a | grep OPENSSLDIR
操作手順
-
次のコマンドを実行して、秘密鍵ファイルを作成します。
- Windowsの場合:
- <OpenSSLのインストール先>\bin\openssl genrsa -out <秘密鍵ファイル> 2048
- Linuxの場合:
- <OpenSSLのインストール先>/bin/openssl genrsa -out <秘密鍵ファイル> 2048
オプション
- out
- 作成する秘密鍵の出力先パスを指定します。出力先パスに同じ名称のファイルがある場合、ファイルが上書きされます。
- ヒント
-
秘密鍵ファイルは、次の場所にcreatedServer.keyというファイル名で保存しておくことをお勧めします。
- Windowsの場合:
- <REST APIのインストール先>\oss\apache\conf\ssl.key\createdServer.key
- Linuxの場合:
- <REST APIのインストール先>/oss/apache/conf/ssl.key/createdServer.key
このディレクトリには、REST APIが配置したserver.keyファイルが格納されています。server.keyファイルを上書きしないでください。
-
次のコマンドを実行して、証明書に書かれる情報を対話形式で入力し、証明書発行要求ファイルを作成します。
- Windowsの場合:
- <OpenSSLのインストール先>\bin\openssl req -config <OpenSSLのインストール先>\bin\openssl.cfg -sha256 -new -key <秘密鍵ファイル> -out <証明書発行要求ファイル>
- Linuxの場合:
- <OpenSSLのインストール先>/bin/openssl req -config <OpenSSLのインストール先>/bin/openssl.cfg -sha256 -new -key <秘密鍵ファイル> -out <証明書発行要求ファイル>
オプション
- key
- 手順1で作成した秘密鍵ファイル名を指定します。
- out
- 作成する証明書発行要求の出力先パスを指定します。出力先パスに同じ名称のファイルがある場合、ファイルが上書きされます。
入力する情報を次に示します。
項目
説明
Country Name
(必須)2 文字の国コードを指定します。
State or Province Name
(必須)都道府県名を指定します。
Locality Name
(任意)市区町村名または地域名を指定します。
Organization Name
(必須)組織名を指定します。
Organization Unit Name
(任意)組織の構成単位名を指定します。
Common Name
(必須)REST APIサーバの IP アドレスまたはホスト名を入力します。
Email Address
(任意)メールアドレスを指定します。
A challenge password
(任意)証明書を破棄するときに必要になるパスワードを指定します。
An optional company name
(任意)別の組織名を指定します。
-
次のコマンドを実行して、自己署名証明書ファイルを作成します。
- Windowsの場合:
- <OpenSSLのインストール先>\bin\openssl x509 -req -sha256 -days <有効日数> -signkey <秘密鍵ファイル> -in <証明書発行要求ファイル> -out <自己署名証明書ファイル>
- Linuxの場合:
- <OpenSSLのインストール先>/bin/openssl x509 -req -sha256 -days <有効日数> -signkey <秘密鍵ファイル> -in <証明書発行要求ファイル> -out <自己署名証明書ファイル>
オプション
- days
- 自己署名証明書の有効期間を日数で指定します。
- signkey
- 手順1で作成した秘密鍵ファイル名を指定します。
- in
- 手順2で作成した証明書発行要求のファイル名を指定します。
- out
- 作成する自己署名証明書の出力先パスを指定します。出力先パスに同じ名称のファイルがある場合、ファイルが上書きされます。
- ヒント
-
自己署名証明書ファイルは、次の場所にcreatedServer.crtというファイル名で保存しておくことをお勧めします。
- Windowsの場合:
- <REST APIのインストール先>\oss\apache\conf\ssl.crt\createdServer.crt
- Linuxの場合:
- <REST APIのインストール先>/oss/apache/conf/ssl.crt/createdServer.crt
このディレクトリには、REST APIが配置したserver.crtファイルが格納されています。server.crtファイルを上書きしないでください。
-
REST APIのサービスを停止します。
-
user-httpsd-certificate.confファイルを編集して、秘密鍵ファイルおよびサーバ証明書ファイル(自己署名証明書ファイル)を設定します。
user-httpsd-certificate.confファイルの格納場所
- Windowsの場合:
- <REST APIのインストール先>\oss\apache\conf\userextra\user-httpsd-certificate.conf
- Linuxの場合:
- <REST APIのインストール先>/oss/apache/conf/userextra/user-httpsd-certificate.conf
user-httpsd-certificate.confファイルのSSLCertificateKeyFileおよびSSLCertificateFileに次の内容を指定します。
- SSLCertificateKeyFile
- 手順1で作成した秘密鍵のファイル名を絶対パスで指定します。シンボリックリンクやジャンクションを指定しないでください。
- SSLCertificateFile
- 手順3で作成したサーバ証明書(自己署名証明書)のファイル名を絶対パスで指定します。シンボリックリンクやジャンクションを指定しないでください。
user-httpsd-certificate.confファイルの指定例
- Windowsの場合:
-
SSLCertificateKeyFile "C:\Program Files\HiCommand\ConfManager\oss\apache\conf\ssl.key\createdServer.key"
SSLCertificateFile "C:\Program Files\HiCommand\ConfManager\oss\apache\conf\ssl.crt\createdServer.crt"
- Linuxの場合:
-
SSLCertificateKeyFile "/opt/HiCommand/ConfManager/oss/apache/conf/ssl.key/createdServer.key"
SSLCertificateFile "/opt/HiCommand/ConfManager/oss/apache/conf/ssl.crt/createdServer.crt"
-
REST APIのサービスを起動します。