はじめに

このドキュメントは、ある程度システムの知識がある方を対象に記述しております。

SSLご使用の場合、Tomcat単体でも設定できますが、弊社では以下を理由にApacheの使用を推奨しております。

  • SSL販売業者のヘルプページにApacheへの適用方法などが記載されている事が多い
  • インターネット上にApacheに関する記述が多く見受けられ、トラブル時に対応し易い
  • 将来SSLのメンテナンスを外部委託する場合、TomcatでのSSL設定を請け負う業者は限られる

 

注意事項

この資料を参考に設定される場合、Apacheのバージョンアップにより設定情報が変更され、記述した内容で動作しない場合がございますので、適宜設定情報の差異についてご対応をお願いします。

セキュリティーについても、必要最低限の設定情報なため、ApacheとSSLの設定はなるべく専門業者に依頼される事をお勧めします。

この資料についてのご質問には、回答しかねる場合もございますので、ご了承ください。

 

前提条件

設定前に以下の取得や設定をご準備ください。

  • グローバルIPアドレスの取得
  • ドメインの取得
  • サブドメイン名の決定
  • グローバルIPアドレスとサブドメインを含めたFQDN(フルドメイン名)の紐づけ(DNSの設定)
  • ターゲットのサーバー(PC)までたどり着ける設定(ルーターやゲートウェイの設定)
  • SSL購入業者の選定、準備

(この資料では無料のSSL Let's Encryptについては説明しておりません)

 

以下のURLでアクセスできる事を前提とします。

Webサーバールート

https://サブドメイン名.ドメイン名/

BizMagicへのアクセスURL

https://サブドメイン名.ドメイン名/コンテキスト名/

例)

https://secure.bizmagic.com/run/

(FQDN:secure.bizmagic.com)

Apacheのダウンロードとインストール

HTTP SERVER PROJECTのページから、Windows版のApacheバイナリーファイルを取得します。

https://httpd.apache.org/

[Apache httpd 2.4.xx Released]内の[Download]ページに遷移してください。

ページ内の

[Files for Microsoft Windows]のページに遷移してください。

[Downloading Apache for Windows]内のダウンロードミラーサイトから、インストールモジュールをダウンロードしてください。

opensslが同梱されているものを選択してください

 

[ApacheHaus]

[Apache Lounge] (このページからのダウンロードを推奨します)

[Bitnami WAMP Stack]

[WampServer]

[XAMPP]

 

・インストールモジュール

Apache 2.4.xx x64(Win64)

VC14、VC15、VS16の何れかをダウンロードしてください。

(なるべくVS16を推奨します)

Microsoftランタイムのダウンロードとインストール

Microsoftから[Visual Studio 2015-2019 Redistributable x64]をダウンロードしてください。

([Visual Studio 2019 Microsoft Visual C++ 再頒布可能パッケージ]と表示されている場合があります)

https://aka.ms/vs/16/release/VC_redist.x64.exe

または、https://visualstudio.microsoft.com/ja/downloads/から表示を辿りダウンロードしてください。

ダウンロードしたモジュールを実行し、インストールしてください。

例)vc_redist.x64.exe

Apacheのインストール

ダウンロードしたzipファイルを解凍して、配置したいフォルダにコピーしてください。

(以下の説明は例のパスで説明します)

例)

C:\BizMagic\Apache24

 

Apacheのconfファイル修正

各行の先頭に半角#が入力されていると、その行は無効(コメントアウト)されています。

以下#を追加、削除する事をコメントアウト、コメントアウトを外すと表現します。

 

.\Apache24\conf\httpd.confを編集します。

 

Define SRVROOT

現在のApacheフォルダ位置を指定します。

例)

Define SRVROOT "c:/BizMagic/Apache24"

 

Listen

80番(http)でリッスンする場合はこのままにします。

(SSL発行時、ファイル認証を選択された場合は認証時にhttpでアクセスできる必要があります)

443番(https)でのリッスンのみにしたい場合は、コメントアウトにします。

(httpでのアクセス禁止をお勧めします)

例)

#Listen 80

 

ServerName

このサーバーのドメイン・サーバー名を指定し、コメントアウトを外します。

例)

ServerName secure.bizmagic.com:80

 

LoadModule ssl_module modules/mod_ssl.so

