關於SSL證書生成解決方案

SSL是Netscape公司率先採用的網絡安全協議。它是在傳輸通訊協議(TCP/IP)上實現的一種安全協議,採用公開密鑰技術。SSL普遍支持各類類型的網絡,同時提供三種基本的安全服務,它們都使用公開密鑰技術。linux

SSL證書包括:算法

1,CA證書,也叫根證書或者中間級證書。若是是單向https認證的話,該證書是可選的。不安裝CA證書的話,瀏覽器默認是不安全的。瀏覽器

2,服務器證書,必選項。經過key,證書請求文件csr,再經過CA證書籤名,生成服務器證書。安全

3,客戶端證書,可選項。如有客戶端證書則是雙向https驗證。服務器

以上全部證書均可以本身生成。網絡

文件後綴工具

linux系統是不之後綴名來判斷文件類型的,可是爲了咱們可以更好地判斷文件用途,因此添加各類後綴。如下是約定成俗的後綴。加密

*.key:密鑰文件,通常是SSL中的私鑰;server

*.csr:證書請求文件,裏面包含公鑰和其餘信息,經過簽名後就能夠生成證書;網絡安全

*.crt, *.cert:證書文件,包含公鑰,簽名和其餘須要認證的信息,好比主機名稱(IP)等。

*.pem:裏面通常包含私鑰和證書的信息。

服務器證書的生成

a) 生成服務器私鑰

openssl genrsa -des3 -out server.key 1024

輸入加密密碼,用 128 位 rsa 算法生成密鑰,獲得 server.key 文件。

b) 生成服務器證書請求( CSR )

openssl req -new -key server.key -out server.csr

CSR( Certificate Signing Request)是一個證書籤名請求,在申請證書以前,首先要在服務器上生成 CSR ,並將其提交給 CA 認證中心, CA 才能簽發 SSL 服務器證書。也能夠認爲, CSR 就是一個在服務器上生成的證書。

在生成這個文件的過程當中,有一點須要特別注意,Common Name 填入主機名(或者服務器IP)。

c) 本身生成服務器證書

若是不使用 CA 證書籤名的話,用以下方式生成:

openssl req -x509 -days 1024 -key server.key -in server.csr > server.crt

用服務器密鑰和證書請求生成證書 server.crt , -days 參數指明證書有效期,單位爲天。商業上來講,服務器證書是由經過第三方機構頒發的,該證書由第三方認證機構頒發的。

若是使用 CA 證書籤名,用 openssl 提供的工具 CA.sh 生成服務器證書:

mv server.csr newreq.pem

./CA.sh -sign

mv newcert.pem server.crt

簽名證書後,可經過以下命令可查看服務器證書的內容:

openssl x509 -noout -text -in server.crt

可經過以下命令驗證服務器證書:

openssl verify -CAfile ca.crt server.crt

客戶證書的生成

客戶證書是可選的。若是有客戶證書,就是雙向認證 HTTPS ,不然就是單向認證 HTTPS 。

a) 生成客戶私鑰

openssl genrsa -des3 -out client.key 1024

b) 生成客戶證書籤名請求

openssl req -new -key client.key -out client.csr

c) 生成客戶證書(使用 CA 證書籤名)

openssl ca -in client.csr -out client.crt

d) 證書轉換成瀏覽器認識的格式

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

證書列表

若是使用雙向認證,就會有三個私鑰和三個證書。分別是 ca.key, ca.crt, server.key, server.crt, client.key, client.crt ,以及給瀏覽器的 client.pfx 。

相關文章
相關標籤/搜索