Professional Documents
Culture Documents
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 2 頁,共 32 頁
1. SSL/X.509 簡介
2. 憑證無效的警告
3. 資料?什麼資料?
4. 所以 SSL 就安全了囉?
5. 什麼是數位簽名?
6. 什麼是憑證?
7. 什麼是認證中心?
8. 什麼是最高層認證中心?
9. 如何填寫憑證申請書
10. X.509 憑證制度的檢討
11. 其她 SSL/X.509 憑證的做法
10. 註釋
11. 參考資料
12. 後記
前言
版權所有 © 2002 依瑪貓。依瑪貓保有所有權利。如欲轉載、引用本文,請先詳閱旅
舍依瑪版權聲明。
按 X.509 的規定,憑證可以用 RSA Key ,也可以用 DSA Key 。不過在 SSL 通訊中,
伺服器的憑證因為要用來傳 Key ,而只有 RSA 可以傳 Key ,所以只能用 RSA 。至於認證
中心,只是簽名查核用,不用傳 Key , DSA 或 RSA 都可以,但因為還有一些 SSL 程式不
認得 DSA[2] ,為相容性起見,這裏我們也做成 RSA 。
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 3 頁,共 32 頁
若妳是用上述方法安裝:
# 設定相關的目錄
mkdir -p /etc/ssl
mkdir -p /etc/ssl/private
chmod og-rwx /etc/ssl/private
mkdir -p /etc/ssl/certs
mkdir -p /etc/ssl/crl
mkdir -p /etc/ssl/newcerts
# 設定 OpenSSL 設定檔[3]
mv /usr/share/ssl/openssl.cnf /etc/ssl
ln -s /etc/ssl/openssl.cnf /usr/share/ssl/openssl.cnf
# 設定 OpenSSL 設定檔的位置[4]
export OPENSSL_CONF="/etc/ssl/openssl.cnf"
# 製作亂數檔[6]
openssl rand -out /etc/ssl/private/.rand 1024
chmod og-rwx /etc/ssl/private/.rand
改成這樣
若妳之前做過最高層認證中心,不要重做,不然原來簽發的憑證,都會失效,都要重
簽。除非最高層認證中心自己過期、檔案遺失、 Private Key 外洩,否則絕對不要重做最高
層認證中心。
假設妳要做的最高層認證中心叫做 myrootca 。
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 4 頁,共 32 頁
2. 填寫憑證申請書
若不知如何填寫,請參閱「如何填寫憑證申請書」。
# 填寫憑證申請書
openssl req -new -key /etc/ssl/private/myrootca.key -out /tmp/myrootca.req
3. 簽發憑證
最高層認證中心因為沒有上級了,沒有人能給它簽名,只能自己給自己簽名。詳情請
參考「什麼是最高層認證中心?」。
最高層認證中心最好永遠不要過期。要是過期重簽,所有原來它簽發的憑證也都要重
簽,所有 SSL 程式也都要重新設定。所以我們效期簽 7305 天(大約 20年)。若不設效期
的話,預設是 30 天(一個月)。
簽完憑證,憑證申請書就不用了,可以刪掉。
# 自己給自己簽名
openssl x509 -req -days 7305 -sha1 \
-extfile /etc/ssl/openssl.cnf -extensions v3_ca \
-signkey /etc/ssl/private/myrootca.key \
-in /tmp/myrootca.req -out /etc/ssl/certs/myrootca.crt
# 刪除憑證申請書
rm -f /tmp/myrootca.req
製作伺服器用的憑證
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 5 頁,共 32 頁
請先登入到要用憑證的那臺伺服器上。
2. 填寫憑證申請書
若不知如何填寫,請參閱「如何填寫憑證申請書」。
# 填寫憑證申請書
openssl req -new -key /etc/ssl/private/myhost.key -out /tmp/myhost.req
3. 用最高層認證中心簽發憑證[8]
簽完憑證,憑證申請書就不用了,可以刪掉。
# 簽發憑證
openssl x509 -req -days 3650 -sha1 \
-extfile /etc/ssl/openssl.cnf -extensions v3_req \
-CA /etc/ssl/certs/myrootca.crt -CAkey /etc/ssl/private/myrootca.key \
-CAserial /etc/ssl/myrootca.srl -CAcreateserial \
-in /tmp/myhost.req -out /etc/ssl/certs/myhost.crt
# 刪除憑證申請書
rm -f /tmp/myhost.req
若妳是一般使用者:
設定 OpenSSL 的環境
# 設定相關的目錄
mkdir -p ~/etc
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 6 頁,共 32 頁
mkdir -p ~/etc/ssl
mkdir -p ~/etc/ssl/private
chmod og-rwx ~/etc/ssl/private
mkdir -p ~/etc/ssl/certs
mkdir -p ~/etc/ssl/crl
mkdir -p ~/etc/ssl/newcerts
mkdir -p ~/tmp
# 設定 OpenSSL 設定檔[10]
cp /usr/share/ssl/openssl.cnf ~/etc/ssl
# 設定 OpenSSL 設定檔的位置[11]
export OPENSSL_CONF="$HOME/etc/ssl/openssl.cnf"
# 製作亂數檔[13]
openssl rand -out ~/etc/ssl/private/.rand 1024
chmod og-rwx ~/etc/ssl/private/.rand
改成這樣
若妳之前做過最高層認證中心,不要重做,不然原來簽發的憑證,都會失效,都要重
簽。除非最高層認證中心自己過期、檔案遺失、 Private Key 外洩,否則絕對不要重做最高
層認證中心。
假設妳要做的最高層認證中心叫做 myrootca 。
2. 填寫憑證申請書
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 7 頁,共 32 頁
若不知如何填寫,請參閱「如何填寫憑證申請書」。
# 填寫憑證申請書
openssl req -new -key ~/etc/ssl/private/myrootca.key -out ~/tmp/myrootca.req
3. 簽發憑證
最高層認證中心因為沒有上級了,沒有人能給它簽名,只能自己給自己簽名。詳情請
參考「什麼是最高層認證中心?」。
最高層認證中心最好永遠不要過期。要是過期重簽,所有原來它簽發的憑證也都要重
簽,所有 SSL 程式也都要重新設定。所以我們效期簽 7305 天(大約 20年)。若不設效期
的話,預設是 30 天(一個月)。
簽完憑證,憑證申請書就不用了,可以刪掉。
# 自己給自己簽名
openssl x509 -req -days 7305 -sha1 \
-extfile ~/etc/ssl/openssl.cnf -extensions v3_ca \
-signkey ~/etc/ssl/private/myrootca.key \
-in ~/tmp/myrootca.req -out ~/etc/ssl/certs/myrootca.crt
# 刪除憑證申請書
rm -f ~/tmp/myrootca.req
製作伺服器用的憑證
2. 填寫憑證申請書
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 8 頁,共 32 頁
門名稱、憑證名稱、聯絡人的信箱,以及申請的效期等等。這裏憑證名稱 (Common
Name) 要用伺服器的全名 (www.abc.com) ,其她請一一填寫。詳情請參考「什麼是憑
證?」。
若不知如何填寫,請參閱「如何填寫憑證申請書」。
# 填寫憑證申請書
openssl req -new -key ~/etc/ssl/private/myhost.key -out /tmp/myhost.req
3. 用最高層認證中心簽發憑證[8][15]
簽完憑證,憑證申請書就不用了,可以刪掉。
# 簽發憑證
openssl x509 -req -days 3650 -sha1 \
-extfile ~/etc/ssl/openssl.cnf -extensions v3_req \
-CA ~/etc/ssl/certs/myrootca.crt -CAkey ~/etc/ssl/private/myrootca.key \
-CAserial ~/etc/ssl/myrootca.srl -CAcreateserial \
-in /tmp/myhost.req -out ~/etc/ssl/certs/myhost.crt
# 刪除憑證申請書
rm -f /tmp/myhost.req
設定伺服器
常見的 SSL 通訊方式有兩種:一種是傳統的 SSL ,一種是新的 TLS 。
以下依不同的通訊協定,分別討論。
HTTP
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 9 頁,共 32 頁
Apache
......
## mod_ssl.c: mod_ssl 基本設定
<IfModule mod_ssl.c>
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLSessionCache dbm:/var/log/apache/ssl_scache
SSLSessionCacheTimeout 300
SSLPassPhraseDialog builtin
SSLMutex file:/var/log/apache/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLLog /var/log/apache/ssl_engine_log
SSLLogLevel info
SSLCipherSuite ALL:!ADH:!EXP56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/certs/myhost.crt
SSLCertificateKeyFile /etc/ssl/private/myhost.key
<VirtualHost *:443>
SSLEngine on
</VirtualHost>
</IfModule>
......
httpd -t
POP3
Qpopper
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 10 頁,共 32 頁
Qpopper,各自用不同的設定檔。
設定 /etc/qpopper.conf 如下:
設定 /etc/qpopper-s.conf 如下:
popper -f /etc/qpopper.conf
popper 995 -f /etc/qpopper-s.conf
這樣就可以了。查看:
ps ax | grep popper
SMTP
Sendmail
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 11 頁,共 32 頁
# STARTTLS - 加入 SSL/TLS 功能
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
編譯、安裝:
# 編譯 Sendmail
./Build
# 安裝 Sendmail
make install
重做設定檔:
不過設定還沒結束。
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 12 頁,共 32 頁
# 設定目錄
mkdir -p /etc/mail/private
chgrp smmsp /etc/mail/private
chmod o-rwx /etc/mail/private
mkdir -p /etc/mail/certs
# 填寫憑證申請書
openssl req -new -key /etc/mail/private/myhost-msp.key \
-out /tmp/myhost-msp.req
# 簽發憑證
openssl x509 -req -days 3650 -sha1 \
-extfile /etc/ssl/openssl.cnf -extensions v3_req \
-CA /etc/ssl/certs/myrootca.crt -CAkey /etc/ssl/private/myrootca.key \
-CAserial /etc/ssl/myrootca.srl -CAcreateserial \
-in /tmp/myhost-msp.req -out /etc/mail/certs/myhost-msp.crt
# 刪除憑證申請書
rm -f /tmp/myhost-msp.req
......
dnl Sendmail STARTTLS SSL/TLS support
define(`confCACERT_PATH', `/etc/ssl/certs')
define(`confCACERT', `/etc/ssl/certs/myrootca.crt')
define(`confCLIENT_CERT', `/etc/mail/certs/myhost-msp.crt')
define(`confCLIENT_KEY', `/etc/mail/private/myhost-msp.key')
define(`confDONT_BLAME_SENDMAIL', `GroupReadableKeyFile')
......
重做設定檔:
......
Sep 14 04:19:24 rinse sendmail[12093]: STARTTLS=client, relay=localhost.localdom
ain., version=TLSv1/SSLv3, verify=OK, cipher=EDH-RSA-DES-CBC3-SHA, bits=168/168
......
設定作業系統
有些作業系統,設有系統公用的憑證庫,把認得的憑證、認證中心放在一起。我們把
我們自製的認證中心,加進系統公用的憑證庫,使用這個憑證庫的程式,就可以查得到
了。
MS-WINDOWS
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 13 頁,共 32 頁
設定瀏覽器
Mozilla 與 Netscape 6 以後的版本
Internet Explorer
Opera
Lynx
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 14 頁,共 32 頁
設定電子郵件程式
Mozilla 與 Netscape 6 以後的版本
要設定使用 SSL 收信,啟動 Mozilla 信件與 News 或 Netscape Mail & Newsgroups 後,由
工具列上的 [編輯(E)] 、 [信件與 News 帳號設定(M)...] 按下去,會打開一個 [信件與 News 帳號
設定] 的視窗。在左邊選擇妳要設定的帳號下的 [伺服器設定] 。視窗右邊的 [伺服器名稱:]
中,要填上 POP3 郵件伺服器的完整名稱。在右下方 [伺服器設定] 裏的 [使用 SSL 安全連線]
選項上打勾,然後按 [確定] 。這樣就會用 SSL 收信了。
要設定使用 SSL 寄信,啟動 Mozilla 信件與 News 或 Netscape Mail & Newsgroups 後,由
工具列上的 [編輯(E)] 、 [信件與 News 帳號設定(M)...] 按下去,會打開一個 [信件與 News 帳號
設定] 的視窗。在左邊選擇 [SMTP 外寄郵件伺服器] ,右邊標題會變成 [SMTP 外送郵件伺服器設
定] 。右邊中間有一個 [使用 SSL 安全連線] ,選 [若可以時] 。然後按 [確定] 。這樣就會用
SSL 寄信了。
Netscape 4 及更早的版本
Outlook Express 6
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 15 頁,共 32 頁
Outlook Express 4 或 5
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 16 頁,共 32 頁
# 將最高層認證中心轉成 DER 檔
openssl x509 -in myrootca.crt -outform der -out myrootca-der.crt
Becky!
Opera 郵件
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 17 頁,共 32 頁
Stunnel
client = yes
[pop3s]
accept = localhost:50110
connect = my.mail.server:995
[smtps]
accept = localhost:50025
connect = my.mail.server:465
netstat -an
會看到類似:
觀念討論
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 18 頁,共 32 頁
SSL/X.509 簡介
在 X.509 中,每一個合格的憑證上,都會有一個
簽名。最下層的憑證上,會有一個認證中心 (CA) 的
簽名,表示這個認證中心 (CA) 檢查過,確認所有者
資料無誤。中間的認證中心 (CA) 上,也會有管轄它
的最高層認證中心 (Root CA) 的簽名,表示最高層認
證中心授權給它,可以簽發別人的憑證。只有最高層
認證中心上,因為它已經是最大,沒有再上層可以給
它簽名了,所以只好自己簽自己,憑證上的簽名是自己簽的。
當程式碰到合格的 SSL 憑證
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 19 頁,共 32 頁
當程式碰到有問題的 SSL 憑證
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 20 頁,共 32 頁
憑證無效的警告
當程式碰到我們自製的認證中心
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 21 頁,共 32 頁
把我們自己的認證中心加上去
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 22 頁,共 32 頁
詳細做法,請參考「設定作業系統」、「設定瀏覽器」與「設定電子郵件程式」各
節。
資料?什麼資料?
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 23 頁,共 32 頁
「等等,剛剛圖中的最後一個步驟,『沒問題,這是給妳的資料』。使用者還沒有填
什麼資料啊!程式怎麼可以自己亂給對方資料呢?到底給了什麼資料?程式會不會自己給
對方 E-mail 、信用卡號碼、身份證字號、密碼?」
程式傳給對方的,是接下來通信時,對稱式加解密用的 Key 。
所以 SSL 就安全了囉?
不對。
「那怎麼辦?怎麼樣才能算安全?才能放心把資料傳過去?」
就像在實體世界,跟不認識的商店買東西時,一定會保持戒心一樣,在網路上和任何
網站交易,也一定要保持戒心,除了要考慮妳平常信不信任這個網站外,也要考慮妳傳過
去的資料重不重要。舉例來說,留言板、討論區、網路投票等等,不是很私人的資料,可
以放心傳過去沒問題;但如果是真實姓名、手機號碼、家裏電話、信用卡號碼, E-mail 等
等,就只能傳給自己信任的網站了。
什麼是數位簽名?
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 24 頁,共 32 頁
這個性質很像合約中,在整份合約上大大簽一個名一樣,人家認得妳簽名的筆跡,日
後只要合約有任何塗改,一認便知。所以我們把它叫做數位簽名。
因為數位簽名可以用來檢查資料有沒有被竄改,所以我們把它用在憑證上,認證中心
檢查過 Public Key 的所有人,和 Key 上記載的所有人資料相符後,用認證中心自己的
Private Key ,在這些資料上面做個數位簽名,表示證明。日後收到這個 Public Key 的人,
只要檢查上面認證中心的簽名,就可以知道這個 Key ,和它上面所載的所有人資料相不相
符,是不是真的是這家公司的 Key 。也就知道,連上的這個伺服器,是不是真的是這家公
司的伺服器了。
什麼是憑證?
什麼是認證中心?
什麼是最高層認證中心?
最高層認證中心,因為已經是最大,沒有再上層可以給它簽名了,所以憑證上的是自
己的簽名,不是別人的簽名。因為最高層認證中心沒有再上面的簽名了,沒有人可以保證
最高層認證中心本身有沒有問題,沒有辦法再往上檢查,所以程式只能事先就認得一些可
靠的最高層認證中心,事先就知道一些可靠的最高層認證中心的 Public Key 。
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 25 頁,共 32 頁
最高層認證中心只能由一些著名、可靠的公司來擔任,因為沒有辦法再往上查驗。如
果程式被加進一些不可靠的最高層認證中心,接下來碰到它簽下來的憑證,都會有問題,
整個程式的安全都會被破壞。所以在 X.509 下, SSL 程式一定要好好保護最高層認證中
心,一定要再三確認,不可以隨便讓人手動加進最高層認證中心。
如何填寫憑證申請書
如果妳不知道該如何填寫憑證申請書,請參考以下範例:
X.509 憑證制度的檢討
X.509 憑證制度,是靠事先認得一些可靠的最高層認證中心,再一層一層簽發下來的
金字塔型結構。這樣的制度,很像信用卡制度或身份證制度:
這樣的金字塔結構,有好有壞。
好處在於,在無限寬廣的網際網路上,我們根本不知道會碰到什麼樣的網站,所以根
本也無從查認每一個收到的 Public Key 有沒有問題,是不是真的是這家公司的網站,我是
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 26 頁,共 32 頁
這真的沒有辦法嗎?
PGP 的信任網
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 27 頁,共 32 頁
在 PGP 信任網模式下,我們不需要一個最高層認證中心,給每個人核發憑證,才能取
得 Public Key 的安全性。我們只要信任我們自己的 Public Key 憑證,用自己的憑證去簽認
識的 Public Key 的憑證,別人也用他們自己的憑證,去簽他們認識的人的憑證,往外一層
一層擴散出去,互相信任。碰到不認得的憑證時,只要能夠從他憑證上的簽名中,回溯到
可信任的人的憑證身上,就可以了。其實事情本來就是這樣。我們為什麼要向別人繳一年
好幾萬的年費,還要別人簽名,才能信任自己的憑證呢?
其她 SSL/X.509 憑證的做法
其實完整的話,應該要做三層(參考:「SSL/X.509 簡介」中的附圖):最高層認證
中心 (Root CA) ,中間的認證中心 (CA) ,最後才簽發下面的憑證。可是我不會做中間的認
證中心, ^^; 完整的三層挺複雜的。而且,最高層認證中心 (Root CA) 只是「不會」用來直
接簽憑證,而不是「不能」用來直接簽憑證,最高層認證中心 (Root CA) 簽的憑證,一樣
有效。更何況,我們通常都只有幾台伺服器,只需要幾個憑證就好,不需要授權好幾個中
間的認證中心,來讓它們簽憑證。所以我們就省略了中間的認證中心,直接用最高層認證
中心 (Root CA) 來簽發憑證 (Certificate) 。
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 28 頁,共 32 頁
註釋
1. FHS 是指 Filesystem Hierarchy Standard 檔案系統階層標準,是一個 Unix 下,目錄及檔
案存放位置的標準規定,以方便系統管理員管理,方便不同程式間互相搭配整合。
目前大多數 Linux 版本(如 Debian 、 Red Hat 、 Mandrake 等)都已支援 FHS 。更進
一步的資料請參考 FHS 的網站 http://www.pathname.com/fhs/ 。 (回正文)
2. Opera 截至目前為止 (6.05) ,只支援 RSA ,不支援 DSA 。 (回正文)
3. 在 Mandrake 下裝 RPM 時,請改用:
mv /usr/lib/ssl/openssl.cnf /etc/ssl
ln -s /etc/ssl/openssl.cnf /usr/lib/ssl/openssl.cnf
(回正文)
4. 這是 bash 或 zsh 的指令。 csh 或 tcsh 下,請改用:
(回正文)
5. 這樣以後登入的時候,都能夠自動設定 OPENSSL_CONF 。這是用 bash 登入的情
形,若用 csh 或 tcsh 登入,請改用:
若用 zsh 登入,請改用:
(回正文)
6. (感謝網中人 (netman) 提供)若妳安裝的是 Red Hat 的 openssl RPM ,在這裏會出一
點問題。 Red Hat 的 openssl 做 rand 指令,配合 -out 參數時,參數解析會出錯,無法
執行。目前我還沒有看到網路上有人提過這件事。解決方法之一,是自己編譯、安
裝 OpenSSL 。這其實很簡單。在 Linux 上,步驟如下:
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 29 頁,共 32 頁
# 製作 DSA 參數檔
openssl dsaparam -out /tmp/dsaparam 2048
# 刪除 DSA 參數檔
rm -f /tmp/dsaparam
rm -f /tmp/myhost.req
(回正文)
10. 在 Mandrake 下裝 RPM 時,請改用:
cp /usr/lib/ssl/openssl.cnf ~/etc/ssl
(回正文)
11. 這是 bash 和 zsh 的指令。 csh 或 tcsh 下,請改用:
(回正文)
12. 這樣以後登入的時候,都能夠自動設定 OPENSSL_CONF 。這是用 bash 登入的情
形,若用 csh 或 tcsh 登入,請改用:
若用 zsh 登入,請改用:
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 30 頁,共 32 頁
(回正文)
13. (感謝網中人 (netman) 提供)若妳安裝的是 Red Hat 的 openssl RPM ,在這裏會出一
點問題。 Red Hat 的 openssl 做 rand 指令,配合 -out 參數時,參數解析會出錯,無法
執行。目前我還沒有看到網路上有人提過這件事。解決方法之一,是自己編譯、安
裝 OpenSSL 。這其實很簡單。在 Linux 上,步驟如下:
# 製作 DSA 參數檔
openssl dsaparam -out ~/tmp/dsaparam 2048
# 刪除 DSA 參數檔
rm -f ~/tmp/dsaparam
rm -f /tmp/myhost.req
(回正文)
17. 不過微軟的 Outlook Express 很笨,不支援相容性高的 TLS 新標準,只能跑舊式的
SMTPS 。若妳要設定給 Outlook Express 用 SSL 寄信,就一定要在編譯時加上 SMTPS
的支援。(回正文)
18. 其實妳會看到三個連接埠: SMTP(25) 、 SMTPS(465) 和 submission(587) 。 submission
(587) 是給郵件程式寄信專用的,和 SMTP(25) 一樣可以做 TLS 。 submission(587) 不
需特別設定,為簡化討論起見,省略之。(回正文)
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 31 頁,共 32 頁
# 備份原檔案
mv usercerts.p7b usercerts-orig.p7b
# 把我們的認證中心加進來
cat /etc/ssl/certs/myrootca.crt >> certslist.pem
# 將 PEM 轉為 DER
openssl pkcs7 -in usercerts.pem -outform der -out usercerts.p7b
# 刪掉多餘的檔案
rm -f certslist.pem usercerts.pem
參考資料
1. SSL: Netscape Security Documentation, Introduction to SSL, How SSL Works, SSL Protocol
v3.0
2. X.509: RFC 3280, RFC 2459 (舊版)
3. OpenSSL: OpenSSL, openssl(1), x509(1), req(1), ca(1)
4. PGP: GnuPG, PGPi, PGP, Introduction to Cryptography ( PDF 檔, PGP 的原作者 Phil
Zimmermann 作), Phil Zimmermann
http://www.study-area.org/tips/certs/certs.html 2008/11/30
SSL X.509 憑證教學 第 32 頁,共 32 頁
5. FHS: http://www.pathname.com/fhs/
6. TLS 1.0: RFC 2246
7. Apache: http://www.apache.org/, Apache-SSL, mod_ssl
8. Qpopper: http://www.eudora.com/qpopper/
9. Sendmail: http://www.sendmail.org/
10. Stunnel: http://www.stunnel.org/
後記
2002-11-15
小幅更新:
2002-09-15
希望改寫後,能讓這篇文章更好,更嚴謹,也更容易入手。
http://www.study-area.org/tips/certs/certs.html 2008/11/30