ちょっとした覚書に。
by dipus
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
タグ
カテゴリ
全体
Zaurus
Emacs
Palm
Apple
Unix
OpenBSD
GR Digital
Book
Complaint
Private
WM
Zaurus(IPK)
Kinesis
HSDPA
NetWalker
iPhone
以前の記事
2010年 02月
2009年 09月
2009年 07月
2009年 03月
2009年 02月
2009年 01月
2008年 09月
2008年 08月
2008年 07月
2008年 06月
2008年 05月
2008年 04月
2008年 03月
2008年 02月
2008年 01月
2007年 12月
2007年 11月
2007年 10月
2007年 09月
2007年 08月
2007年 07月
2007年 06月
2007年 05月
2007年 04月
2007年 03月
2007年 02月
2007年 01月
2006年 12月
2006年 11月
2006年 10月
2006年 09月
2006年 08月
2006年 07月
2006年 06月
2006年 05月
2006年 04月
2006年 03月
2006年 02月
2006年 01月
2005年 12月
2005年 11月
2005年 10月
2005年 09月
2005年 08月
2005年 07月
2005年 06月
2005年 05月
2005年 04月
2005年 03月
2005年 02月
2005年 01月
2004年 12月
2004年 11月
2004年 10月
2004年 09月
2004年 08月
2004年 07月
2004年 06月
2004年 05月
2004年 04月
最新のトラックバック
[Emacs][Zaur..
from ひとりぶろぐ
[Zaurus]Ruby..
from ひとりぶろぐ
OpenSSH の初期設定
from Masaatoshi Ito..
PostgreSQL
from Pukiwiki Plus!..
PostgreSQL
from Pukiwiki Plus!..
Gmail Bookを手..
from 魚輪事務業務日記 SAKAN..
[Zaurus] Rub..
from ひとりぶろぐ
Zaurus Ruby/..
from ひとりぶろぐ
Zaurus X/Qt-..
from MobileMemo Web..
ウィルコムの新しいW-Z..
from 激安情報でお得に購入計画.COM
検索
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧


Gmail with Mew

「Mew Gmail」やら「Mew stunnel」という検索式で辿り着く人が多いみたいなので、メモ書き。
基本的にLinux Zaurusでのやり方だけど、ほかのUnixでも全く同じ。
Mew を使って Gmail を POP 経由でみるには、下記のパッケージが必要。
- Emacs (ターミナル版かX/Qt版)
- Mew
- Stunnel
- OpenSSL
まずは Mew の設定(Emacs の設定は省略)。~/.mew.el の mew-config-alist の中に以下の記述を突っ込む。
("gmail"
 ("pop-server" . "pop.gmail.com")
 ("pop-ssl" . t)
 ("pop-ssl-port" . "995")
 ("pop-user" . "hogehoge@gmail.com")
 ("pop-auth" . pass)
 ("ssl-verify-level" . 0)
 ("usr" . "hogehoge")
 ("mail-domain" . "gmail.com")
 ("inbox-folder" . "+gmail"))
ここで注意しなくちゃいけないのは、ssl-verify-level を 0 にしないと、証明書の検証に失敗して Mew がコネクションを切ってしまう。ためしにターミナルで openssl で直接つなごうとすると、
$ openssl s_client -connect pop.gmail.com:995
CONNECTED(00000003)
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
〜〜略〜〜
SSL handshake has read 891 bytes and written 332 bytes
---
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 1024 bit
SSL-Session:
Protocol : TLSv1
Cipher : DES-CBC3-SHA
Session-ID: A86245D457FD5A0A88349394BFEE63B89D9BBA94B33C3F63E4C56AD20434ABB7
Session-ID-ctx:
Master-Key: 92389DD5AAC59EB7F19D9CE4F985A5DC212E075355593282F289EE88CFE18BD570C21EEBDDAAD5B4248047776B2A69FE
Key-Arg : None
Start Time: 1158296412
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
+OK Gpop ready for requests from xxx.xxx.xxx.xxx n62pf10671688pyf
接続はできているが、証明書の検証には失敗していることがわかる。
(setq mew-ssl-verify-level 0)
とやれば、証明書の検証に失敗しても Mew が接続を切らないので、それでいいじゃないかと言えばそれまでだが、折角の OpenSSL なのできちんと検証もするのが筋だろう。そこで検証用の証明書を用意する。[mew-dist 27313]では、Debian の "ca-certificates" パッケージから証明書をインストールしているが、openssl-0.9.8c-2 には証明書が用意されているので、パッケージをインストール後、
$ mkdir ~/.certs
$ for i in /opt/QtPalmtop/ssl/certs/*pem; do cp $i ~/.certs/`openssl x509 -hash -noout -in $i`.o .
とやって、証明書を ~/.certs にコピーする。このディレクトリを指定して証明書を検証できるか試してみる。
$ openssl s_client -connect pop.gmail.com:995 -CApath ~/.certs/
CONNECTED(00000003)
depth=1 /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
〜〜略〜〜
SSL handshake has read 891 bytes and written 332 bytes
---
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 1024 bit
SSL-Session:
Protocol : TLSv1
Cipher : DES-CBC3-SHA
Session-ID: 844FE0629E63EF04C9B665D0F8192B6B6DA8E20FEA8C105546AA490B737B60FD
Session-ID-ctx:
Master-Key: 08FA8DD8B4E6739A734428EA170A4138B3D0AA8118B8B90FD172EAABA8BA9EBD975BD290549C37950DE399CB360135A6
Key-Arg : None
Start Time: 1158296593
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
+OK Gpop ready for requests from xxx.xxx.xxx.xxx z80pf10666743pyg
証明書の検証に成功して接続できることを確認したら、~/.mew.el を下記のように
("gmail"
 ("pop-server" . "pop.gmail.com")
 ("pop-ssl" . t)
 ("pop-ssl-port" . "995")
 ("pop-user" . "hogehoge@gmail.com")
 ("pop-auth" . pass)
 ("ssl-verify-level" . 2)
 ("ssl-cert-direcroty" . "~/.certs")
 ("usr" . "hogehoge")
 ("mail-domain" . "gmail.com")
 ("inbox-folder" . "+gmail"))
書き換える。

それにしても、OpenSSL は多機能過ぎ。
(注意)
openssl_0.9.8c-1.ipk の /opt/QtPalmtop/ssl/certs 以下は手違いで空っぽになっているので、0.9.8c-2 以降を使ってください。

[PR]
by dipus | 2006-09-15 14:22 | Emacs
<< NetFront(R) Loc... OpenSSL, Berkel... >>