Seichan です.qmail 関連の SSL/TLS 化を考えてます.特に SMTP(submission), POP3, IMAP.
楽ちんぽいのは ucspi-tcp を SSL が扱えるようにする方法だったので色々調べてみた.
sysutil/ucspi-tcp (オリジナル)
WITH_SSL=yes でパッチを当てる事で行ける.tcpserver はそのまま使えるので,tcpserver を使っていて SSL 不要な所はまったく修正が要らず,SSL 化したい所だけ,オプションを追加してやる.
tcpserver に追加するオプションは,
-s SSL を有効
-n CERTFILE 証明書/鍵ファイルを指定
と,これだけ.
ただ,証明書/鍵を1つのファイルに収める必要があるのでその点が微妙?
sysutil/ucspi-ssl-tls (SSL/TLS パッケ)
ucspi-tcp とはまったく別の実装で ucspi-ssl と言う物がある.で,ucspi-ssl に TLS パッチを適用した物が,ucspi-ssl-tls.
こっちも,tcpserver とはまったく別のバイナリ sslserver を使うので,tcpserver を使っていて SSL 化が不要ならそこはいじる必要なし.上のやつより高機能な為,色々面倒な部分も.
とりあえずは tcpserver と記述していた所を sslserver に変更するだけなんだけど,鍵や証明書の指定方法が独自というか djb 的?
複数の環境変数が必要で,
- CADIR
- 証明書等を収めているディレクトリ
- CAFILE
- CA証明書ファイル
- CERTFILE
- サーバ証明書ファイル
- CIPHERS
- 使用可能な暗号化スイートを列挙
- DHFILE
- 鍵交換ファイル
- KEYFILE
- サーバ鍵ファイル
と,色々と準備が多かった.
鍵交換ファイルってなんやねん? ととりあえず調べ,
openssl dhparam -out dh1024.pem 1024
と作ることを知った.
最後に,uw-imap の ipop3d を使ってるわけですが,これ自身 SSL を有効にしてビルドしてれば巣の tcpserver で良い.
証明書/鍵を置く場所が最初から決まっているので,そこに配置してサービスを動作させるだけ.鍵等のファイルが無かったら平文で使える.
初めて知ったよ.
こいつは諸事情で ports から入れていないので,証明書を置く場所が標準とちょっと違うのかな?
Makefile に SSLCERTS=/etc/ssl/certs SSLKEYS=/etc/ssl/private って書いてあったので,それにならってディレクトリ作成.
ファイルはバイナリ名と同一にする必要があるっぽいので,ipop3d を SSL 化する場合は ipop3d.pem というファイル名にする必要があるらしい.
とりあえず,pop3 の SSL 化は完了したんだけど,まだ SSL 状態にはしていない.SMTP(submission) も SSL 化したけど…
いつからスタートしましょうか? > 使っている方.特に,くらとぱぷ
コメント