證書的那些事(4)之利用openssl製作多域名證書【更新中】

1. 製作前搞清楚一些概念

(1)何爲多域名證書

    何爲多域名證書呢?直白點講,就是一個證書給多人使用,不用每個人都去申請一張證書。

(2)extensions字段介紹

    在證書的那些事(3)之利用openssl製作證書一文中, 我們瞭解公鑰,私鑰,CSR和證書的關係,也知道了證書格式,自簽發證書和第三方證書的卻別,也清楚了CA、證書申請者是怎麼回事,當然也可以通過openssl命令製作一個簡單證書。

    本文是續篇,我們知道在證書裏面除了必要的信息,例如國家名、省份名、城市名、,組織名、組織部門、通用名、郵件地址,證書的公鑰、有效期、簽名算法以及簽名指紋外,還包含了Extensions(擴展字段)。

    extensions裏面內容很多,正式因爲extensions,帶給了我們證書的豐富性,解決了不少問題。例如可以指明證書的用途,可以指明證書是否可以作爲CA,給其他人簽發證書,可以讓該證書給多人使用,也就是我們所說的多域名證書。

(3)多域名證書和extensions字段的關係

    extensions跟我們文章標題中提到的多域名證書有和關係呢?把多個域名都放到一個叫SAN(Subject Alternate Name)的extensions字段裏面,就形成了我們的多域名證書。

    當然了,extensions字段裏面除了有個叫SAN的extensions外,還有其他很多很多extensions。而生成方法都是一樣的,所以接下來的內容都以extensions爲核心加以展開。

 

2. 如何製作多域名證書

    爲了給證書加上extensions字段,我們有兩種方法。 第一、在製作證書的CSR文件時,第二、在CA給CSR簽名的時候.。個人建議採用第一種方法,畢竟我自己的證書需要哪些擴展,我把它放到CSR裏面就好了,沒必要CA參與進來。

    在利用openssl給證書加上一些extensions字段時,會有三個section供更改[v3_req],[v3_ca],[usr_cert],使用的場景如下。

(1)如果要在製作第三方簽發的證書CSR時,加入extensions, 修改openssl.cnf文件裏面section [v3_req].

(2)如果要在製作自簽發的證書CSR時,加入extensions, 修改openssl.cnf文件裏面section [v3_ca]

(3)如果在需要在CA簽發證書時,加入extensions, 修改openssl.cnf文件裏面section [usr_cert].

   本文,我們通過修改申請者的CSR,來增加extensions字段。

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment

# Add by myself, for SAN
subjectAlternativeName = DNS:Test-ext.cisco.com, IP Address:10.74.97.119

# Add by myself, for KeyUsage

   修改完以後,用以下命令生成CSR

openssl req -key Test.key -out Test-ext.csr -new -sha384 -extensions v3_req

   修改完以後,用以下命令簽發CSR,形成自簽發證書

 

   或者用以下命令簽發CSR,形成第三方簽發證書

 

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章