メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

apacheでSSL利用時の再起動

SSLを利用している場合

自前でサーバを立てて、SSLの認証取って、利用できるようにしている。
標準的な設定方法に従って作業すれば、設定は難しくない。
例えば、以下のような方法で簡単に設定できる。
(読んで分からない人には、簡単ではないと思うけど・・・)
https://jp.globalsign.com/support/server/03.html
ところが、この方法だと、apacheを再起動する際に、 秘密鍵のパスフレーズを要求される。(上記サイトにもうっすら書いてあるww)

まあ、起動しっぱなしで運用することがほとんどだとは思うけれど、パスフレーズを忘れると、起動できなくなる。

また、スクリプトを通して、再起動やらが実行できない。
コンソールで作業しても、パスフレーズを入力する時間(5秒程度だとは思うけれど)は、apacheが完全に停止した状態になってしまう。

ということで、SSLを有効にしたまま、再起動を自動で行いたい。

設定していない場合

環境はcentOS6.5+apache2です。
例えば、再起動を行うとこんなようなメッセージが表示され、パスフレーズの入力を促されます。
正しく入力すれば、無事起動。

# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中: Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server myservername:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.
                                                           [  OK  ]

これで問題ないという人には、関係ない話です・・・。

設定してみる

情報を探してみると、いろいろやり方はあるみたいだけれど、安全で比較的わかりやすい方法を採用する。

なんて、バッチリの内容がありました。

すでにインストール&稼働状態まできているので、4.の「Apache起動/再起動時のパスフレーズの入力について」から設定。
# cd /etc/key-fileの置いてある場所
# openssl rsa < server.key > server.key.new
Enter PEM pass phrase: パスフレーズを入力
# mv server.key server.key.org
# mv server.key.new server.key
基本的には、パスフレーズをサーバキーに埋め込んでおいて、利用する方法です。
置いてある場所がわからないなら、ssl.confを探せばOK
SSLCertificateKeyFile に書いてあるはずです。

続いて、/etc/init.d/httpdを編集。
start() {
        echo -n $"Starting $prog: "
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd -DSSL $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}

start()ルーチン内の、起動処理にオプションを追加すれば良いらしいので、追加しておく。

正しく書いてあれば、失敗しないとは思うけれど、必要なら文法チェックしておく。

ここまで来たら、再起動。

# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

あぁ、なんて素敵なんでしょうww

これで、気持ち良く再起動が実行できます。
問題は、パスフレーズを入力しなくなるので、忘れる危険性があるということです。
ドキュメントを作成して、残しておく必要がありますな。

コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