【iPhone】imotenの送信メールをSSLで暗号化する【docomoメール】

ssl

imotenの記事もそろそろ最後かな。
今回は最後の大仕事、SSL化です。
別にしなくてもいいけど、セキュリティレベルを高めるために設定することをお勧めしますが、訳わからん。って人は別にしなくてもかまいません。

ブラウザでのログインよりコンソールプログラムを使って設定することを強くお勧めします。
コンソールでログインする方法はこちら
プログラムの記入があるので、手打ちはキツイです。

※注意

imotenの設定はすでに終了しているものとみなします。

サーバーに新しいプログラムを書きこむので、CPUやメモリ使用率が上がります。
失敗すると最悪使えなくなるかもしれないので注意してください。

SSLとは

ネット上で情報を暗号化し、データを送受信するプロトコル。
Yahoo!メールはSSLで暗号化されているんだけど、送信(SMTP)サーバーはimotenでしているのでSSLで暗号化されていない。
そこで、imotenをSSLに対応させて暗号化してしまおう!という算段です。

サーバーでの設定

さくらインターネットのVPS新プランの場合(CentOS6)

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を作成

新規に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(stunnel起動プログラム)を作成

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をスタートアップに登録

サーバーが再起動しても、自動でstunnelが起動するように設定する。

[root@ ~]# /sbin/chkconfig –add stunnel エンターキー

stunnelを起動

stunnelを起動する。

[root@ ~]# /etc/init.d/stunnel start エンターキー

これでstunnelが起動した。

これでサーバーでの設定は終了。

iPhoneでの設定

設定→メール/連絡先/カレンダー→yahooアカウント→アカウント→送信メールサーバーを開く。

プライマリサーバー(imotenのホスト名)をタップ。

SSL使用をオンにし、サーバーポートを465に変更して完了をタップ。

Iphone1

”サーバの識別情報を検証できません”というメッセージが出てくるので、”続ける”をタップ。

これでSSL化が終了する。

テストメールを送信してみよう。
無事届いたら成功。

これでほぼ完璧

imotenのSMTPサーバーもSSLに対応させてセキュリティレベルもアップ!
これで隙のない運用になったかと思われる。

あとはMail.appでのプッシュに難がある方もいるみたいなので、色々検証してみます。
うまくいけばいいけど。

