2009年7月3日 星期五

Postfix Email Server with Godaddy Turbo SSL

首先為何要買 SSL Certificates (SSL 憑證),自己簽發的不可以嗎? 當然可以,但自己簽發的根憑證 (root cert) 不是每部電腦都有,「種」在 browser 內不是每一個用戶都能理解。有一張已經在大部份 browser/email client 已經有的 root cert 就沒有「憑證錯誤」的問題。

如果你只想要 SSL connection 又不想用戶見到「憑證錯誤」。(例如以下的 smtps 情況),Godaddy 有一張叫 Turbo Standard SSL Cert便已足夠, 只要在網上找到 promo code (找不到的請電郵給我), US$12.99/year 便可以申請到。只要:

1. 確定你的 domain name 沒有設定為 private,administrative contact 上的電郵地址沒有錯誤。
2. Godaddy 的認證信會寄到這個地址的。

申請程序 Godaddy 的網頁有寫了,最主要是製造一個 CSR 檔,再 submit 上去。




Step 1
su -
mkdir /etc/postfix/ssl cd /etc/postfix/ssl
openssl genrsa -out mail.example.net.key 1024

Step 2
openssl req -new -nodes -key mail.example.net.key -out mail.example.csr
就是 submit 這張 csr 到上述的那網頁。
要留意的是 common name 必需是 mail.example.net (Full Qualified hostname of your email server)

Step 3
在 "Please select your server software from the drop-down list below" 的選項裏,請選 "Apache"。我不知其他的選項如何,但我試過選 "Others" ,出來的 SSL 不能在 postfix 內使用。

Step 4
Submit 了 CSR 檔後,確認信(基本上是即時有)會寄到 whois 的 administrative contact ,跟著信上的指示便可下載一個 zip file (內有 mail.example.net.crt 和 gd_bundle.crt 兩個檔案)

Step 5
將兩個檔案放在 /etc/postfix/ssl 目錄下,加上原有的 mail.example.net.key ,再合成一個 pem 檔。
cat mail.exampel.net.key mail.example.net.crt gd_bundle.crt >> mail.example.net.pem

Step 6
有關在 Postfix 使用 SSL/TLS 的設定,在 /etc/postfix/main.cf 內加上:

####### smtp auth
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
local_recipient_maps =
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/mail.example.net.key
smtpd_tls_cert_file = /etc/postfix/ssl/mail.example.net.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
########

0 意見: