メールサービスの暗号化をはじめました 〜ASAHIネット
先日からASAHIネットがPOP over SSL、SMTP over SSL、SMTP authに対応したのでとりあえず設定してみた。(とりあえず経路の暗号化だけ。サーバー認証はまた後で。)
まず、POP。fetchmailを使っているので、~/.fetchmailrcのASAHIネットの個所に以下を追加するだけでOK。
ssl # sslcertck # sslcertpath /etc/ssl/certs
お次にSMTP。Wanderlustを使っているので、~/.wlに以下を追加。で、wl付属のssl.elをload-pathの通ったところに置いておく。
(require 'ssl) (setq ssl-certificate-directory "/etc/ssl/certs/") (setq ssl-certificate-verification-policy 1) : : : : : (setq wl-draft-send-config-alist '*1 : : : : : ("^From:.*hirose31@example.jp" ; ASAHIネットのメールアドレス (wl-smtp-posting-server . "mail.asahi-net.or.jp") (wl-message-id-domain . wl-smtp-posting-server) (wl-envelope-from . "hirose31@example.jp") (wl-from . "hirose31@example.jp") (wl-smtp-posting-port . "465") (wl-smtp-connection-type . 'ssl) (wl-smtp-posting-user . "ASAHINET-ID") ; ASAHIネットのID (wl-smtp-authenticate-type . "CRAM-MD5")) : : : : :
wl-draft-send-config-alistは
(add-hook 'wl-draft-send-hook '(lambda () (setq wl-draft-config-exec-flag t) (wl-draft-config-exec wl-draft-send-config-alist) (wl-draft-subject-check) ))
なふうに送信時に実行されるwl-draft-config-execの設定です。
ミソはwl-smtp-posting-portでSMTP over SSLのポート番号(465)を明示的に指定するのと、英数字のランダムっぽい文字列のASAHIネットのユーザーIDをwl-smtp-posting-userで指定しているところす。
2004-05-29追記
証明書チェーンを辿って検証するようにしてみた。
証明書チェーンを確認すると、
0 s:/C=JP/ST=Tokyo/L=Chuo-ku/O=ASAHI Net, Inc./OU=ASAHI-NET/CN=pop.asahi-net.or.jp i:/C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority 1 s:/C=JP/ST=Tokyo/L=Chuo-ku/O=ASAHI Net, Inc./OU=ASAHI-NET/CN=pop.asahi-net.or.jp i:/C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority 2 s:/C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority i:/C=US/O=GTE Corporation/CN=GTE CyberTrust Root
となっていたので、EntrustとGTE CyberTrustの証明書を探す。
EntrustのはEntrust Certificate Servicesから、GTE CyberTrustのは買収先の買収先のbeTRUSTedで見つからなかったので、InstantSSLのサポートページから入手。
それぞれを/etc/ssl/certs/に置いて、
ln -s xxx.pem $(openssl x509 -noout -hash < xxx.pem).0
としてhashをとってsymlinkをはる。
あとはアプリケーションの設定。
fetchmailは~/.fetchmailrcの当該部分に
ssl sslcertck sslcertpath /etc/ssl/certs
のようにsslcertckとsslcertpathを追加する。
wl (ssl.el) は、
(require 'ssl) (setq ssl-certificate-directory "/etc/ssl/certs/") (setq ssl-certificate-verification-policy 0)
のようにssl-certificate-verification-policyを0にする。