SyntaxHighlighter

2008/02/21

SMTP relay, gmail, postfix 2008年02月21日20:34


postfixでgmailにSMTP relayさせた。CAとか、ちゃんと勉強しないとわからないことが多すぎた…ちょっと反省。

それでどうやったかをメモると、
http://souptonuts.sourceforge.net/postfix_tutorial.html
に書いてあるのですが、

1. 証明書を作る
# CA.sh -newca

上のページではCA.plだけど、巷ではCA.shであるようでもあるが、Fedora8の現実としては/etc/pki/tls/misc/CAだった。

ln -s /etc/pki/tls/misc/CA /usr/local/sbin/CA.sh
して使用できるようにして対応。

あと、ここで入れた情報は必要なので覚えておかないとならないが、
openssl x509 -noout -text -in cacert.pem
として出力させることもできるようだ。

それと、CA.shを実行する場所が/etc/pki/tls/でないとまずいようで、それはopenssl.cnfが相対パスを使っているようだからだけど、定かではない。

2. サーバー証明書を作る

CA.shに入れた情報を元に、
# openssl req -new -nodes \
-subj '/CN=squeezel.com/O=ChottoChottoChotto_Widgets/C=US/ST=Pennsylvania/L=Elkins Park/emailAddress=ChottoChottoChotto@comcast' \
-keyout FOO-key.pem -out FOO-req.pem -days 3650

としてFOO-key.pemとFOO-req.pemを作る。FOO-key.pemは秘密鍵。

-subjには正しい情報を入れないとならないらしい。

3. サーバー証明書に署名する

# openssl ca -out FOO-cert.pem -infiles FOO-req.pem

4. これらの証明書を/etc/postfix/certsなどに置く
どこでもいい。

5. main.cfをいじる
#### Gmail (start)
relayhost = [smtp.gmail.com]:587
# auth
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
#tls
smtp_use_tls = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_note_starttls_offer = yes
tls_random_source = dev:/dev/urandom
smtp_tls_scert_verifydepth = 5
smtp_tls_CAfile = /etc/postfix/certs/cacert.pem
smtp_tls_cert_file = /etc/postfix/certs/FOO-cert.pem
smtp_tls_key_file = /etc/postfix/certs/FOO-key.pem
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert =no
smtp_tls_enforce_peername = no
#### Gmail (end)

/etc/postfix/sasl_passwdというファイルに、gmailアカウントを書く。

6. /etc/postfix/sasl_passwdにgmailアカウントを書いてハッシュ化
smtp.gmail.com ChottoChottoChotto@gmail.com:passwd_string

のようなファイルを作って、

# /usr/sbin/postmap /etc/postfix/sasl_passwd

とする。上のウェブサイトだと[smtp.gmail.com]としていたけれど、どうやらこれだとエラーになってメールが返されてしまう。

7. テスト
# /etc/init.d/postfix reload
# cat | /usr/sbin/sendmail -t
To: ChottoChottoChotto@gmail.com

Test
^D

0 件のコメント: