メンテ時に社内Wifi IPのみサイトアクセス許可する
備忘録です。
サイトメンテナンスする際の手順をまとめています。
手順
maintenance.html
DocumentRoot に maintenance.html を配置
.htaccess にてアクセス制限
1 | ErrorDocument 503 /maintenance.html |
以上です。
備忘録です。
サイトメンテナンスする際の手順をまとめています。
DocumentRoot に maintenance.html を配置
1 | ErrorDocument 503 /maintenance.html |
以上です。
.htaccess に設定した通りに動作しない、そもそも読み込んでいないように見える場合の対策です。
http だと mod_rewrite でリダイレクトするけど、 https だとしない、とか
ありがちな設定ミスパターンは以下基本的なことを確認して解決できます。
/etc/httpd/conf/httpd.conf
等設定ファイル内で以下の記述が必要です。
1 | AllowOverride All |
利用頻度の多い mod_rewrite を利用するには以下が必要です。
まずは上記の確認です。
Apache の場合、大抵 modles ディレクトリ以下に格納されてます。
1 | $ ls -al /etc/httpd/modules/mod_rewrite.so |
Apache 設定ファイル/etc/httpd/conf/httpd.conf
や /etc/httpd/conf.d/*.conf
で以下を設定している。
※環境によっては /etc/httpd/conf/httpd.conf
に設定ファイルを置いてない場合もあるので
あくまで一般的な例とします。
1 | LoadModule rewrite_module modules/mod_rewrite.so |
モジュール読み込み設定は大抵、
以下のように
以下例では「/var/www/html」ディレクトリ以下では 配置した .htaccess を優先して設定されることになります。
1 | <Directory "/var/www/html"> |
万が一 mod_rewrite.so モジュールが存在しない場合は Apache の再コンパイルが必要になります。
1 | $ sudo su - |
以上です。
ベリトランスモジュールバージョンアップに際して
SHA256で発行したSSL証明書が必須となりました。
テスト環境でベリトランスモジュールバージョンアップ試験を行う際に
SSL証明書導入する必要が生じました。
本番環境と同じ有料SSLを導入するまでとはいかずとも
近しい状況を構築する必要があったので無料SSL証明書を発行し導入しました。
上記の手順をまとめましたので以下に記載します。
AWS Marketplace: CentOS 6 (x86_64) - with Updates HVM を利用しています。
事前準備として、SSLインストール対象サーバで
CSRを生成しておきます。
SHA256 対応のCSR生成方法について以下ご参考ください。
登録E-mail宛に verification codeが送付されます。
startSSL側で指定するメールアドレスで受信可能な状態にする必要があります。
ec2インスタンスのメール受信設定は以下記事が参考になりました。ありがとうございます。
上記記事中の注意点として
インスタンス作成直後にyum update
分にはいいですが
時にAWSでyum update
をするとkernel panicを起こすことがあります。
pythonをyumでなくソースから独自に入れ直したり、色々してたせいか…原因は追い切れていませんが、経年運用したインスタンスについては yum update は控えたいと思います。
/var/log/maillog を 常に tailしてログ確認。
受信可能なメールアドレスが既にあれば aliases で向け先変える。
postmaster@(domain) → root@(domain)
メールボックスで Permission denied で
受信メールを保存できない場合は以下強引にメールディレクトリを変更する。
1 | /etc/postfix/main.cf |
メール受信による認証がクリア後、SSL証明書注文へ進みます。
情報入力後、 (domain).zip がダウンロードされる。
※ 今回は WebServer が Apache なので ApacheServer を参照します。
解凍した zipファイルの ApacheServer 内の以下2ファイルを任意のディレクトリにアップしましょう。
今回アップ先ディレクトリは server.key 等のあるパス (/etc/httpd/conf/ssl.csr/) にします。
SSL証明書のインストールとは
Apacheの設定ファイルとして指定ディレクティブで読み込ませる
ことです。
主な設定は以下です。
| Item | Value | Explain |
| ———————– | —————————————– |
| SSLCertificateChainFile | /etc/httpd/conf/ssl.csr/1_root_bundle.crt | 中間証明書 |
| SSLCertificateFile | /etc/httpd/conf/ssl.csr/2_(domain).crt | SSLサーバ証明書 |
| SSLCertificateKeyFile | /etc/httpd/conf/ssl.csr/server.key | SSLサーバ証明書とペアになる秘密鍵 |
以下URLで各WebServerとopensslバージョンにより最適な設定方法を示唆いただけます。
https://ssl-config.mozilla.org/
/etc/httpd/conf.d/ssl.conf
1 | LoadModule ssl_module modules/mod_ssl.so |
パフォーマンスチューニングを一切していません。
あくまで SSL証明書インストールを対象としていますのでご注意ください。
1 | // 構文チェック |
構文エラーが発生している場合は対象箇所が表示されますのでチェックし直してください。
但し、構文エラーがないからと言ってApache再読み込み時にエラーが発生しないとは限らないので
万が一の為、即元に戻せるようなコマンドを作っておくと良いでしょう。
例えば
ssl.conf を ssl.conf.bk にリネームして Apacheの設定ファイルとして見ないようにさせるなど。
1 | # service httpd reload |
Chromeでアクセスしました。
以下サイトで診断できます。
QUALYS SSL LABS
「A」が取れました!
ちなみに
常に https通信で問題ないサイトであれば以下のように設定すると
1 | <VirtualHost *:443> |
「A+」取得できました!
常時httpsはセキュアではありますがサイトの仕様次第なところもあるので状況によりけりです。
以上
※特にドメイン登録者を明確に指定する必要がなければ、「手順」へ進んでください。
企業認証周りが必要な場合は
事前にWHOIS(フーイズ)でドメイン登録者情報を確認しておくとスムーズです。
検索ワードにドメイン入力して検索すると登録者情報を確認できます。