這里寫目錄標題
- 選項:
- **通用選項:**
- 1. genrsa:生成RSA密鑰對
- 3. req:生成證書簽名請求
- 4. x509:生成自簽名證書
- **證書管理:**
- 1. verify:驗證證書
- 2. x509:查看證書詳情
- 3. crl:生成證書吊銷列表
- **附加選項:**
- 1. -out:指定輸出文件名
- 2. -in:指定輸入文件名
- 3. -days:指定證書有效期
- **格式轉換:**
- 1. pkcs7:將證書和私鑰打包成PKCS#7格式
- 2. pkcs12:將證書和私鑰打包成PKCS#12格式
- 其他選項
- 1. enc選項:
- 2. s_client選項:
- 3. s_server選項:
- 4. cms選項:
- 5. speed選項:
- 6. s_time選項:
- 使用案例:
openssl是一個開源的加密工具,可以用來生成證書、加密、解密等操作。以下列出了一些常用選項及使用案例:
選項:
通用選項:
1. genrsa:生成RSA密鑰對
openssl genrsa -out private.key 2048
#生成一個2048位的RSA私鑰,并將私鑰保存為private.key。
3. req:生成證書簽名請求
openssl req -new -key private.key -out request.csr
#使用私鑰文件private.key生成一個新的證書簽名請求,并將請求保存為request.csr文件。
4. x509:生成自簽名證書
openssl req -x509 -key private.key -in request.csr -out certificate.crt -days 365
#使用私鑰文件private.key和證書簽名請求文件request.csr生成一個自簽名的X.509證書,并將證書保存為certificate.crt文件,證書的有效期為365天。
證書管理:
1. verify:驗證證書
openssl verify certificate.crt
#驗證證書的有效性。通過輸入證書文件的路徑,openssl會檢查證書是否能夠通過驗證。如果證書有效,會輸出"certificate.crt: OK";如果證書無效或者無法驗證,會輸出相應的錯誤信息。
2. x509:查看證書詳情
openssl x509 -in certificate.crt -text
#查看證書的詳細信息。通過輸入證書文件的路徑和參數"-text",openssl會顯示證書的公鑰、頒發者、有效期、數字簽名等詳細信息。
3. crl:生成證書吊銷列表
openssl ca -revoke revoked.crt -crl_reason keyCompromise -crl_reason superseded
生成證書吊銷列表。通過輸入被吊銷的證書文件的路徑和
#吊銷原因,openssl會生成一個包含吊銷證書信息的CRL文件。
#在生成CRL時可以指定吊銷證書的原因,比如keyCompromise(密鑰被泄露)或者superseded(證書被替換)。生成CRL后可以通過將其分發給相關方,以便他們在使用證書時檢查證書的有效性
附加選項:
1. -out:指定輸出文件名
2. -in:指定輸入文件名
3. -days:指定證書有效期
格式轉換:
1. pkcs7:將證書和私鑰打包成PKCS#7格式
openssl crl2pkcs7 -nocrl -certfile certificate.crt -certfile ca.crt -out pkcs7.p7b
openssl crl2pkcs7
: 這個命令將用于將證書和私鑰打包成PKCS#7格式。-nocrl
: 這個選項表示不包含證書注銷列表(CRL)。-certfile certificate.crt -certfile ca.crt
: 這里指定了要包含在PKCS#7文件中的證書文件,certificate.crt
代表證書文件,ca.crt
代表CA證書文件。-out pkcs7.p7b
: 這個選項表示輸出的文件名為pkcs7.p7b
。
2. pkcs12:將證書和私鑰打包成PKCS#12格式
openssl pkcs12 -export -in certificate.crt -inkey private.key -out pkcs12.p12
openssl pkcs12
: 這個命令將用于將證書和私鑰打包成PKCS#12格式。-export
: 這個選項表示要執行導出操作。-in certificate.crt
: 這里指定了要包含在PKCS#12文件中的證書文件,certificate.crt
代表證書文件。-inkey private.key
: 這里指定了要包含在PKCS#12文件中的私鑰文件,private.key
代表私鑰文件。-out pkcs12.p12
: 這個選項表示輸出的文件名為pkcs12.p12
。
其他選項
1. enc選項:
openssl enc [options]
- 示例:加密文件:openssl enc -aes-256-cbc -in plaintext.txt -out ciphertext.txt
2. s_client選項:
openssl s_client [options]
- 示例:連接到SSL/TLS服務器并顯示證書信息:openssl s_client -connect www.example.com:443
3. s_server選項:
openssl s_server [options]
- 示例:創建一個SSL/TLS服務器:openssl s_server -key server.key -cert server.crt
4. cms選項:
openssl cms [options]
- 示例:處理CMS格式的文件:openssl cms -verify -in signed.cms -inform DER -content data.txt -binary
5. speed選項:
openssl speed [options]
- 示例:測試AES加密算法的性能:openssl speed -evp aes-256-cbc
6. s_time選項:
openssl s_time [options]
- 示例:測試SSL/TLS服務器的性能:openssl s_time -connect www.example.com:443
使用案例:
- 生成RSA密鑰對:
openssl genrsa -out private.key 2048
- 生成證書簽名請求:
openssl req -new -key private.key -out csr.csr
- 生成自簽名證書:
openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.crt -days 365
- 加密文件:
openssl enc -aes-256-cbc -in plaintext.txt -out encrypted.txt
- 解密文件:
openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt
- 連接SSL/TLS服務器并顯示相關信息:
openssl s_client -connect example.com:443
- 創建SSL/TLS服務器:
openssl s_server -cert certificate.crt -key private.key -accept 443
- 計算消息的哈希值:
openssl dgst -sha256 file.txt
- 將證書和私鑰存儲在PKCS#12格式的文件中:
openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.p12
以上是一些常用的openssl命令選項和使用案例,更多選項和用法可以通過查閱openssl的官方文檔來了解。