OpenSSL詳解

這里寫目錄標題

  • 選項:
      • **通用選項:**
      • 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

使用案例:

  1. 生成RSA密鑰對:
openssl genrsa -out private.key 2048
  1. 生成證書簽名請求:
openssl req -new -key private.key -out csr.csr
  1. 生成自簽名證書:
openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.crt -days 365
  1. 加密文件:
openssl enc -aes-256-cbc -in plaintext.txt -out encrypted.txt
  1. 解密文件:
openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt
  1. 連接SSL/TLS服務器并顯示相關信息:
openssl s_client -connect example.com:443
  1. 創建SSL/TLS服務器:
openssl s_server -cert certificate.crt -key private.key -accept 443
  1. 計算消息的哈希值:
openssl dgst -sha256 file.txt
  1. 將證書和私鑰存儲在PKCS#12格式的文件中:
openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.p12

以上是一些常用的openssl命令選項和使用案例,更多選項和用法可以通過查閱openssl的官方文檔來了解。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84594.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84594.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84594.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL的日志和備份

目錄 一. MySQL的日志 1.1 日志的作用 1.2 日志的分類 1.3 事務日志 1.4 錯誤日志 1.5 通用日志 1.6 慢查詢日志 1.7 二進制備份 二. 備份 2.1 數據備份的重要性 2.2 備份的分類 2.3 MySQL備份的內容 2.4 備份的注意點 2.5 備份的工具 2.6 實戰案例 2.7 mysql…

前端性能優化:如何讓網頁加載更快?

摘要 想象一下,滿心期待點開一個網頁,卻等了十幾秒還卡在加載界面,你是不是瞬間就想關掉走人?這可不是個別用戶的 “急性子”,數據顯示,網頁每多延遲 1 秒,用戶流失率可能增加 11%!…

[論文閱讀]Prompt Injection attack against LLM-integrated Applications

Prompt Injection attack against LLM-integrated Applications [2306.05499] Prompt Injection attack against LLM-integrated Applications 傳統提示注入攻擊效果差,主要原因在于: 不同的應用對待用戶的輸入內容不同,有的將其視為問題&a…

微信小程序進階第2篇__事件類型_冒泡_非冒泡

在小程序中, 事件分為兩種類型: 冒泡事件, 當一個組件上的事件被觸發后,該事件會向父節點傳遞非冒泡事件, 當一個組件上的事件被觸發后, 該事件不會向父節點傳遞。 一 冒泡事件 tap, touchst…

[免費]SpringBoot+Vue在線教育(在線學習)系統(高級版)【論文+源碼+SQL腳本】

大家好,我是java1234_小鋒老師,看到一個不錯的SpringBootVue在線教育(在線學習)系統(高級版)【論文源碼SQL腳本】,分享下哈。 項目視頻演示 【免費】SpringBootVue在線教育(在線學習)系統(高級版) Java畢業設計_嗶哩嗶哩_bilibili 項目介紹…

TypeScript 針對 iOS 不支持 JIT 的優化策略總結

# **TypeScript 針對 iOS 不支持 JIT 的優化策略總結** 由于 iOS 的 **JavaScriptCore (JSC)** 引擎 **禁用 JIT(Just-In-Time 編譯)**,JavaScript 在 iOS 上的執行性能較差,尤其是涉及動態代碼時。 **TypeScript(T…

項目部署一次記錄

鏈路:(用戶)客戶端 → Nginx:192.168.138.100→ Tomcat (程序):192.168.138.101→ MySQL/Redis 打開數據庫:systemctl start mysqld 重啟網絡: systemctl restart NetworkManager 關閉防火墻&am…

C 語言學習筆記

文章目錄 程序設計入門 --- C 語言第一周 程序設計與 C 語言1 計算機與編程語言:計算機怎么做事情的,編程語言是什么📒 1.1 計算機的普遍應用 —— 離了它,現代人可能不會“活”了**🌐 科學計算:計算機的“…

服務器修改/home的掛載路徑

寫在前面:前段時間新裝了一臺服務器,/home目錄原本是掛在在系統盤/dev/sda4的分區下,但是系統盤的空間比較小,為了保證后續使用起來,不會遇到磁盤很快就占滿的情況,現在需要將 /home 獨立出來,掛…

