搭建CA,二級CA,和簽發證書
1 搭建CA
1.1 環境的搭建
首先建立CA目錄,所有與CA相關的內容都包含在這個資料夾中。然後在這個目錄下再建立2個資料夾newcerts和private,分別用於存放CA釋出的證書和CA的私鑰。另外還需要建立3個檔案,第一個檔案用來追蹤已經發布的證書的序列號,因為每個證書的序列號都必須唯一。這個檔案叫做serial,它的初始值為1. 這個數值是16進位制,並且最少為2位。第二個檔案的初始值為空,名字為index.txt。它是個資料庫,儲存CA釋出的證書的資訊,每一行對應一個證書。
mdkir ~/democa
cd ~/democa
mkdir newcerts private
echo '01' > serial
touch index.txt
1.2 OpenSSL配置檔案
使用命令openssl ca可以檢視預設配置檔案的位置,把它拷貝到demoCA目錄。然後對它進行修改
(1)dir=. #把工作目錄指向當前目錄
1.3 建立CA根證書
通常需要3步來建立一個CA證書:CA私鑰;CA證書籤名請求(CSR);CA證書
1.3.1 CA私鑰
openssl genrsa -out cakey.pem 2048
生成一個RSA祕鑰,長度為2048位。
1.3.2 CSR
openssl req -new -key cakey.pem -out cacsr.pem
你會被要求輸入很多引數,這些引數就是申請者的身份資訊,你可以全部按空格(使用預設值),但是必須輸入Common Name。同時CSR需要包含申請者的公鑰,所以-key指定公鑰檔案。
此命令用來檢視剛剛生成的CSR
openssl req -text -in cacsr.pem
1.3.3 CA證書
openssl ca -config ./openssl.cnf -keyfile cakey.pem -in cacsr.pem -selfsign -out cacert.pem
2 用CA簽發證書
2.1 製作client私鑰
openssl genrsa -out clientkey.pem 2048
2,2 CSR
openssl req -new -key clientkey.pem -out clientcsr.pem
2.3 用CA簽發client證書
openssl ca -config ./openssl.cnf -keyfile cakey.pem -cert cacert.pem -in clientcsr.pem -out clientcrt.pem
3 二級CA證書
3.1 二級CA私鑰和CSR
openssl req -newkey rsa:2048 -keyout secondkey.pem -out secondcsr.pem
3.2 用根CA簽發二級CA證書
openssl ca -config ./openssl.cnf -keyfile cakey.pem -cert cacert.pem -in secondcsr.pem -out secondcert.pem
4 用二級CA簽發server證書
4.1 server私鑰和CSR
openssl req -newkey rsa:2048 -keyout serverkey.pem -out servercsr.pem
4.2 用二級CA簽發server證書
openssl ca -config ./openssl.cnf -keyfile secondkey.pem -cert secondcert.pem -in servercsr.pem -out servercert.pem