テクノロジーガイド

AWStats を SSL(HTTPS)で実行する方法

2 min read サーバー管理 更新されました 16 Sep 2025
AWStats を HTTPS(SSL)で安全に運用する
AWStats を HTTPS(SSL)で安全に運用する

前提条件

  • サーバーに root 権限または同等の権限があること。
  • Apache(httpd)がインストール済みであること。
  • OpenSSL が利用可能であること(CentOS/RHEL 系の場合は mod_ssl を導入します)。
  • AWStats が既にインストールされていること。

重要: 本ガイドは自己署名証明書の作成手順を含みます。本番環境では、可能であれば信頼された認証局(CA)発行の証明書を利用してください。

証明書の作成

OpenSSL がサーバー上にあることを前提に、CentOS/RHEL5 系での手順を例示します。まず mod_ssl をインストールします。

yum install mod_ssl

次に /etc/pki/tls/certs/ ディレクトリに移動して、RSA の秘密鍵と CSR(証明書署名要求)を作成します。下記のコマンドはそのまま実行します。

# openssl genrsa -des3 -out server.key 1024

実行するとパスフレーズを求められます。

Generating RSA private key, 1024 bit long modulus  
Enter pass phrase for server.key:  
Verifying - Enter pass phrase for server.key:

作成した秘密鍵の内容を確認するコマンド(パスフレーズ入力が必要):

# openssl rsa -noout -text -in server.key

CSR を作成します(server.key のパスフレーズを入力):

# openssl req -new -key server.key -out server.csr

プロンプトに従って組織情報を入力します。空欄にしたい場合は “.” を入力できます。例:

