ホームページの転送はHTMLのmetaタグでも可能ですが、包括的に転送したい場合には不向きです。
そこでapacheの設定で転送するように設定することができます。
apache設定ファイルの「httpd-vhosts.conf」を編集します。
例)http://www.example.jp/というリクエスト要求に対してhttp://www.example.com/に転送します。
1 | <VirtualHost 192.168.0.100> |
2 | ServerName www.example.jp |
3 | Redirect / http://www.example.com/ |
4 | </VirtualHost> |
apacheでは、デフォルトでアクセスログなどを記録してくれますが
そこに例えばリファラー情報などは含まれません。
apacheの設定ファイルを変更すれば、記録する情報を任意にカスタマイズすることができます。
ここでは例として、リファラー情報とリクエストURLを記録するカスタムログを作成してみます。
httpd.confを開き、<IfModule log_config_module>というディレクティブを探します。
※IfModuleディレクティブは消しておいたほうがいいという説があるようですが、
ここではそれについては割愛します。
デフォルトでは以下のようになっているはずです。(違う場合は環境によると思ってください)
1 | <IfModule log_config_module> |
2 | # |
3 | # The following directives define some format nicknames for use with |
4 | # a CustomLog directive (see below). |
5 | # |
6 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined |
7 | LogFormat "%h %l %u %t \"%r\" %>s %b" common |
8 |
9 | <IfModule logio_module> |
10 | # You need to enable mod_logio.c to use %I and %O |
11 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio |
12 | </IfModule> |
13 |
14 | # |
15 | # The location and format of the access logfile (Common Logfile Format). |
16 | # If you do not define any access logfiles within a <VirtualHost> |
17 | # container, they will be logged here. Contrariwise, if you *do* |
18 | # define per-<VirtualHost> access logfiles, transactions will be |
19 | # logged therein and *not* in this file. |
20 | # |
21 | CustomLog logs/access_log common |
22 |
23 | # |
24 | # If you prefer a logfile with access, agent, and referer information |
25 | # (Combined Logfile Format) you can use the following directive. |
26 | # |
27 | #CustomLog logs/access_log combined |
28 | </IfModule> |
※combinedという設定が既にリファラーを記録するフォーマットになっていますので、
設定するのが面倒な場合はこちらを使用してください。
続きを読む…»
apacheにSSLを導入した場合、apacheの起動時にパスフレーズの入力を求められます。
サーバーの再起動時や、プログラム等でのapacheの自動起動でパスフレーズの入力で止まったまま起動しない、という問題が発生します。
[Apache+SSL環境の構築]の最後でも紹介したように、秘密鍵を復号化しておけばパスフレーズの入力を省略できますが、セキュリティ上良くありません。
そこで秘密鍵を復号化することなく、パスフレーズの入力を省略する方法をご紹介します。
apacheのhttpd.confの<ifModule ssl_module>ディレクティブを修正します。
1 | <ifModule ssl_module> |
2 | ... |
3 | SSLPassPhraseDialog exec :{プログラムの絶対パス} |
4 | </ifModule> |
通常、SSLPassPhraseDialogの記述はないかと思いますが、
デフォルトはbuiltinとなっており、対話形式でパスフレーズを入力する設定になっています。
続きを読む…»
Googleが常時SSL接続になり、SEOでもそれが加味されるようになってきました。
また、Google検索からの流入を解析するためにも、自身側のSSL化が必要になってきます。
というのも、HTTPSからHTTPではリファラーが取得できないのです。
自身のサーバーをHTTPSにすればHTTPSからのリファラーを取得することができます。
HTTPSならHTTPからのリファラーも取得することができます。
それに当たって、今回はopensslの導入部分を解説させていただきます。
【バージョンについて】
apache2.2.31
openssl-0.9.8zg
※opensslのインストールディレクトリは/usr/local/sslとします。
【鍵のペア作成と証明書の作成】
SSL通信を利用するには次の3つが必要です。
1.秘密鍵
2.公開鍵+証明書申請情報
3.デジタル証明書
opensslのディレクトリに移動します。
1 | cd /usr/ local /ssl/private |
秘密鍵作成のための疑似乱数を生成します。
例としてmd5ダイジェスト値を疑似乱数として使用します。
1 | ../bin/openssl md5 * > rand.dat |
秘密鍵を作成します。
1 | ../bin/openssl genrsa -rand rand.dat -des3 1024 > server.key |
コマンドを実行すると秘密鍵のパスフレーズを求められますので、
任意のパスフレーズを入力してください。
続きを読む…»