OpenSSL命令

hdgara1發表於2020-02-21

OpenSSL命令

OpenSSL命令分為以下3個部分。

標準命令Standard commands

  1. asn1parse:

asn1parse用於解釋用ANS.1語法書寫的語句(ASN一般用於定義語法的構成)

演示命令操作順序:4 -> 5 -> 3 -> 2-> 6 -> 7 ->8

  1. ca:

ca用於CA的管理.

用法:

openssl ca [-options]。

2.1) -selfsign

使用對證照請求進行簽名的金鑰對來簽發證照。即”自簽名”,這種情況發生在生成證照的客戶端、簽發證照的CA都是同一臺機器(也是我們大多數實驗中的情況),我們可以使用同一個金鑰對來進行”自簽名”

2.2) -in file

需要進行處理的PEM格式的證照

2.3) -out file

處理結束後輸出的證照檔案

2.4) -cert file

用於簽發的根CA證照

2.5) -days arg

指定簽發的證照的有效時間

2.6) -keyfile arg

CA的私鑰證照檔案

2.7) -keyform arg

CA的根私鑰證照檔案格式:

2.7.1) PEM

2.7.2) ENGINE

2.8) -key arg

CA的根私鑰證照檔案的解密密碼(如果加密了的話)

2.9) -config file

配置檔案

  1. X.509證照籤發請求(CSR)管理

用法:

openssl req [options] outfile

3.1) -inform arg

輸入檔案格式

3.1.1) DER

3.1.2) PEM

3.2) -outform arg

輸出檔案格式

3.2.1) DER

3.2.2) PEM

3.3) -in arg

待處理檔案

3.4) -out arg

待輸出檔案

3.5) -passin

用於簽名待生成的請求證照的私鑰檔案的解密密碼

3.6) -key file

用於簽名待生成的請求證照的私鑰檔案

3.7) -keyform arg

3.7.1) DER

3.7.2) NET

3.7.3) PEM

3.8) -new

新的請求

3.9) -x509

輸出一個X509格式的證照

3.10) -days

X509證照的有效時間

3.11) -newkey rsa:bits

生成一個bits長度的RSA私鑰檔案,用於簽發

3.12) -[digest]

HASH演算法

3.12.1) md5

3.12.2) sha1

3.12.3) md2

3.12.4) mdc2

3.12.5) md4

3.13) -config file

指定openssl配置檔案

3.14) -text: text顯示格式

example1: 利用CA的RSA金鑰建立一個自簽署的CA證照(X.509結構)

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

example2: 用server.key生成證照籤署請求CSR(這個CSR用於傳送給CA中心等待簽發)

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

example3: 檢視CSR的細節

openssl req -noout -text -in server.csr

  1. genrsa: 生成RSA引數

用法:

openssl genrsa [args] [numbits]

4.1) 對生成的私鑰檔案是否要使用加密演算法進行對稱加密:

4.1.1) -des: CBC模式的DES加密

4.1.2) -des3: CBC模式的3DES加密

4.1.3) -aes128: CBC模式的AES128加密

4.1.4) -aes192: CBC模式的AES192加密

4.1.5) -aes256: CBC模式的AES256加密

4.2) -passout arg: arg為對稱加密(des、3des、aes)的密碼(使用這個引數就省去了console互動提示輸入密碼的環節)

4.3) -out file: 輸出證照私鑰檔案

[numbits]: 金鑰長度

example: 生成一個1024位的RSA私鑰,並用3DES加密(密碼為123456),儲存為server.key檔案

openssl genrsa -out server.key -passout pass:123456 -des3 1024

  1. RSA資料管理

用法:

openssl rsa [options] outfile

5.1) -inform arg

輸入金鑰檔案格式:

5.1.1) DER(ASN1)

5.1.2) NET

5.1.3) PEM(base64編碼格式)

5.2) -outform arg

輸出金鑰檔案格式

5.2.1) DER

5.2.2) NET

5.2.3) PEM

5.3) -in arg

待處理金鑰檔案

5.4) -passin arg

輸入這個加密金鑰檔案的解密金鑰(如果在生成這個金鑰檔案的時候,選擇了加密演算法了的話)

5.5) -out arg

待輸出金鑰檔案

5.6) -passout arg

如果希望輸出的金鑰檔案繼續使用加密演算法的話則指定密碼

5.7) -des: CBC模式的DES加密

5.8) -des3: CBC模式的3DES加密

5.9) -aes128: CBC模式的AES128加密

5.10) -aes192: CBC模式的AES192加密

