認証周りを調べた

上の設定だとあまりにもさびしいので,ユーザ認証周りの設定を調べてみた.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も指定する必要があるらしい.