コメントアウトを外して、SSLでの動作を有効にします。

 

<Directory "${SRVROOT}/htdocs">

ファイル一覧を非表示にします。

</Directory>までのDirectoryダグ内にある

Options Indexes FollowSymLinks

のIndexesを削除します。

Options FollowSymLinks

 

ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"

CGI使用を禁止します。

上記行をコメントアウトにします。

例)

#    ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"

 

<Directory "${SRVROOT}/cgi-bin">

CGI使用を禁止します。

</Directory>までをコメントアウトにします。

例)

#<Directory "${SRVROOT}/cgi-bin">

#    AllowOverride None

#    Options None

#    Require all granted

#</Directory>

環境変数の設定

システム環境変数を設定します。

変数名:OPENSSL_CONF

値:[Apache confフォルダパス]\openssl.cnf

例)

C:\BizMagic\Apache24\conf\openssl.cnf

ローカル環境でのApache動作テスト

  1. コマンドプロンプトを起動して [C:\BizMagic\Apache24\bin\httpd.exe -t]を実行して[Syntax OK]が表示される事を確認してください。[xxxxxxx: Syntax error ....]が表示された場合は、エラーの内容を確認して [httpd.conf]を修正してください。
  2. [C:\BizMagic\Apache24\bin\httpd.exe]を実行してください。
  3. ローカルのブラウザから、http://localhostを実行し、ブラウザページに [It works!] の文言(テストページ)が表示される事を確認してください。[It works!]
  4. 実行時に表示された、コマンドプロンプトの黒いウィンドウをクローズしてApacheを停止してください。

 

Apache自動起動設定

  1. コマンドプロンプトを[管理者で実行]で起動してください。
  2. [C:\BizMagic\Apache24\bin\httpd.exe -k install]を実行してください。
  3. エクスプローラーから[C:\BizMagic\Apache24\bin\ApacheMonitor.exe]を起動してください。
  4. 通知領域にApacheMonitorのアイコンが出現した事を確認してください。
  5. アイコンメニューから、Open Apahce Monitorを実行してください。
  6. Startを押してApacheが起動された事を確認してください。
  7. Servicesを押してApache2.4がサービス登録されている事を確認してください。
  8. サーバーを再起動後、ローカルのブラウザから、http://localhostを実行し、ブラウザページ[It works!]の文言(テストページ)が表示される事を確認してください。

※ Windows Serverファイアウォールがデフォルト設定であれば、この時点では外部からのアクセスは遮断されています。

※ SSL購入時の認証方式にファイル認証を選択された場合、下章のファイアウォールの設定外部アクセスの確認を済ませておいてください。

SSL証明書取得の準備

confディレクト内にSSL証明書関係を格納します。

 

コマンドプロンプトを起動して [C:\BizMagic\Apache24\bin\openssl genrsa -out c:\BizMagic\Apache24\conf\server[西暦など].key 2048]コマンドで

秘密鍵ファイルを作成してください。

例)

C:\BizMagic\Apache24\bin\openssl genrsa -out c:\BizMagic\Apache24\conf\server2020.key 2048

(上書きを防ぐために、ファイル名に作成した年を含める事をお勧めします)

 

上記秘密鍵ファイルを元にCSRファイルを作成してください。

[C:\BizMagic\Apache24\bin\openssl req -new -key c:\BizMagic\Apache24\conf\[上記で作成した秘密鍵ファイル] -out c:\BizMagic\Apache24\conf\[FQDN名(フルドメイン名)].csr]

例)

C:\BizMagic\Apache24\bin\openssl req -new -key c:\BizMagic\Apache24\conf\server2020.key -out c:\BizMagic\Apache24\conf\secure.bizmagic.com.csr

 

実行後の入力例)

Country Name (2 letter code) [AU]:JP

State or Province Name (full name) [Some-State]:Tokyo

Locality Name (eg, city) []:Shibuya-ku

Organization Name (eg, company) [Internet Widgits Pty Ltd]:Caien System Development Co., Ltd.

Organizational Unit Name (eg, section) []:(省略)

Common Name (e.g. server FQDN or YOUR name) []:secure.bizmagic.com

Email Address []:(省略)

A challenge password []:(省略)

An optional company name []:(省略)

 

Country Name:国を示す2文字のISO略語です。

