February 26, 2005

[黑客人生]Jedi.org 的 SSL

之前我機器上的 SMTPS / POP3S / FTPS 都是用 ca.csie.org 這個 Root CA (最高層認證中心) 所簽署的 SSL/TLS 憑證,不過畢竟我的機器完全沒有採用 csie.org 的網域名稱,這樣多少有點怪怪的(笑);再加上今年據說是所謂的「網路反盜版元年」,做壞事得小心點,所以我決定把 TatooineApache 伺服器加上 mod_SSL ,改採 HTTPS

因此我昨天還按照依瑪貓那篇有名的【如何製作 SSL X.509 憑證】,自己做了 Jedi.org 的 Root CA ,然後一併簽發了一堆憑證,給 Jedi.org 上面的 SMTPS / POP3S / FTPS 使用;也順便簽了一份憑證,給 Shrimplet 上面的 BlackMoon FTPD 用。這份 Root CA 憑證在此: jedi-org-ca.crt

以下記載一些技術細節,幾乎都來自 rafan 的指導:

首先,在 FreeBSD 上要把 Apache 加上 mod_SSL ,其實用 portupgrade 來做很簡單:

cd /usr/ports/
make fetchindex
pkgdb -F
portsupgrade -o www/apache13-modssl apache

像這樣子,就會升級之前用 ports 安裝的 Apache ,並且改用 apache13-modssl 這個 ports 來取代之。這樣裝完後,在 /usr/local/etc/apache/ 會多出一個 httpd.conf-dist ,參照這個設定檔,把有關 SSL 的部分合併回原來的 httpd.conf ,然後再重跑 Apache 即可:

apachectl startssl

PureFTPd 的話要修改 /usr/local/etc/pure-ftpd.conf ,主要是要啟用這一個選項:

TLS		2
這表示一定要用 SSL/TLS 纔接受連線。設定好了之後還要把簽好的憑證附在原有的 /usr/local/etc/ssl/private/pure-ftpd.pem 之後,然後重跑 pure-ftpd

/usr/local/etc/rc.d/pure-ftpd.sh restart

我的 SMTPS 採用 postfix ,要修改 /usr/local/etc/postfix/main.cf

# SSL/TLS
smtpd_tls_key_file = /usr/local/etc/ssl/mail.jedi.org.key
smtpd_tls_cert_file = $smtpd_tls_key_file
smtpd_tls_CAfile = /usr/local/etc/ssl/jedi.org.ca.crt
smtpd_use_tls = yes
tls_random_exchange_name = /var/run/prng_exch
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom
POP3S 的設定在 /usr/local/etc/dovecot.conf
# Disable SSL/TLS support.
ssl_disable = no
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert_file = /usr/local/etc/ssl/mail.jedi.org.key
ssl_key_file = /usr/local/etc/ssl/mail.jedi.org.key
當然,也一樣要把簽好的憑證的部分附在原有的 /usr/local/etc/ssl/mail.jedi.org.key 之後,然後重跑 postfixdovecot

postfix reload
/usr/local/etc/rc.d/dovecot.sh restart

最後還要回來處理一下憑證無效的警告,把 jedi-org-ca.crt 匯入到各應用程式用戶端,指定其為 Trusted Root CA (IE 翻譯成「受信任的根憑證授權」) ,之後就不會再跑出說憑證無效了。當然我也可以學 gslin 長輩那樣,花一點錢去買一份憑證來用,不過我又沒有在做大事業,想一想實在不太有此必要。

所發表 | 顯示版本變更: 1.6
[創用 CC 授權條款]
Jedi.org 的 SSL〉由 Jedi 製作,所有內容如無特別聲明,一律以創用 CC 姓名標示 3.0 台灣版授權條款釋出。
相關文章:
歷史上的今天:
迴響
[ 1 : 靜態鏈結 ]

我也想要在我的網站上加ssl!!
http://www.cacert.org/ 上提供了免費的電子簽章服務。

剛剛先申請了email用的電子簽章,掛上去後感覺真好:)

OOBE 發表於 February 26, 2005 02:13 PM
[ 2 : 靜態鏈結 ]

Hi sir:

請問一下,我照著文件作,可是我沒看到有任何有key的資料!請問是如何做到的ㄚ!謝謝
smtpd_tls_key_file = /usr/local/etc/ssl/mail.jedi.org.key

由 小傑 發表於 June 2, 2008 12:35 PM
[ 3 : 靜態鏈結 ]

呃,對不起,請問你的問題是?

Jedi 發表於 June 2, 2008 08:59 PM
給我迴響吧!
個人資訊








是否記住個人資訊?



請依上圖輸入檢核碼:
迴響





Jedi.org: 部落格 | Weblog | 三太子 | 討論 | 網頁親和力 | 深入親和力 | 簡報原力:AV | 履歷 | @ | Flickr | tumblr | NSFW