【iPhone】imotenの送信メールをSSLで暗号化する【docomoメール】」への112件のフィードバック

  1. Anonymous

    >imotenはひとつのサーバーにメールアドレスひとつしか設定できないのでしょうか?もう一つ別のメールアドレスを同じサーバーに設定する事は出来ませんか?
    また設定する方法はないでしようか?

    返信
  2. 葛葉キョウジ

    >imotenのプログラムはひとつのiモード.netアカウントしかサポートしていないので、できません。

    2つimotenを稼働できるか考えましたか、同じ名前のプログラムを同時に起動することはできないですし、
    リネームして起動するのもおそらく起動しないので無理でしょう。

    一応imotenのサイトにあるQ&Aを全て目を通して見ましたが、それに対する回答はなかったのでたぶん無理じゃないかなと思いますけども。

    お役に立てなくて申し訳ありません。

    返信
  3. KAZU

    >こんにちは
    imotenを解凍する(インストールした?)ディレクトリ名を替えてあげればうまくいかないですか?
    /usr/local/imotenとは別に、/usr/local/imoten2とか解凍し、リンクを作るときに/etc/init.d/imoten2にしたら、メモリは消費しますが何個でも立ち上げられないでしょうか。
    もちろんimode.netの契約もその数だけいるでしょうが。
    もしかしたら、友達と一緒に一台借りれば割り勘でいけたかな。
    ただ、javaがうまく動くかわかりません。

    返信
  4. 葛葉キョウジ

    >それも考えたのですが、アカウントが二つ無いので実験出来ないんですよね。
    しかも、共有する人に自分のメールとパスワードを丸見えにするか、
    相手のメールとパスワードを丸見えにするかのどちらかなので、
    セキュリティのことを考えるとあまりオススメ出来ないです。

    やっぱり個々で運用するのがオススメです。

    返信
  5. KAZU

    >そうですね
    確かにどちらにしろ教えないといけませんね
    基本は個々ですね
    SPモードの契約をしてるので、もしかしたらもう一つもらえるかもしれません
    それからドコモのwebメールもありましたね
    imotenってドコモのwebメール版もあったような

    返信
  6. 葛葉キョウジ

    >SPモードはAndroidの端末にSPモードアプリをダウンロードしなければならないので、
    Android端末を持っていない自分としては実験出来ません(-_-;)

    imotenのウェブメール版は送信できないんですよね。
    ちょっと使い物になんないです。

    というわけで、やっぱりimotenが一番かなとw
    なかなかうまくいかないもんです。

    返信
  7. Anonymous

    >はじめまして。くずのは様のおかげでSIMフリーiphone4s&ドコモでimotenプッシュ環境が整いました。テザもFaceTimeも一通り設定し終えてこれからというのに、もうゴール感が漂ってます・・。とにもかくにも一言お礼が言いたくお邪魔しました。有益な情報、本当に有り難うございます。

    1つ、SSL化の記事で「stunnelをスタートアップに登録」箇所のコマンドをコピペしたら–の部分が大文字になっている様で、コマンドが無効になってました。小文字に直したらOKでした。小生の様なコマンドラインが宇宙語に見える人にとっては難関になりそうな事なので一応ご報告した次第です。これからもブログ楽しみにしてます。それでは。

    返信
  8. 葛葉キョウジ

    >コメントありがとうございます。

    ここにも大文字ハイフンがまじってましたか・・・すいません。
    修正しました。
    ローカライズされていないブログエディタ使っているせいか、見た目は半角ハイフンに見えるんですけどねぇ。
    困ったもんです(-_-;)
    教えていただいてありがとうございますヽ(´ー`)ノ

    楽しいのはこれからですよ!w
    設定も楽しいですけどね。

    返信
  9. きんちゃん

    >お世話になります。きんちゃんと言います。

    先日 SIM フリー iphone 4S を入手し、2月1日(昨日)ドコモと契約し、使い始めました。
    初めての iphone なので、くずのは様のブログが大変参考になりました。
    ご尽力に深く感謝します。

    さて、imoten の SSL 化ですが、使うのが自分だけなら、別にオレオレ証明書でも構わない訳ですが、下記では無料でサーバー証明書を発行してもらえます。ほとんどブラウザにも対応して、個人で趣味に使う分には十分です。

    https://www.startssl.com/

    私はここで発行してもらった証明書を使って、気分すっきりです。:-)
    まぁ、自己満足の部類ですけど。

    どうぞ、今後もよろしくお願い致します。
    失礼します。

    返信
  10. 葛葉キョウジ

    >おおおお、この証明書だとWindows7でもあっさり認証されるんですかね?
    それだとWebDAVで証明書を発行するのに役に立ちますよね!

    貴重な情報ありがとうございますヽ(´ー`)ノ

    返信
  11. きんちゃん

    >お世話になります。きんちゃんです。

    >この証明書だとWindows7でもあっさり認証されるんですかね?

    何にでも使えると思いますよ。
    一番の弱点は、知名度の高いベリサインなどと違い、「おまえの証明書は本物だ」と言ってくれるのが、イスラエルは startcom という、「あんた誰なの?」という会社な事だけです。:-)

    WebDAV は使ったこと無いのですが、ちょっとぐぐると、Web サーバー上のファイル管理システムのようですね。多分、apache でサーバー証明書を使うときと同様に問題ないと思います(断言は出来ません。念のため)。

    ほとんど全ての主要なブラウザ、IE firefox chrome safari opera などには最初から登録されていますので、自分のホームページを https 化しても、オレオレ証明書を使った時みたいに、「このホームページが認証されていません、続けますか?」みたいな脅しが出てくることもまずありません。

    なお、ここで発行してくれる証明書の有効期間は1年間です。期限切れの2週間前に更新を促すメールがやってきます(もちろん、更新も無料)。

    他にもある程度の制限はありますが、1ドメインで、さくらの VPS を1台借りて運用している人なんかには必要十分でしょう。

    Class 2/3 が2年間60ドル、ブラウザの URL 表示欄に緑表示で社名などを出せる Extended が2年間140ドルですので、ちょっと見栄(?)を張りたい方も検討に値するかもしれません。:-)

    ちょっと、オタク知識になってしまったかもしれませんね。
    お騒がせしました。失礼します。

    返信
  12. Anonymous

    >こんばんは。
    いつもこのブログにはお世話になっております。
    質問なのですがiphoneの設定の方で入力をし、完了すると検証中となって先に進みません。
    どうすれば良いでしょうか?

    返信
  13. Anonymous

    >すいません;
    上の質問を書いた者ですが、その後サーバーの識別情報を検証できませんとでました。
    どうすればいいでしょうか?
    連投すいません;

    返信
  14. 葛葉キョウジ

    >stunnelは起動してますか?

    # /etc/init.d/stunnel start エンターキー

    してるなら設定のどこかが間違っているんですよね。
    コピペが失敗していないかとか調べてみてください。

    返信
  15. Anonymous

    >もう一度最初からやってみたのですが変化ないです・・・

    一番最初の時の設定で一度入力に失敗して何度か同じ操作をしたのですがそれがいけなかったのでしょうか?

    返信
  16. 葛葉キョウジ

    >何の操作を何度かしたのかわからないとなんとも言えないですけど、
    # /etc/init.d/stunnel start エンターキー
    をした時にどんなメッセージが返ってきますか?

    返信
  17. Anonymous

    >最初の入力に失敗したときはfailedと出て、気づいてなおしたあとはokと出ました。
    viのところを二つとも間違えていてその時に二回ぐらい最初から最後までやりました

    長々と居座ってしまい申し訳ないです・・・

    返信
  18. 葛葉キョウジ

    >記述を直した後にstunnelをリスタートしました?

    コピーアンドペーストで作業をおこなってますよね?

    返信
  19. Anonymous

    >リスタートは上記のスタートのコマンドでいいんでしょうか?

    はい。
    ですが最初の二文字程度欠けていたのでそれに気づき直しました。

    返信
  20. Anonymous

    >やってみました
    okと出るのですがiPhoneでは識別情報がうんたらでできませんでした・・・

    返信
  21. 葛葉キョウジ

    >もしかして、サーバの識別情報を検証できません ですか?
    続けるってボタン無いですか?

    返信
  22. Anonymous

    >おお!
    できました!
    まさかこんな間近に問題があったなんて思いませんでした!

    ありがとうございます!

    返信
  23. 葛葉キョウジ

    >おめでとうございますヽ(´ー`)ノ

    そのメッセージをど忘れしてたんですけど、やっと思い出せましたw
    ありがとうございます。
    書きなおしておきますw

    返信
  24. まさ

    >はじめまして。このホームページのおかげで苦労しましたが無事自宅mac miniサーバー(OS10.6.8)でimoten運用できています。
    SSL化をしたいのですがmacOSでの設定がよくわかりません。サーバー認証のやり方などどこか細かい所で間違っているのかも知れません。
    葛葉さんの利用しているcentOSとの変更点などもし分かりましたらお教えいただけないでしょうか?

    返信
  25. 葛葉キョウジ

    >MachとCentじゃ大分違うっぽいですね。
    色々調べてみたんですが、
    OSXでのstunnelはちょっとわかんなかったです(;´Д`)
    お役に立てなくて申し訳ないですm(_ _)m

    返信
  26. まさ

    >先日自宅mac miniサーバーでのimoten SSL化について質問させて頂きました。
    その後stunnelについて勉強して苦労しましたがおかげさまでSSL化に成功しました。証明書の作り方からstunnelの扱いまで少しずつCentとは違っているようです。ありがとうございました。

    返信
  27. me

    >無事にSSL化出来ました。ありがとうございます。

    SSLで送信する事は出来たのですが、一つ問題があります。

    設定の最後、再起同時に自動起動設定の
    /sbin/chkconfig –add stunnel
    を入力した際に
    service stunnel does not support chkconfig
    と表示されました。

    試しにサーバーを再起動したところ、iPhoneからSSLでの送信が出来ませんでした。
    iPhoneの設定でSSLをオフにし、ポートも587に戻すと送信可で、SSLの465にすると
    「SMPTサーバーが応答しません」になってしまいます。

    そこで
    /etc/init.d/stunnel start
    を入力し手動で起動してみると、すんなりSMTPサーバーが認識されSSL送信出来ました。

    私が使っているのはDTIなのですが
    SSLプログラム自動起動に設定出来ないのはどういった原因が考えられますでしょうか?

    返信
  28. 葛葉キョウジ

    >さくらのサーバーだと/sbin/chkconfigじゃなくて、/bin/chkconfig –add stunnelかもしれません。
    ちょっと試して見てください。

    返信
  29. me

    >ありがとうございます。

    試してみましたが
    -bash: /bin/chkconfig: No such file or directory
    となってしまいました。

    返信
  30. 葛葉キョウジ

    >stunnelの記述の上の方で抜けてるところないか確認して見てください。
    コピーミスの可能性があります。

    返信
  31. me

    >コピーミスがありました!
    SSL送信はちゃんと働いていたので、まさか記述ミスがあるとは思っていませんでした。
    お騒がせしました。

    返信
  32. Anonymous

    >こんばんは。いつも参考にさせてもらっています。

    この記事を見てSSL化に挑戦したのですが、最初の# cd /etc/pki/tls/certs で「そんなデレクトリないよ」と思われるメッセージが出ます。
    いろいろ調べた結果、# yum -y install stunnelでstunnelをインストールする必要があるのではないかとの結論に至ったのですが間違えていませんでしょうか?

    教えていただけないでしょうか。

    返信
  33. 葛葉キョウジ

    >ああ、さくらVPSですよね?
    CentOS6にはStunnelがデフォルトでインストールされていないので、
    インストールが必要です。
    なのでそれで合ってます。
    書き換えておかないとだめだな。
    ありがとうございましたヽ(´ー`)ノ

    返信
  34. Anonymous

    >回答ありがとうございます。

    さくらVPSを使っています。早速挑戦しようと思います。

    返信
  35. Anonymous

    >試してみたのですが、# yum -y install stunnelの後に以下のような表示がありそのあとに進めません。どんな原因が考えられるか教えていただけないでしょうか。

    Loaded plugins: fastestmirror, security
    Determining fastest mirrors
    epel/metalink | 4.3 kB 00:00
    *epel:ftp.jaist.ac.jp
    base | 3.7 kB 00:00
    epel | 4.0 kB 00:00
    epel/primary_db | 4.3 MB 00:00
    extras | 3.5 kB 00:00
    updates | 3.5 kB 00:00
    updates/primary_db | 2.4 MB 00:00
    Setting up Install Process
    Error: Nothing to do

    返信
  36. Anonymous

    >続けてコメントさせていただきます。
    調べてみると*epel:ftp.jaist.ac.jp とはアップデートファイルがあるという意味ではないかと思うのですが、合っているでしょうか?

    返信
  37. ナオキチ

    >2日にわけて4~5回やっても同じだったのですが、今試してみたらうまくいったような感じです。
    試しにこのまま先に進んでみます。

    お騒がせして申し訳ありません。あと質問に匿名を使ってしまって申し訳ありませんでした。

    返信
  38. ナオキチ

    >stunnelをスタートアップに登録するまではうまくいったようです。
    次の/etc/init.d/stunnel startを実行ると
    -bash: /etc/init.d/stunnel: No such file or directory
    が出ます。
    10回ぐらいやってもダメなので、また明日挑戦してみます。

    返信
  39. 葛葉キョウジ

    >さくらだとsbinだと通らないので、
    DAEMON=/usr/bin/stunnel
    に書き換えて下さい。

    返信
  40. ナオキチ

    >書き換えて
    /etc/init.d/stunnel startを実行ると
    -bash: /etc/init.d/stunnel: Permission denied
    と出ました。
    試しにiPhoneの設定をしてみたら
    SMTPサーバーが応答しません。ネットワークの接続状態と送信ネットワークフィールドに正しい情報を入力したかを確認してくださいと出ました。
    なんだかクエッションだらけですw

    返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)