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 件のコメント:
コメントを投稿