eastforest

Apache 2.4.9 構築 - エピローグ

今回の構築で目的だった外部からRedmineの参照を一応達成したので、一旦まとめ的な感じで必要となったApacheの設定を綴ります。

Redmineを外部から参照するための要件は以下を挙げておりました。


問題1

前回SSLの設定をしてRedmineを公開するに際、apacheの再起動でエラーが出て、原因の特定に結構時間がかかりました。エラーログを見ると

[ssl:emerg] [pid 6318] AH02572: Failed to configure at least one certificate and key for www.eastforest.jp:443
[ssl:emerg] [pid 6318] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[ssl:emerg] [pid 6318] AH02312: Fatal error initialising mod_ssl, exiting.

気になったのがwww.eastforest.jp:443という表示(Redmineのドメイン名ではない)。このサイトはHTTPSで設定していないです。あとはno certificate assignedの表示。SSLの設定はファイルを別にしていますが、結論としてはHTTPSをするバーチャルホストの設定にもSSLの設定(具体的には秘密鍵とサーバ証明書)を記述する必要がありました。

問題2

Redmineをログアウトすると、このサイト(www.eastforest.jp)に遷移してしまう現象がありました。原因はログアウトの遷移先がhttp://~であり、RedmineのバーチャルホストにはHTTP(80)の設定していないため、バーチャルホストの設定で上位に設定されているwww.eastforest.jpが適用されてしまうようです。RedmineのバーチャルホストでHTTP(80)の設定を追加すればいいのですが、HTTPS(80)でのアクセスは許可したくなかったので、HTTP(80)でリクエストがあった場合はHTTPS(443)にリダイレクトする設定を追加することにしました。

■設定

最終的には以下の設定で落ち着きました。

<VirtualHost *:80>
    ServerName <Redmineのホスト名>
    Redirect / https://Redmineのドメイン名/
</VirtualHost>

<VirtualHost *:443>
    ServerName <Redmineのホスト名>
    ProxyPass / http://<RedmineのIPアドレス or ドメイン名>/
    ProxyPassReverse / http://<RedmineのIPアドレス or ドメイン名>/
    SSLEngine on
    SSLCertificateFile "/usr/local/httpd-2.4.9/conf/server.crt"
    SSLCertificateKeyFile "/usr/local/httpd-2.4.9/conf/server.key"
    <Location />
        AuthType Digest
        AuthName <realm>
        AuthUserFile /usr/local/httpd-2.4.9/conf/<ファイル名>
        Require user <ユーザ名>
    </Location>
</VirtualHost>

ブログに載せるとなると正しい情報を伝える必要があるので調査や検証も多くなり、ブログの文面も結構考えますので かなりの時間を要しますが、逆に理解も深まったのでよかったです。ただブログで備忘録をきっちり載せていけば、Redmineもそれほど必要じゃないかなと思い始めてたりして。

 

参考サイト
http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect

 

最新記事

 はじめにWordPress を Apache 2.4 + MySQL 5.7 + PHP7 の環境で構築します。今回はApacheの内容になります。以前導入したときから月日が経ち、導入方法もだいぶ変わっていそうなので結構調査しながら作業を進めました。今回の目標はApacheのsystemd化とHTTP/2対応、PHP7対応、MPMのpreforkからeventへの変更です。HTTP/2はほとんどのブラウザがHTTPSでのみ対応しているため、HTTPSにも対応させます。とりあえず自己証明書ですが。MPMの変更はpreforkがHTTP/2で動作しないためですが、PHPをeventで動作させるためにはCGIとして...
Apache 2.4.29 導入 - eastforest

 

参考

モバイルバージョンを終了