刷機維修進階教程-----沒有開啟usb調試 如何在鎖定機型的撥號界面特殊手段來開啟ADB

有時候我們會遇到一些機型被屏幕鎖 賬號鎖等鎖定。無法進入系統界面。也沒有開啟usb調試的情況下如何通過一些操作來開啟adb調試。然后通過adb指令來禁用對應的app順利進入系統。以此來操作保數據等操作. 通過博文了解?????? 1??????----了解一些品牌機型鎖定狀態…

虛擬文件(VFS)

核心知識點:虛擬文件系統(VFS) 1. 通俗易懂的解釋 想象一下你家里的冰箱。你把食物放進去,不用管它是放在塑料盒里、玻璃罐里還是直接用保鮮膜包著,你只需要知道它在冰箱的哪個位置(比如“蔬菜抽屜里”&a…

前后端聯調實戰指南:Axios攔截器、CORS與JWT身份驗證全解析

前言 在現代Web開發中,前后端分離架構已成為主流,而前后端聯調則是開發過程中不可避免的關鍵環節。本文將深入探討前后端聯調中的三大核心技術:Axios攔截器的靈活運用、CORS跨域問題的全面解決方案以及JWT身份驗證的安全實現。通過本文&…

Postman基礎操作

1.Postman是什么? Postman是接口測試的工具,簡單來說它能模擬瀏覽器對服務器的某個接口發起請求并接收響應數據。 1.1 Postman工作原理 2.Postman發送請求 2.1 發送GET請求 我們知道GET請求是沒用請求體的,所以我們需要將請求參數寫在Param…

Elasticsearch Synthetic _source

_source 字段包含索引時傳入的原始 JSON 文檔體。_source 字段本身不被索引(因此不可搜索),但會被存儲,以便在執行獲取請求(如 get 或 search)時返回。 如果磁盤使用很重要,可以考慮以下選項&a…

Vue3 + Element Plus 實現用戶管理模塊

本文介紹一個使用 Vue3 Element Plus 實現的用戶與小組管理模塊,支持用戶的增刪改查(CRUD)和分頁管理,以及小組的新增和刪除功能,適用于管理后臺系統中的用戶權限管理場景。 一、項目簡介 該模塊具備以下功能&#…

Python應用“面向對象”小練習

大家好!面向對象編程是一種以 “對象” 為核心的編程思想。對象可以看作是具有特定屬性和行為的實體。例如,一個學生可以是一個對象,他的屬性包括姓名和年齡,行為可以是打招呼。? 代碼呈現: # 定義類和對象 class Student:def __init__(sel…

線性回歸原理推導與應用(八):邏輯回歸二分類乳腺癌數據分類

乳腺癌數據是sklearn中自帶的數據集,需要通過相關特征對是否患有乳腺癌進行分類。 數據清洗與建模 首先加載相關庫和相關數據 from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression import numpy as np import…

nginx的一些配置的意思

1.用這個端口可以訪問到nginx 2.工作進程,設置成和cpu核心數一樣即可 3.每個工作進程的最大網絡連接數。 4.主機名稱 設置反向代理時,把server_name設置成ip。 5.反向代理進行轉發,localhost指的是nginx所在的機器。 關鍵字proxy_pass。 …

SID103S/D/Q-300nA, 軌至軌, CMOS 運算放大器替代SGM8141

概述 SID103系列產品是專注于超低功耗、軌至軌、CMOS運算放大器,最低工作電壓可以支持到1.4V,并且工作時每個通道僅消耗300nA的電流。特別適合穿戴式、獨立式等對功耗敏感的電池供電場景。 SID103系列產品擁有5kHz的增益帶寬積,外接500pF電…

十六進制字符轉十進制算法

十六進制與十進制對照 十六進制十進制00112233445566778899A10B11C12D13E14F15 十六進制與十進制區別 十六進制是滿16進1,十進制是滿10進1,這里要注意下區別,16進制的字符里面為什么是0-9沒有10,這里面進了一位,表示…