使用openssl建立CA和申請證書

2021-10-25 07:16:27 字數 2651 閱讀 7180

在開始申請證書之前,我們都知道要申請自己的數字證書必須向ca(certficate authority)機構提交csr(certficate signing request)證書申請,下面我們就自己建立ca並利用建立好的ca給客戶頒發證書

注意:如果對各證書檔名或者openssl不太了解的,可以先看我另一篇文章

首先我們要先知道乙個配置檔案,就是/etc/pki/tls/openssl.cnf ,該配置檔案是openssl的配置檔案,在進行證書頒發時需要使用到該配置檔案.下面擷取ca相關的部分

下面說明幾個重要的配置:

dir = /etc/pki/ca #根目錄

certificate = $dir/cacert.pem # ca根證書的路徑

serial = $dir/serial # 頒發證書的需要,每頒發乙個證書就自增1

private_key = $dir/private/cakey.pem # 私鑰路徑

database = $dir/index.txt #相當於ca的資料庫檔案

注意:這上邊配置的路徑和檔名,等下我們生成金鑰和證書的時候名字都要和配置保持一致,

建立對應的目錄

# mkdir -pv /etc/pki/ca/

# touch /etc/pki/ca/

設定證書的開始編號

# echo 01 >> serial
生成私鑰,私鑰名稱和位置要與配置檔案中的配置相同

# openssl genrsa -out /etc/pki/ca/private/cakey.pem 4096
生成ca根證書,名稱和位置也要與配置檔案中的配置相同

# openssl req -new -x509 -key /etc/pki/ca/private/cakey.pem -out /etc/pki/ca/cacert.pem -days 7200
執行該命令之後會要求輸入一些證書資訊,比如國家地區,按自己實際情況填寫。

選項解釋:

-new: 表示生成乙個新的請求

-x509: 輸出乙個x509結構,而不是乙個證書或者是req,自簽名一定要加該引數

-key:私鑰檔案

-out:證書儲存路徑

-days:ca根證書的有效期,7200天= 20年

至此我們的ca根證書就生成完成了,接下來就需要我們生成csr給ca然後獲得ca頒發的證書(crt)檔案就可以了

向ca申請證書我們需要先生成csr檔案,也就是證書申請檔案,然後ca對我們提交的csr檔案進行簽名並頒發證書

生成私鑰,這裡的私鑰位置可以隨便指定

# openssl genrsa -out private.key 1024
生成證書申請檔案(csr)

# openssl req -new -key private.key -out my.csr
執行改命令同樣需要輸入證書的資訊,根據自己實際情況填寫就可以了

向ca申請證書

這裡是最關鍵的一步,實際情況是我們把csr檔案發給ca機構,但是我們自己就是ca機構,執行下面命令生成證書

# openssl ca -in my.csr -out /etc/pki/ca/certs/my.crt -days 365
執行命令後一路yes就行了,這裡生成的my.crt就是我們頒發的證書了。

檢視證書資訊的命令

# openssl x509 -in /etc/pki/ca/certs/my.crt -noout -serial -subject
命令選項說明:

-serial: 輸出證書序列號

-subject:輸出證書主體

吊銷證書的步驟也是在ca伺服器上執行的,以剛才新建的 my.crt 證書為例,吊銷步驟如下:

獲取my.crt證書的serial和subject資訊

# openssl x509 -in /etc/pki/ca/certs/my.crt -noout -serial -subject
根據 serial 和 subject 資訊,對比本機資料庫 index.txt 中儲存的是否一致

執行吊銷操作

# openssl ca -revoke /etc/pki/ca/newcerts/01.pem
注意:這裡01.pem中的01是你的證書的serial編號

4. 生成吊銷證書的吊銷編號

# echo 01 > /etc/pki/ca/crlnumber
更新證書吊銷列表

# openssl ca -gencrl -out /etc/pki/ca/crl/ca.crl
檢視crl檔案命令

# openssl crl -in /etc/pki/ca/crl/ca.crl -noout -text

OpenSSL建立私有CA

ca default dir etc pki ca 工作目錄 certs dir certs 客戶端證書儲存位置 crl dir dir crl 證書吊銷列表 database dir index.txt 證書列表 new certs dir dir newcerts 新生成的證書儲存目錄 cert...

Openssl建立私有CA

1.a和b通過ssl傳輸資料大概過程 私鑰加密的資料只能自己對應的公鑰才能解密,ca 簽證機關先給自己發乙個證書,公共認可的機構,a b之間通訊 資料都是通過自己生成的私鑰加密的後生成的資料 首先 a 將自己的 姓名 位址 公鑰 發給ca 傳送的資料稱為aa,ca自己生成的有一對公鑰和私鑰。ca先提...

利用openssl建立私有CA

本次利用openssl建立私有ca,實現https加密通訊.openssl由三部分組成 加密演算法和協議 對稱加密演算法和協議 公鑰體系 分為公鑰和私鑰 des data encryption standard ibm研發 3des triple des aes advanced encryptio...