Country Name (2 letter code) [GB]:JO  
State or Province Name (full name) [Berkshire]:State  
Locality Name (eg, city) [Newbury]: Your Location  
Organization Name (eg, company) [My Company Ltd]:My Company  
Organizational Unit Name (eg, section) []:  
Common Name (eg, your name or your server's hostname) []:ns.somewhere.com  
Email Address []: [email protected]  
Please enter the following 'extra' attributes  
to be sent with your certificate request  
A challenge password []: If you hit enter here, it will be empty  
An optional company name []:

自己署名証明書を作成します(有効期限は例として 365 日):

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

サンプル出力の一部:

Signature ok

subject=/C=JO/ST=State/L=Your Location/O=My Company/CN=ns.somewhere.com/emailAddress= [email protected] Getting Private key

最後に証明書と鍵、CSR を適切な場所へコピーし、権限を設定します。

# cp server.crt /etc/pki/tls/certs/  
# cp server.key /etc/pki/tls/private/  
# cp server.csr /etc/pki/tls/private
# chmod go-rwx /etc/pki/tls/certs/server.crt  
# chmod go-rwx /etc/pki/tls/private/server.key  
# chmod go-rwx /etc/pki/tls/private/server.csr

注: パスワード付きの秘密鍵を使用する場合、Apache の起動時にパスフレーズの入力が必要になります。自動起動を優先する場合は、パスフレーズを削除した鍵を別途用意する手法を検討してください(慎重に管理してください)。

Apache の SSL 設定

httpd.conf(CentOS の場合)に以下を追加して、作成した証明書と鍵を指定します。

SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key

設定を反映したら、サーバーがポート 443 で LISTEN していることを確認します。/var/www/html/ に移動してから下記コマンドを実行します。

netstat -aunt

出力例:

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN  
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN  
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN

重要: 自己署名証明書を使うとブラウザ側で「信頼されていない証明書」と表示されます。本番では CA 発行証明書を推奨します。

AWStats を HTTPS でアクセスできるようにする

AWStats のページへは https:// でアクセスします。自己署名証明書の場合、ブラウザで証明書受け入れのプロンプトが出ます。プロンプトが出ない場合は Apache 設定を見直してください。

.htaccess に AWStats へのリダイレクトを追加する例(インストールパスに合わせて編集してください):

# redirect awstats to https
RewriteCond %{REQUEST_URI} ^/awstats(.*)
RewriteRule ^/rawe/awstats(.*)$ https://example.com/awstats$1 [R,L]

awstats.site.conf(または該当の設定ファイル)内の HTTPS リンクに関する設定を確認・変更します。AWStats はレポート中の HTML リンクを生成する際、デフォルトで “http://“ を使います。HTTPS を使う場合は以下を設定します。

UseHTTPSLinkForUrl
Version : 4.0+
   
# When AWStats build HTML links in its report pages, it starts thoose link
# with "http://". However some links might be HTTPS links, so you can enter
# here the root of all your HTTPS links. If all your site is a SSL web site,
# just enter "/".
# This parameter is not used if ShowLinksOnUrl is 0.
# Example: "/shopping"
# Example: "/"
# Default: ""
#
UseHTTPSLinkForUrl=""

上記の UseHTTPSLinkForUrl を適切に設定すると、AWStats が生成するリンクを HTTPS に合わせることができます。

AWStats の自動更新(cron)

AWStats を手動で更新する代わりに cron を使って自動化できます。トラフィックが多いサイトでは日次更新を推奨します。crontab を編集します。

$ crontab -e

VIM が開いたら挿入モードに入り、以下の行を追加します(例: 毎日 9:45 に更新)。-confdir=”/etc” は AWStats の設定ファイルがあるディレクトリを指します。

45 9 * */usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl"

crontab ファイルの最後には空行を入れて保存してください。VIM では Esc を押してから :x または ZZ で保存できます。

代替として、logrotate と組み合わせて更新を行う方法もあります。/etc/logrotate.d に設定を追加する例:

/var/log/httpd/*log {
missingok
notifempty
sharedscripts
prerotate
/var/www/awstats/awstats.pl-update -config=somesite.net
postrotate
/etc/init.d/httpd reload > /dev/null 2>&1 || true
endscript

複数設定ファイル向けの cron

複数の AWStats 設定ファイルがある場合、個別に多数の cron ジョブを作るより、awstats_updateall.pl を使うと便利です。改行なしで以下のように設定します。

15 4 * * * perl $HOME/awstats/tools/awstats_updateall.pl now -awstatsprog=$HOME/awstats/cgi-bin/awstats.pl -configdir=$HOME/awstats/cgi-bin/

awstats_updateall.pl は指定ディレクトリ内のすべての設定ファイルを見つけ、awstats.pl を呼び出して更新を行います。awstats.pl を実行できるようにパーミッションを設定してください。

$ chmod 504 awstats/cgi-bin/awstats.pl

この設定により、cron から awstats.pl を実行できるようになります。

AWStats 用アドオンとパフォーマンス最適化

通常、ホスト名解決は DNS を経由して行われ、Apache が dns.txt に情報を入れ、AWStats がそのファイルを利用して訪問元の国やホスト名を解析します。高トラフィックサイトではこの処理が負荷になることがあるため、GeoIP のようなアドオンを活用してパフォーマンス改善を図れます。GeoIP は IP→国情報変換を高速化します。

参考記事: GeoIP Information for AWStats(外部記事)

追加の最適化案:

  • statically-generated hostname ファイルを定期的に更新して DNS クエリを削減する
  • AWStats の設定で詳細度を下げ、不要な解析をオフにする
  • レポート更新頻度を下げる(例: 日次→週次)

トラブルシューティング

よくある問題と対処法:

  • ブラウザで「安全でない接続」と表示される: 自己署名証明書のためです。信頼済み CA の証明書を使うか、ブラウザで証明書を明示的に信頼してください。
  • Apache がポート 443 を LISTEN していない: SSL モジュールが有効か、httpd.conf の設定ミスがないか確認してください。
  • crontab から更新が走らない: PATH やフルパス指定、実行権限を確認してください。cron のログ(/var/log/cron 等)を確認します。
  • AWStats のリンクが http のまま: UseHTTPSLinkForUrl を適切に設定し、AWStats のキャッシュ・設定ファイルを再読込してください。

セキュリティ強化チェックリスト

  • 信頼できる CA による証明書発行を検討する
  • 秘密鍵ファイルの権限を厳格にする(例: 600 または 400)
  • 自動起動を妨げないためのパスフレーズ戦略を設計する
  • Apache の TLS 設定で強い暗号スイートを有効にする
  • HTTPS リダイレクトを強制し、HTTP をブロックまたはリダイレクトする
  • AWStats のファイルとディレクトリの権限を適切に設定する

重要: 秘密鍵に対するアクセスは最小権限の原則に従ってください。

ロール別チェックリスト

運用担当者:

  • 証明書の更新スケジュールを管理する
  • crontab とログローテーションを確認する

開発者:

  • AWStats の出力(リンク、外部リソース)を HTTPS に対応させる
  • パフォーマンスに影響する設定を評価する

セキュリティ担当:

  • TLS 設定と暗号スイートを監査する
  • 秘密鍵の管理方法をレビューする

用語集(1語ずつ短い定義)

  • SSL: ネットワーク上でデータを暗号化する古い規格。現在は TLS が主流。
  • TLS: SSL の後継プロトコル。HTTPS の基盤。
  • CSR: 証明書署名要求。証明書を発行するために CA に渡す情報。
  • GeoIP: IP アドレスから地理情報を推定するデータベース/モジュール。

まとめ

AWStats を HTTPS 経由で安全に運用するには、証明書の準備・Apache への組み込み・AWStats 側のリンク設定・自動更新の設定(cron)を順に行います。高トラフィック環境では GeoIP などのアドオンやログローテーションを活用してパフォーマンスを最適化してください。最後に、運用フロー(証明書更新、cron の監視、ログ監査)をドキュメント化しておくことを推奨します。

短い行動リスト:

  • mod_ssl / OpenSSL をインストールする
  • 秘密鍵と CSR を作る
  • 証明書を Apache に設定してポート 443 を確認する
  • AWStats の UseHTTPSLinkForUrl を設定する
  • crontab で自動更新を設定し、テストする
共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Androidでホーム画面ごとに別の壁紙を設定する方法
Android

Androidでホーム画面ごとに別の壁紙を設定する方法

Apache Tomcat のパフォーマンス監視とイベント処理
監視

Apache Tomcat のパフォーマンス監視とイベント処理

クリックジャッキング:被害と防御の完全ガイド
セキュリティ

クリックジャッキング:被害と防御の完全ガイド

Androidでホーム画面ごとに別の壁紙を設定する方法
カスタマイズ

Androidでホーム画面ごとに別の壁紙を設定する方法

データブローカーから個人情報を削除する方法
プライバシー

データブローカーから個人情報を削除する方法

Androidでホーム画面ごとに壁紙を設定する方法
Android

Androidでホーム画面ごとに壁紙を設定する方法