OpenSSL 生產自簽名證書與二級證書

2021-10-08 02:09:34 字數 3199 閱讀 8313

* openssl版本:1.0.2k

生成根證書私鑰

利用openssl命令的子命令genrsa生成私鑰,然後再使用子命令rsa私鑰中提取公鑰。

openssl genrsa -out ca.key 2048
生成根證書請求檔案(csr)

比如我自己的**,需要使用https 通訊,那麼我向「證書機構」申請數字證書的時候,就需要向他們提供相應的資訊,這些資訊以特定檔案格式(.csr)提供的,這個檔案就是「證書請求檔案」;

openssl req -new -key ca.key -out ca.csr -subj "/cn=etcd-ca"
生成根證書(ca)

openssl x509 -req -in ca.csr -out ca.crt -signkey ca.key -days 3650

-new:表示生成乙個新的證書簽署請求;

-x509:專用於生成ca自簽證書;

-key:指定生成證書用到的私鑰檔案;

-out filname:指定生成的證書的儲存路徑;

-days:指定證書的有效期限,單位為day,預設是365天;

此時得到:

生成服務端私鑰

openssl genrsa -out server.key 2048
生成服務端請求檔案

openssl req -new -key server.key -out server.csr -subj "/cn=etcd-ca"
生成服務端證書

openssl x509 -req -in server.csr -ca ca.crt -cakey ca.key -cacreateserial -out server.crt -days 365

引數項說明:

主要選項:

-in filename : #指定證書輸入檔案,若同時指定了"-req"選項,則表示輸入檔案為證書請求檔案。

-out filename : #指定輸出檔案

-md2|-md5|-sha1|-mdc2: #指定單向加密的演算法。

檢視證書選項:

-text :以text格式輸出證書內容,即以最全格式輸出,

:包括public key,signature algorithms,issuer和subject names,serial number以及any trust settings.

-certopt option:自定義要輸出的項

-noout :禁止輸出證書請求檔案中的編碼部分

-pubkey :輸出證書中的公鑰

-modulus :輸出證書中公鑰模組部分

-serial :輸出證書的序列號

-subject :輸出證書中的subject

-issuer :輸出證書中的issuer,即頒發者的subject

-subject_hash:輸出證書中subject的hash碼

-issuer_hash :輸出證書中issuer(即頒發者的subject)的hash碼

-hash :等價於"-subject_hash",但此項是為了向後相容才提供的選項

-startdate :輸出證書有效期的起始日期

-enddate :輸出證書有效期的終止日期

-dates :輸出證書有效期,等價於"startdate+enddate"

-fingerprint :輸出指紋摘要資訊

-signkey filename :該選項指定簽名秘鑰(秘鑰必須是輸入檔案的私鑰),並使得由-in 提供的輸入檔案轉成自簽名的證書。

- in :自簽署的輸入檔案"-in file"的file可以是證書請求檔案,也可以是已簽署過的證書。會使用檔案中的subject name 作為issuer name.

-x509toreq :將已簽署的證書轉換回證書請求檔案。需要使用"-signkey"選項來傳遞需要的私鑰。

-req :x509工具預設以證書檔案做為inputfile(-in file),指定該選項將使得input file的file為證書請求檔案。

-set_serial n :指定證書序列號。該選項可以和"-singkey"或"-ca"選項一起使用。

:如果和"-ca"一起使用,則"-caserial"或"-cacreateserial"選項指定的serial值將失效。

:序列號可以使用數值或16進製制值(0x開頭)。也接受負值,但是不建議。

-ca filename :指定簽署時所使用的ca證書。該選項一般和"-req"選項一起使用,用於為證書請求檔案簽署。

-cakey filename :設定ca簽署時使用的私鑰檔案。如果該選項沒有指定,將假定ca私鑰已經存在於ca自簽名的證書檔案中。

-caserial filename:設定ca使用的序列號檔案。當使用"-ca"選項來簽名時,它將會使用某個檔案中指定的序列號來唯一標識此次簽名後的證書檔案。

:這個序列號檔案的內容僅只有一行,這一行的值為16進製制的數字。當某個序列號被使用後,該檔案中的序列號將自動增加。

:預設序列號檔案以ca證書檔案基名加".srl"為字尾命名。如ca證書為"mycert.pem",則預設尋找的序列號檔案為"mycert.srl"

-cacreateserial :當使用該選項時,如果ca使用的序列號檔案不存在將自動建立:該檔案將包含序列號值"02"並且此次簽名後證書檔案序列號為1。

:一般如果使用了"-ca"選項而序列號檔案不存在將會產生錯誤"找不到srl檔案"。

證書擴充套件選項:

-purpose:選項檢查證書的擴充套件項並決定該證書允許用於哪些方面,即證書使用目的範圍。

檢視證書資訊

openssl x509 -in server.crt -noout -serial -dates -subject
基於 openssl 生成自簽名

用openssl自簽名證書

進入命令列 1.進入證書存放的路徑 rm rf ssl 假如ssl資料夾已經存在 mkdir ssl cd ssl 2.生成金鑰 openssl genrsa des3 out ssl.key 1024 輸入密碼 isec openssl rsa in ssl.key out ssl.key 輸入密...

openssl自簽名的證書

證書檔案生成 也許很多人和本人一樣深有體會,使用openssl庫寫乙個加密通訊過程,很容易就寫出來了,可是整個工作卻花了了好幾天。除將程式編譯成功外 沒有可以使用的證書檔案,編譯成功了,它並不能跑起來,並不表示它能正常使用,所以.還需生成必要的證書和私鑰檔案使雙方能夠成功驗證對方。找了n多的資料,很...

openssl 發布ca簽名證書

作業系統為linux,linux一般裝完系統後就會自動安裝 openssl元件 找到本機的openssl 執行以下命令 openssl version a 找到輸出資訊中的這一行 openssldir etc pki tls 改目錄就是 openssl的 安裝目錄了,後面操作過程中用到的配置檔案來自...