推荐给好友 上一篇 | 下一篇

OpenSSL X.509 CA ( Certificate Authority )

Description:BSD爱好者乐园9_ A ?sUR'QC w

?$M ^ R#@ESXn{        在 FreeBSD 中採用 OpenSSL 製作 X.509 憑證簽發。完整的 SSL/X.509 應該要做三層:最高層認證中心 (Root CA) ,中間的認證中心 (CA) ,最後才簽發下面的憑證,而本筆記則只有做兩層直接用最高的 Root CA 向下簽證。BSD爱好者乐园5ho)g4F9~}9p
BSD爱好者乐园)T}2Z a9s
Environment :BSD爱好者乐园 ~4}|7@Zz!YFi
BSD爱好者乐园#}kL/wF"O J
硬體:i386 PC Intel P3 550 x 3 台
0^@#ow)Tg3Q%b4e9p網卡:6 片網卡 《 每台各兩片:AP 為一片無線網卡 + 一片有線網卡,Gateway 則為兩片 100M 的有線網卡 》
T4G i5`)Tj作業系統:FreeBSD 6.2 Release
f'G |@ngBSD爱好者乐园 r lt9?y}bi
Setp 1.BSD爱好者乐园9wI8m&RY8Z

sO2y b!N \rY p(@設定 FreeBSD SSL 環境BSD爱好者乐园Z ] X U3@&Q
BSD爱好者乐园 P5\n6pMc"T-Y6x
# cd /etc/ssl       # 切換到  FreeBSD /etc/ssl 目錄下去設定 SSLBSD爱好者乐园d @#~)l(q0E
# mkdir -p /etc/ssl/private       #  建立存放私鑰 Private Key 目錄
V^Ys |?k1U2H2@# chmod og-rwx /etc/ssl/private       #  更改 Private Key 目錄權限
9f ?1}:]nu{ o# mkdir -p /etc/ssl/certs
,S)d&t-h6E# mkdir -p /etc/ssl/crlBSD爱好者乐园Kl Wmb!p8^
# mkdir -p /etc/ssl/newcerts
Iu.BM5Kaa,I"a._
BSD爱好者乐园Zg|*R"L+n)m&`
# vi /etc/ssl/openssl.cnf        # 修改 ssl 設定檔目錄,將 demoCA Mark 起來再指向 /etc/ssl 目錄
BSD爱好者乐园8[9W[,h,~]G
#dir = ./demoCABSD爱好者乐园Dw1F.m)d/v
dir = /etc/ssl

BSD爱好者乐园^2t c4S"~)De;I
Setp 2.
S q'u O&mf mU
5oH:TE'|{製作 Root CA 憑證,首先產生 Root Private key
&z Oc;R:R _0jTLvBSD爱好者乐园'a t5U tF*x#^*n
# openssl genrsa -des3 -out /etc/ssl/private/myroot.key.pem 2048
# chmod og-rwx /etc/ssl/private/myroot.key.pemBSD爱好者乐园&XW8y8s\5E4}

Q,JtM{W/VI接著填寫 Root  憑證申請書
#H%k B E%NefBSD爱好者乐园 R,Jr2mU'O
# openssl req -new -key /etc/ssl/private/myroot.key.pem -out /tmp/myroot.req.pemBSD爱好者乐园}e2R[d4{ l V`|

dd/Qmn%u最後簽發憑證 ( Root 自己簽給自己 ) 有效期就簽 7300 天約 20 年
X$Yyz)J5Z0B5z*y&c
[4H M{ ?o UY# 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.pemBSD爱好者乐园:bg8MSG.}4at

@6A#BL x查看 /etc/ssl/private 目錄下是否有 myroot.key.pem Private Key 及 /etc/ssl/certs/ 下是否有 myroot.crt.pem Public KeyBSD爱好者乐园a5W[\D^2Aq
BSD爱好者乐园2@*nSw+P3q C*^
# ls /etc/ssl/private/etc/ssl/certBSD爱好者乐园t[ X G] i
BSD爱好者乐园f0Voh6g
※ Private key 檔案在 /etc/ssl/private/myroot.key.pem 要小心保管,檔案讀取權限最好不要給第二個人知道而簽好的Public Key 在 /etc/ssl/certs/myroot.crt.pem 可盡量散出去給其他人BSD爱好者乐园/L^]6G:jA
BSD爱好者乐园z:q2ido#nOE)`6x
完成後砍掉憑證申請書同時並建立 hash 索引BSD爱好者乐园P'K]0g)U2a

s/?\ ^,Tyy# rm -f /tmp/myrootca.req.pem
# rehash /etc/ssl/certs
*v.W,}mxZeK
hPa4aP9kSetp 3.
^*}hIWvBSD爱好者乐园!\*U$O"NV:z` U
製作 Server 的 Private key ,首先產生 Server 的 Private keyBSD爱好者乐园{%q-xnOW'b:H
BSD爱好者乐园Cc c i y"e s F [
# openssl genrsa -out /etc/ssl/private/myserver.key.pem 2048
# chmod og-rwx /etc/ssl/private/myserver.key.pemBSD爱好者乐园(}vf)blFU

x6qc$k:X'SYf;A%f※ Server 的 Private Key 不要設密碼,每當 SSL 伺服器程式重新啟動時就會去讀憑證和 Private Key 這時就會再問一次密碼,這樣每次重開機時都要停下來等鍵盤輸入密碼會很麻煩。
&[:v@IfRg%H
eF(NKh@T用 Server 的 Private Key 填寫憑證申請書BSD爱好者乐园_Evs.b
BSD爱好者乐园 S }#B3\-cp6b,Q
# openssl req -new -key /etc/ssl/private/myserver.key.pem -out /tmp/myserver.req.pem
Q"gp ng{` h6u(wn
$a{:Z:]B9`6X/q6Mo使用 ROOT CA 來簽發 Server 的憑證,設 730 天 2 年BSD爱好者乐园 cT ~"ac3M

;J$C;EErY0]# 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.pemBSD爱好者乐园Gl Di+{&D
BSD爱好者乐园x8D+}1NM%J
一樣記得刪除憑證申請書BSD爱好者乐园1U A |5r:[W7g
BSD爱好者乐园8{Y,{:s)k:P
# rm -f /tmp/www.req.pem
v {0n4B2?4J
7Uh9` kpI V%Tc製作 Client 的 Private key 與 Server 產生的過程一樣,首先產生 Client 的 Private keyBSD爱好者乐园K{G V#I Y2F3rH

-`w]q0AiUq1Q aR# openssl genrsa -out /etc/ssl/private/myclient.key.pem 2048
# chmod og-rwx /etc/ssl/private/myclient.key.pemBSD爱好者乐园Etly9^}3Z3v-M7] A

sp!C'f#M$j用 Client 的 Private Key 填寫憑證申請書
q\8U2ss8J#P:[BSD爱好者乐园L;wyW$w9[(U7k U5T
# openssl req -new -key /etc/ssl/private/myclient.key.pem -out /tmp/myclient.req.pem
Jw B_~ [BSD爱好者乐园2I8\%N&t6Rg6e!Y
使用 ROOT CA 來簽發 Client 的憑證,設 730 天 2 年
@ yU Ko;in}BSD爱好者乐园 V.f? b6M#Y
# 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
(ut$H i0`MM.qG$\wBSD爱好者乐园Z b `a of$a:cW
一樣別忘記要刪除憑證申請書
fr~6I/K T;}
N"~:tP9p|1`?# rm -f /tmp/myclient.req.pem

[重要提醒]对本篇资料有疑问,请到论坛讨论,尽量使文章准确无误>>>
[版权声明]BSD爱好者乐园站内文章,如来源不是互联网,则均系原创或翻译之作,可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。
TAG: OpenSSL CA
 

评分:0

我来说两句

seccode