- はじめに
- 注意事項
- 前提条件
- Apacheのダウンロードとインストール
- Microsoftランタイムのダウンロードとインストール
- Apacheのインストール
- 環境変数の設定
- ローカル環境でのApache動作テスト
- Apache自動起動設定
- SSL証明書取得の準備
- SSL証明書の取得
- SSLの設定
- ファイアウォールの設定
- 外部アクセスの確認
はじめに
このドキュメントは、ある程度システムの知識がある方を対象に記述しております。
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バイナリーファイルを取得します。
[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動作テスト
- コマンドプロンプトを起動して [C:\BizMagic\Apache24\bin\httpd.exe -t]を実行して[Syntax OK]が表示される事を確認してください。[xxxxxxx: Syntax error ....]が表示された場合は、エラーの内容を確認して [httpd.conf]を修正してください。
- [C:\BizMagic\Apache24\bin\httpd.exe]を実行してください。
- ローカルのブラウザから、http://localhostを実行し、ブラウザページに [It works!] の文言(テストページ)が表示される事を確認してください。[It works!]
- 実行時に表示された、コマンドプロンプトの黒いウィンドウをクローズしてApacheを停止してください。
Apache自動起動設定
- コマンドプロンプトを[管理者で実行]で起動してください。
- [C:\BizMagic\Apache24\bin\httpd.exe -k install]を実行してください。
- エクスプローラーから[C:\BizMagic\Apache24\bin\ApacheMonitor.exe]を起動してください。
- 通知領域にApacheMonitorのアイコンが出現した事を確認してください。
- アイコンメニューから、Open Apahce Monitorを実行してください。
- Startを押してApacheが起動された事を確認してください。
- Servicesを押してApache2.4がサービス登録されている事を確認してください。
- サーバーを再起動後、ローカルのブラウザから、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]:BizMagic 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を再起動してください)