在 FreeBSD 中採用 OpenSSL 製作 X.509 憑證簽發。完整的 SSL/X.509 應該要做三層:最高層認證中心 (Root CA) ,中間的認證中心 (CA) ,最後才簽發下面的憑證,而本筆記則只有做兩層直接用最高的 Root CA 向下簽證。
Environment :
硬體:i386 PC Intel P3 550 x 3 台
網卡:6 片網卡 《 每台各兩片:AP 為一片無線網卡 + 一片有線網卡,Gateway 則為兩片 100M 的有線網卡 》
作業系統:FreeBSD 6.2 Release
Setp 1.
設定 FreeBSD SSL 環境
# cd /etc/ssl # 切換到 FreeBSD /etc/ssl 目錄下去設定 SSL
# mkdir -p /etc/ssl/private # 建立存放私鑰 Private Key 目錄
# chmod og-rwx /etc/ssl/private # 更改 Private Key 目錄權限
# mkdir -p /etc/ssl/certs
# mkdir -p /etc/ssl/crl
# mkdir -p /etc/ssl/newcerts
# vi /etc/ssl/openssl.cnf # 修改 ssl 設定檔目錄,將 demoCA Mark 起來再指向 /etc/ssl 目錄
#dir = ./demoCA
dir = /etc/ssl
Setp 2.
製作 Root CA 憑證,首先產生 Root Private key
# openssl genrsa -des3 -out /etc/ssl/private/myroot.key.pem 2048
# chmod og-rwx /etc/ssl/private/myroot.key.pem
接著填寫 Root 憑證申請書
# openssl req -new -key /etc/ssl/private/myroot.key.pem -out /tmp/myroot.req.pem
最後簽發憑證 ( Root 自己簽給自己 ) 有效期就簽 7300 天約 20 年
# openssl x509 -req -days 7300 -sha1 -extfile /etc/ssl/openssl.cnf -extensions v3_ca -signkey /etc/ssl/private/myroot.key.pem -in /tmp/myroot.req.pem -out /etc/ssl/certs/myroot.crt.pem
查看 /etc/ssl/private 目錄下是否有 myroot.key.pem Private Key 及 /etc/ssl/certs/ 下是否有 myroot.crt.pem Public Key
# ls /etc/ssl/private/etc/ssl/cert
※ Private key 檔案在 /etc/ssl/private/myroot.key.pem 要小心保管,檔案讀取權限最好不要給第二個人知道而簽好的Public Key 在 /etc/ssl/certs/myroot.crt.pem 可盡量散出去給其他人
完成後砍掉憑證申請書同時並建立 hash 索引
# rm -f /tmp/myrootca.req.pem
# rehash /etc/ssl/certs
Setp 3.
製作 Server 的 Private key ,首先產生 Server 的 Private key
# openssl genrsa -out /etc/ssl/private/myserver.key.pem 2048
# chmod og-rwx /etc/ssl/private/myserver.key.pem
※ Server 的 Private Key 不要設密碼,每當 SSL 伺服器程式重新啟動時就會去讀憑證和 Private Key 這時就會再問一次密碼,這樣每次重開機時都要停下來等鍵盤輸入密碼會很麻煩。
用 Server 的 Private Key 填寫憑證申請書
# openssl req -new -key /etc/ssl/private/myserver.key.pem -out /tmp/myserver.req.pem
使用 ROOT CA 來簽發 Server 的憑證,設 730 天 2 年
# openssl x509 -req -days 730 -sha1 -extfile /etc/ssl/openssl.cnf -extensions v3_req -CA /etc/ssl/certs/myroot.crt.pem -CAkey /etc/ssl/private/myroot.key.pem -CAserial /etc/ssl/myroot.srl -CAcreateserial -in /tmp/myserver.req.pem -out /etc/ssl/certs/myserver.crt.pem
一樣記得刪除憑證申請書
# rm -f /tmp/www.req.pem
製作 Client 的 Private key 與 Server 產生的過程一樣,首先產生 Client 的 Private key
# openssl genrsa -out /etc/ssl/private/myclient.key.pem 2048
# chmod og-rwx /etc/ssl/private/myclient.key.pem
用 Client 的 Private Key 填寫憑證申請書
# openssl req -new -key /etc/ssl/private/myclient.key.pem -out /tmp/myclient.req.pem
使用 ROOT CA 來簽發 Client 的憑證,設 730 天 2 年
# openssl x509 -req -days 730 -sha1 -extfile /etc/ssl/openssl.cnf -extensions v3_req -CA /etc/ssl/certs/myroot.crt.pem -CAkey /etc/ssl/private/myroot.key.pem -CAserial /etc/ssl/myroot.srl -CAcreateserial -in /tmp/myclient.req.pem -out /etc/ssl/certs/myclient.crt.pem
一樣別忘記要刪除憑證申請書
# rm -f /tmp/myclient.req.pem因为使用范围的限制,BSD方面文章更新速度不快,站长会坚持每天更新博客,欢迎访问!
[版权声明]BSD爱好者乐园站内文章,如来源不是互联网,则均系原创或翻译之作,可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。
