認証周りを調べた
上の設定だとあまりにもさびしいので,ユーザ認証周りの設定を調べてみた.My new JID, or how to run DJabberd on Debian - brad's lifeをみると,Digest認証をするとある.まず
<VHost jabber.foo.co.jp> S2S false RequireSSL no <Plugin DJabberd::Authen::HTDigest> Realm djabberd HtDigest /Users/daiba/work/djabberd/djabberd.users </Plugin> <Plugin DJabberd::RosterStorage::SQLite> Database roster.sqlite </Plugin> </VHost>
という設定を作って認証をしてみると,
<iq type="set" id="auth_2" to="jabber.foo.co.jp" > <query xmlns="jabber:iq:auth"> <username>mac</username> <password>password</password> <resource>Psi</resource> </query> </iq>
というのが流れているのが見えた.全然ダイジェスト認証じゃないじゃん.というわけで,SSLが必須ということになるので,そのように設定してみる.
OldSSL enable SSLCertificateFile /Users/daiba/work/djabberd/server-cert.pem SSLCertificateKeyFile /Users/daiba/work/djabberd/server-key.pem <VHost jabber.foo.co.jp> S2S false RequireSSL yes <Plugin DJabberd::Authen::HTDigest> Realm djabberd HtDigest /Users/daiba/work/djabberd/djabberd.users </Plugin> <Plugin DJabberd::RosterStorage::SQLite> Database roster.sqlite </Plugin> </VHost>
Psiの画面をみてると,いちようSSLを使って通信しているみたい.でも,サーバ側のメッセージに
DJabberd::Connection::OldSSLClientIn=ARRAY(0x1aca914): Cipher `(NONE)'
と,出ている.CiperがNONEって大丈夫なのか?tcpdumpでチェックすると,平文では流れていないのでOKそう.
ちなみに,"OldSSL enabel"を設定しないと,TCP 5223ポートが開かない.で,cert.pemとkey.pemも指定する必要があるらしい.