5.11) -aes256: CBC模式的AES256加密

5.12) -text: 以text形式列印金鑰key資料

5.13) -noout: 不列印金鑰key資料

5.14) -pubin: 檢查待處理檔案是否為公鑰檔案

5.15) -pubout: 輸出公鑰檔案

example1: 對私鑰檔案進行解密

openssl rsa -in server.key -passin pass:123456 -out server_nopass.key

example:2: 利用私鑰檔案生成對應的公鑰檔案

openssl rsa -in server.key [-passin pass:123456] -pubout -out server_public.key

  1. x509

openssl x509是一個功能很豐富的證照處理工具。可以用來顯示證照的內容,轉換其格式,給CSR簽名等X.509證照的管理工作

用法:

openssl x509 [args]

6.1) -inform arg

待處理X509證照檔案格式

6.1.1) DER

6.1.2) NET

6.1.3) PEM

6.2) -outform arg

待輸出X509證照檔案格式

6.2.1) DER

6.2.2) NET

6.2.3) PEM

6.3) -in arg

待處理X509證照檔案

6.4) -out arg

待輸出X509證照檔案

6.5) -req

表明輸入檔案是一個”請求籤發證照檔案(CSR)”,等待進行簽發

6.6) -days arg

表明將要簽發的證照的有效時間

6.7) -CA arg

指定用於簽發請求證照的根CA證照

6.8) -CAform arg

根CA證照格式(預設是PEM)

6.9) -CAkey arg

指定用於簽發請求證照的CA私鑰證照檔案,如果這個option沒有引數輸入,那麼預設認為私有金鑰在CA證照檔案裡有

6.10) -CAkeyform arg

指定根CA私鑰證照檔案格式(預設為PEM格式)

6.11) -CAserial arg

指定序列號檔案(serial number file)

6.12) -CAcreateserial

如果序列號檔案(serial number file)沒有指定,則自動建立它

example1: 轉換DER證照為PEM格式

openssl x509 -in cert.cer -inform DER -outform PEM -out cert.pem

example2: 使用根CA證照對”請求籤發證照”進行簽發,生成x509格式證照

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out serverx509.crt

example3: 列印出證照的內容

openssl x509 -in server.crt -noout -text

證照驗籤:

openssl verify -CAfile demoCA/cacert.pem usercert.crt

  1. crl

crl是用於管理CRL列表 .

openssl crl [args]

7.1) -inform arg

輸入檔案的格式

7.1.1) DER(DER編碼的CRL物件)

7.1.2) PEM(預設的格式)(base64編碼的CRL物件)

7.2) -outform arg

指定檔案的輸出格式

7.2.1) DER(DER編碼的CRL物件)

7.2.2) PEM(預設的格式)(base64編碼的CRL物件)

7.3) -text:

以文字格式來列印CRL資訊值。

7.4) -in filename

指定的輸入檔名。預設為標準輸入。

7.5) -out filename

指定的輸出檔名。預設為標準輸出。

7.6) -hash

輸出頒發者資訊值的雜湊值。這一項可用於在檔案中根據頒發者資訊值的雜湊值來查詢CRL物件。

7.7) -fingerprint

列印CRL物件的標識。

7.8) -issuer

輸出頒發者的資訊值。

7.9) -lastupdate

輸出上一次更新的時間。

7.10) -nextupdate

列印出下一次更新的時間。

7.11) -CAfile file

指定CA檔案,用來驗證該CRL物件是否合法。

7.12) -verify

是否驗證證照。

example1: 輸出CRL檔案,包括(頒發者資訊HASH值、上一次更新的時間、下一次更新的時間)

openssl crl -in crl.crl -text -issuer -hash -lastupdate –nextupdate

example2: 將PEM格式的CRL檔案轉換為DER格式

openssl crl -in crl.pem -outform DER -out crl.der

  1. crl2pkcs7

用於CRL和PKCS#7之間的轉換

openssl crl2pkcs7 [options] outfile

轉換pem到spc

openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spc

  1. pkcs12:PKCS#12資料的管理

pkcs12檔案工具,能生成和分析pkcs12檔案。PKCS#12檔案可以被用於多個專案,例如包含Netscape、 MSIE 和 MS Outlook

openssl pkcs12 [options]

  1. pkcs7: PCKS#7資料的管理

用於處理DER或者PEM格式的pkcs#7檔案

openssl pkcs7 [options] outfile

全球可信CA機構

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31483669/viewspace-2676577/,如需轉載,請註明出處,否則將追究法律責任。

相關文章