よくあるご質問(V3)
Q.SSL証明書を使用してhttpsで通信を行うための手順(Interstage版)
以下は、Interstage 版 POWER EGG Ver 3.3c ~ 3.5c で、SSL証明書を使用してhttpsで通信を行うための手順です。
※ 本手順に記載されている、各フォルダ名の記述(C:\Interstage\・・・)は、Interstage のインストール先に応じて変更してください。
1.秘密鍵の作成
最初に秘密鍵「server.key」を作成します。
コマンドプロンプトを管理者で起動し、任意の作業フォルダに移動してください。
次に、作業フォルダで以下のコマンドを実行してください。
C:\Interstage\F3FMahs\bin\openssl genrsa -des3 -out server.key 2048
※ コマンドのオプション(鍵の長さ: server.key 2048 等)は必要に応じて変更してください。
実行後、パスフレーズの入力を求められるので、任意のパスフレーズを入力してください。入力後、パスフレーズの再入力が求められます。
再入力後、作業フォルダに秘密鍵ファイル 「server.key」 が作成されます。
※ パスフレーズは、大切に管理してください。
2.CSR(証明書発行要求)の作成
作成した秘密鍵「server.key」を利用して、CSR(証明書発行要求)「server.csr」を作成します。
コマンドプロンプトを管理者で開き、server.key のある作業フォルダに移動し、以下のコマンドを実行してください。
C:\Interstage\F3FMahs\bin\openssl req -config C:\Interstage\F3FMahs\conf\openssl.cnf -new -key server.key -out server.csr
※ 折り返して2行以上で表示されている場合がありますが、1行で入力して実行してください。折り返し部分に半角空白がある場合は、半角空白が入った状態で追加してください。
コマンド実行後パスフレーズを求められるため、秘密鍵作成時に設定したパスフレーズを入力してください。
パスフレーズ入力後、証明書発行要求に必要な情報の入力が求められるため、以下を参考に必要情報を入力してください。
入力項目 | 入力値 |
Country Name (2 letter code) [AU]: | 国を表す2 文字のコード(日本の場合:JP) |
State or Province Name (full name) [Some-State]: | 都道府県(例: Tokyo) |
Locality Name (eg, city) []: | 市区町村(例: Chiyoda-ku) |
Organization Name (eg, company) [Internet Widgits Pty Ltd]: | 会社名(例: D-CIRCLE INC) |
Organizational Unit Name (eg,section) []: | 部署名(例: System Division) |
Common Name (e.g. server FQDN or YOUR name) []: | アクセスするホスト名(例: aaa.bbb.co.jp) |
Email Address []: | メールアドレス(特に必要なければ入力しないでください) |
A challenge password []: | 証明書を破棄する時に必要になるパスワード(特に必要なければ入力しないでください。設定した場合、サービス起動時にパスワードの入力が必須となるため、省略することを推奨します) |
An optional company name []: | 別の組織名の入力(特に必要なければ入力しないでください) |
コマンド実行例
C:\wk>C:\Interstage\F3FMahs\bin\openssl req -config C:\Interstage\F3FMahs\conf\openssl.cnf -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Chiyoda-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:D-CIRCLE INC
Organizational Unit Name (eg, section) []:System Division
Common Name (e.g. server FQDN or YOUR name) []:aaa.bbb.co.jp
Email Address []:※ 何も入力せずにEnterキー押下
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:※ 何も入力せずにEnterキー押下
An optional company name []:※ 何も入力せずにEnterキー押下
コマンド実行および情報の入力後、作業フォルダに CSR(証明書発行要求)ファイル 「server.csr」が作成されます。
3.サーバ証明書の発行
作成した CSR を使用し、証明書発行機関に X.509 形式のサーバ証明書の発行を依頼してください。
ハッシュアルゴリズムにはSHA-2(SHA-256)を使用することを推奨します。
サーバ証明書が発行された後、Base64 エンコード形式でファイルとして保存してください。この手順では、「server.crt」というファイル名で保存するものとします。
また、中間CA証明書がある場合、ファイル「server.crt」では下記のようにサーバ証明書に続けて中間CA証明書も記載してください。
-----BEGIN CERTIFICATE-----
・・・・・・・・・・・・・・・・・・・・・・・・・・
(サーバ証明書)
・・・・・・・・・・・・・・・・・・・・・・・・・・
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
・・・・・・・・・・・・・・・・・・・・・・・・・・
(中間CA 証明書)
・・・・・・・・・・・・・・・・・・・・・・・・・・
-----END CERTIFICATE-----
4.秘密鍵のパスフレーズ解除
現在の秘密鍵 「server.key」 は、アクセス毎にパスフレーズが求められるため、HTTPサーバ起動時にもパスフレーズを入力する必要があります。
以下の手順で、パスフレーズを解除したファイルを作成します。
「server.key」 のファイル名および拡張子を 「server.key.bk」 に変更してください。
変更後、コマンドプロンプトを管理者で開き、server.key.bk のある作業フォルダに移動し、以下のコマンドを実行して下さい。
C:\Interstage\F3FMahs\bin\openssl rsa -in server.key.bk -out server.key
コマンド実行後パスフレーズを求められるため、秘密鍵作成時に設定したパスフレーズを入力してください。
作業フォルダに、パスフレーズが解除された秘密鍵ファイル 「server.key」 が作成されます。
5.作成したファイルのコピー
フォルダ C:\Interstage\F3FMahs\conf\ssl.crt を作成し、下記2ファイルをコピーしてください。
server.key (パスフレーズが解除された秘密鍵ファイル)
server.crt (サーバ証明書ファイル)
6.ファイル httpd.conf の編集
※ 変更前にファイルをコピーしてバックアップすることをお勧めします。
設定ファイル C:\Interstage\F3FMahs\conf\httpd.conf を開き、以下の編集を行ってください。
① 既存のポート80 の設定行の下に、ポート443 でも受け付ける設定を追加します。
Listen 0.0.0.0:80
Listen 0.0.0.0:443
② 下記の行の先頭の「#」を削除してコメントアウトを解除します。
#LoadModule ssl_module "C:/Interstage/F3FMahs/modules/mod_ssl.so"
↓
LoadModule ssl_module "C:/Interstage/F3FMahs/modules/mod_ssl.so"
③ ポート443 で受け付けるサイトのVirtualHost の設定をファイル末尾に追加してください。
<VirtualHost *:443>
ServerName localhost
ErrorLog "|C:/Interstage/F3FMahs/bin/rotatelogs.exe logs/ssl_error.%Y-%m-%d.log 86400 540"
CustomLog "|C:/Interstage/F3FMahs/bin/rotatelogs.exe logs/ssl_access.%Y-%m-%d.log 86400 540" pedebug
SSLEngine On
SSLProtocol TLSv1.2
SSLCertificateFile C:\Interstage\F3FMahs\conf\ssl.crt\server.crt
SSLCertificateKeyFile C:\Interstage\F3FMahs\conf\ssl.crt\server.key
</VirtualHost>
※ 「ServerName localhost」の「localhost」は、アクセスするホスト名(CSR 作成時に指定したもの)を指定してください。名前が異なる場合、HTTPサーバ起動時に警告がssl_error ログに出力されます。
※ 「C:\Interstage」の部分は、Interstageインストール先を指定してください。
7.HTTP サーバの再起動
Windows のサービス「Interstage HTTP Server 2.4」を再起動してください。
以上で設定は完了です。
8.http から https へのリダイレクトの設定
上記の手順により、 http と https の両方でアクセスできるようになります。
日次バッチやスマートフォン版の内部的な通信で http を使用しているため、http を完全に停止することはできません。
クライアントから http でアクセスさせたくない場合は、Windows ファイアウォールなどで外部からの http のアクセスを遮断してください。
クライアントから http でアクセスが行われた場合に遮断するのではなく https にリダイレクトさせる場合は、下記の設定を行ってください。
① 設定ファイル C:\Interstage\F3FMahs\conf\httpd.conf を開き、末尾に下記の3 行を追加してください。
RewriteEngine On
RewriteCond %{HTTP_HOST} !=localhost
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
② Windows のサービス「Interstage HTTP Server 2.4」を再起動してください。
FAQ番号
T00004