imotenの記事もそろそろ最後かな。
今回は最後の大仕事、SSL化です。
別にしなくてもいいけど、セキュリティレベルを高めるために設定することをお勧めしますが、訳わからん。って人は別にしなくてもかまいません。
ブラウザでのログインよりコンソールプログラムを使って設定することを強くお勧めします。
コンソールでログインする方法はこちら。
プログラムの記入があるので、手打ちはキツイです。
※注意
imotenの設定はすでに終了しているものとみなします。
サーバーに新しいプログラムを書きこむので、CPUやメモリ使用率が上がります。
失敗すると最悪使えなくなるかもしれないので注意してください。
ネット上で情報を暗号化し、データを送受信するプロトコル。
Yahoo!メールはSSLで暗号化されているんだけど、送信(SMTP)サーバーはimotenでしているのでSSLで暗号化されていない。
そこで、imotenをSSLに対応させて暗号化してしまおう!という算段です。
Stunnelをインストールする。
[root@ ~]# yum -y install stunnel エンターキー
これでStunnelがインストールされた。
コンソールでサーバーにログインし、certsディレクトリに移動する。
[root@ ~]# cd /etc/pki/tls/certs エンターキー
サーバー証明書の作成
[root@ ~]# make localhost.pem エンターキー
するといろいろ聞かれるが、全部エンターで返してしまっても構わない。
きっちり答えてもOK。
Country Name (2 letter code) [GB]:JP ← 国
State or Province Name (full name) [Berkshire]:Tokyo ← 都道府県
Locality Name (eg, city) [Newbury]:katsushika ← 市区町村
Organization Name (eg, company) [My Company Ltd]:www.kyoji-kuzunoha.com ← サイト名(無ければエンターで返す)
Organizational Unit Name (eg, section) []: ← エンターキーで返す
Common Name (eg, your name or your server's hostname) []:xxxxxx.sakura.ne.jp ← ホスト名
Email Address []:xxxxxx@kyoji-kuzunoha.com ← 自分のメールアドレス
全部答えると証明書作成が終了する。
新規にstunnel.confを作成する。
[root@ ~]# vi /etc/stunnel/stunnel.conf エンターキー
何もないテキストデータが開くが、そこにプログラムを書き込む。
cert=/etc/pki/tls/certs/localhost.pem
;chroot = /var/run/stunnel/
;setuid = nobody
;setgid = nobody
pid = /var/run/stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;foreground = yes
[smtps]
accept = 465
connect = 587
記入したら :wqで終了。
stunnel.confが作られた。
stunnelを作成する。
[root@ ~]# vi /etc/init.d/stunnel エンターキー
何もないテキストデータが開くが、そこにプログラムを書き込む。
#!/bin/sh
# chkconfig: 2345 20 80
# description: s
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
DAEMON=/usr/sbin/stunnel
prog=stunnel
start () {
echo -n $"Starting $prog: "
# start daemon
daemon $DAEMON
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/stunnel
return $RETVAL
}
stop () {
# stop daemon
echo -n $"Stopping $prog: "
killproc $DAEMON
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/stunnel
}
restart() {
stop
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status $DAEMON
;;
*)
echo $"Usage: $prog {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
記入したら :wqで終了。
起動プログラム stunnel が作られた。
さくらVPS(CentOS6)の場合は、
DAEMON=/usr/sbin/stunnel
を
DAEMON=/usr/bin/stunnel
に書き換えること。
作成したプログラム stunnel のアクセス権を変更する。
[root@ ~]# chmod 755 /etc/init.d/stunnel エンターキー
作成したプログラム stunnel 実行権が与えられた。
サーバーが再起動しても、自動でstunnelが起動するように設定する。
[root@ ~]# /sbin/chkconfig --add stunnel エンターキー
stunnelを起動する。
[root@ ~]# /etc/init.d/stunnel start エンターキー
これでstunnelが起動した。
これでサーバーでの設定は終了。
設定→メール/連絡先/カレンダー→yahooアカウント→アカウント→送信メールサーバーを開く。
プライマリサーバー(imotenのホスト名)をタップ。
SSL使用をオンにし、サーバーポートを465に変更して完了をタップ。

”サーバの識別情報を検証できません”というメッセージが出てくるので、”続ける”をタップ。
これでSSL化が終了する。
テストメールを送信してみよう。
無事届いたら成功。
imotenのSMTPサーバーもSSLに対応させてセキュリティレベルもアップ!
これで隙のない運用になったかと思われる。
あとはMail.appでのプッシュに難がある方もいるみたいなので、色々検証してみます。
うまくいけばいいけど。

>エラーメッセージを読めばわかります。
>root権限で入っていないと出るエラーのようですが、ちゃんと入ってるんだけどおかしいな?
またいろいろ調べてみます。ありがとうございました。
>もう一度ひととおりやり直して、他のサイトで見つけた
#service stunnel start
というコマンドを実行してみたらうまく起動しました。
>なるほど。
自分の場合はそのままで出来たんですが、なんでなんだろう(;´Д`)?
こんばんは。
いつも大変参考にさせて頂いています。
SSL化で行き詰ってしまいました。
このページの記事通り進めてきて、[root@ ~]# /etc/init.d/stunnel start エンターキー
→ Starting stunnel: [ OK ] が出たので iphone の設定に移ったのですが、
SSLをON、サーバポートを465に変更すると、
『STMPサーバ ”~” が応答しません。ネットワークの接続状態と、”送信メールサーバ”フィールドに正しい情報を入力したかを確認してください。』と表示されて先に進めません。
サーバはDTI VPSで、コピペも、間違いも全てチェックしましたが、判りません。
何か解決策があれば、ご教授ください。
iptablesの設定をしてポート465を閉じてるとか無いですよね?
こんにちは、いつもありがとうございます。
centos6 64bitです。
(15分でDTIにcenteos6をインストールする方法というのをまねて)
しています。色々設定をいじっているうちに、
rootログイン禁止したまましてしまって、再インストールするしかなくなってしまいました。それはさておき、
①iphoneで、ssl設定後
「mobile me は
は識別情報を確認できません。
続けますか?」
のようなメッセージがでました。つづけたらいけましたが、ちょっと焦りました。
②
わたしも、送信がうまく行かず、
#service stunnel start
をしたら、
Starting stunnel: [ OK ]
とできるようになりました。
# /etc/init.d/stunnel start
の時は、
Usage: stunnel {start|stop|restart|status}
というメッセージでした。送信はサバーやホストが一致しないみたいな感じで、
失敗していました。
こんばんは。
おっしゃる通りでした。
iptablesの設定で、587を465に変更していませんでした。
お騒がせしました。
iphoneの設定を色々弄ってる内に、何か設定を保存したんですけど、
とりあえず、SSL ON , サーバポート 465 でメール送信できるので、
SSL化成功したんでしょうかね。
してると思います。