State or Province Name:組織が置かれている都道府県です。

Locality Name:組織が置かれている市区町村です。

Organization Name:組織の名称です。

Organization Unit Name:組織での部署名です。(省略可能)

Common Name:ウェブサーバのFQDNです。

Email Address:入力不要です。

A challenge password:入力不要です。

An optional company name:入力不要です。

 

※ 秘密鍵をパスフレーズありで作成されたい場合、詳しくはApache、opensslのマニュアルをご覧ください。

SSL証明書の取得

SSL証明書の販売業者から、サーバー証明書を購入してください。

購入の際、上記で作成したCSRの提示が必要となります。

また、WEBサーバーの種類は必ずApache2.4と提示してください。

 

SSL発行申請では認証手続きが必要になります。

認証には

  • メール認証
  • ファイル認証
  • DNS認証

等があります。

 

メール認証

メール認証に担当者のメールアドレス(ドメインのWHOISで設定されている等)が指定できる場合は、こちらを選択してください。メールアドレスに今回設定するドメインを含むメールアドレスが必要な場合、他の方法を選択してください。(レジストラでメールアドレス転送サービス等がある場合は、SSL販売業者指定のメールアドレスを担当者のメールアドレスに転送設定して、認証する事も可能です。また今回設定するドメインで既にメールサーバーを運用されている場合も認証可能です)

ファイル認証

設定されたURLでアクセスできる事が前提となります。ポート80(http)のアクセスを許可した状態でApacheを起動しておく必要があります。

DNS認証

設定するドメインのDNSレコードに、業者指定の識別コードを設定する事で認証する方式です。

 

それぞれの認証については、各販売業者にお問い合わせください。

SSLの設定

認証が成功して、メールやWEB発行などで送られてきた証明書を設定します。

サーバー証明書

ファイル名を[server.crt]として.\Apache24\confフォルダに保存してください。

中間証明書

ファイル名を[server-ca.crt]として.\Apache24\confフォルダに保存してください。

 

.\Apache24\conf\httpd.confを編集します。

・Include conf/extra/httpd-ssl.conf

SSL設定ファイル有効化

コメントアウトを外します。

 

.\Apache24\conf\extrahttpd-ssl.confを編集します。

・ServerName

このサーバーのドメイン・サーバー名を指定し、コメントアウトを外します。

例)

ServerName secure.bizmagic.com:443

 

・各証明書の設定

サーバー証明書ファイル(特に修正は必要ありません)

SSLCertificateFile "${SRVROOT}/conf/server.crt"

秘密鍵ファイル(前章で作成したファイル名に修正してください)

SSLCertificateKeyFile "${SRVROOT}/conf/server.key" → "${SRVROOT}/conf/ssl/server2020.key"

中間証明書ファイル(コメントアウトを外してください)

#SSLCertificateChainFile … → SSLCertificateChainFile …

 

設定を反映するために、Apacheを再起動してください。

ファイアウォールの設定

サーバーに外部からアクセスするためには、ファイアウォールの内向き設定に下記ポートを許可します。

・443 TCP

・80 TCP(任意)

※ ファイル認証が必要な場合、一旦ポート80の許可を行い、認証後、運用前にポート80の不許可(許可の削除)を行う事をお勧めします。

外部アクセスの確認

外からのアクセスを確認します。社内PCではなく、インターネット経由で確認できる環境をご用意ください。

確認できるPCが無い場合は、例えばお持ちのスマフォやタブレットでキャリア通信(電話回線)からご確認ください。

 

例)

https://secure.bizmagic.com/

 

確認後、C:\BizMagic\Apache24\htdocsフォルダにあるindex.htmlを削除してください。

再度ローカルのブラウザから、http://localhostを実行し、403アクセス拒否が表示される事を確認してください。

[It works!]のページがそのまま表示される場合はキャッシュ表示されていますので、各ブラウザでスーパーリロードして確認してください。

スーパーリロード方法

IE、FireFox:Ctrl+F5

Chrome:Ctrl+Shift+R

403アクセス拒否が表示されず、Index ofページが表示されてしまう場合、上章のhttp.confの設定を確認してください。

(confファイル等を書き換えた場合は、必ずApacheを再起動してください)

 

関連リンク
ApacheとTomcat の接続設定 Windows版