HTTPS與CA證書:安全通信全解析

  • CA(Certificate Authority):證書頒發機構,負責簽發和管理數字證書,驗證證書持有者的身份。
  • HTTPS:基于 SSL/TLS 協議的 HTTP,通過證書實現客戶端與服務器的身份驗證和數據加密。
  • HTTPS=HTTP+SSL/TLS
    HTTP:以明文的方式通過 80端口進行數據傳輸
    HTTPS:以數據加密的方式通過443端口進行數據傳輸
  • 連接建立過程
  • 客戶端發起請求:客戶端向服務器發送一個 HTTPS 請求,請求中包含客戶端支持的加密算法、SSL/TLS 協議版本等信息,隨機生成一組32字節數據random_c。
  • 服務器響應:服務器收到請求后,選擇雙方都支持的加密算法和協議版本,并將自己的數字證書發送給客戶端,公鑰加密數據隨機生成一組32個字節的數據random_s。
  • 客戶端驗證與密鑰交換:客戶端驗證服務器的數字證書,并從中獲取服務器的公鑰。然后客戶端生成一個隨機的對稱加密密鑰pre_master,使用服務器的公鑰對其進行加密,并發送給服務器。
  • 連接建立:服務器使用自己的私鑰解密客戶端發送的對稱加密密鑰pre_master,雙方都擁有了相同的對稱加密密鑰,之后就可以使用該密鑰進行加密數據傳輸,同時通過消息認證碼來確保數據的完整性。最后的會話密鑰:random_c+random_s+pre_master

一,CA機構的搭建

openssl: ?命令的選項
-x509 ?:生成自簽名證書格式,專用于創建私有CA
-new :生成新證書的簽署請求
-key ?:生成請求時用到的私鑰文件路徑
-out ?:生成后的文件存放路徑,如果是自簽名操作,將直接生成簽署過的證書
-days ?:證書有效期 默認是365天

二,環境部署

1.CA機構 用ycy1.example.com(已經部署好了DNS服務)

1.1 查看CA的默認配置文件 vim /etc/pki/tls/openssl.cnf

證書目錄:

1.2 對比發現默認的CA配置文件和現有的不一致

所以需要創建四個文件:
/etc/pki/CA/index.text
/etc/pki/CA/carert.pem
/etc/pki/CA/serial
/etc/pki/CA/private/cakey.pem

1.3?前提:在DNS服務器上的正向解析數據庫中添加ca.example.com的解析內容
vim /var/named/examp.com
ca IN A 192.168.100.200

1.4在主機CA上為主機CA生成私鑰

(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)解析:
umask 077	//創建文件時,設置只有所有者具有讀寫權限
openssl genrsa		//生成私鑰
-out		//設置私鑰的存放路徑

1.5在主機CA上為主機CA生成自簽名證書

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
Country Name(國家):CN
State or Province Name(省份):HB
Locality Name(城市):WH
Organization Name(組織名稱):LQ
Organizational Unit Name(組織單位名稱):LINUX
Common Name(服務器主機名):ca.example.com
Email Address(郵箱):root@example.com

1.5 創建剩下的兩個文件

2.配置WEB服務器

選擇ycy2.example.com 192.168.100.20

2.1 確保DNS關聯ycy1的IP地址192.168.100.10

2.2 獲取私鑰,創建目錄存放

2.3 生成自簽名證書

openssl req -new  -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

2.4?在主機WEB上將CA主機上已經數字簽名后的Web證書下載下來

scp httpd.csr root@ca.example.com:/etc/pki/CA/

CA機構可以查看到這個文件(簽名證書文件httpd.csr)

2.5?在主機CA上 對簽署請求進行數字簽名,并指明所生成的Web證書的存放路徑

openssl ca -in /etc/pki/CA/httpd.csr -out /etc/pki/CA/httpd.crt -days 365##httpd.crt WEB站點證書

2.6在CA機構將根證書復制給客戶端

scp httpd.crt root@ycy2.example.com:/etc/httpd/ssl/

客戶端可以看到

2.7?在主機WEB上安裝apche http擴展模塊mod_ssl 提供安全站點

yum -y install mod_ssl

2.8?在主機WEB上修改主配置文件,使用剛剛下載的web證書

cd /etc/httpd/conf.d/
vim ssl.conf

修改證書目錄和私鑰目錄

2.9 創建安全的站點

vim /etc/httpd/conf.d/httpd-vhost.conf

2.10 在DNS服務器上將cacert.pem 復制到根目錄(客戶端ycy3)

scp root@192.168.100.10:/etc/pki/CA/cacert.pem .

2.11?打開火狐瀏覽器,導入證書
設置–首選項–高級–證書–查看證書–導入–找到根證書,然后雙擊–把“信任使用此CA標識的網站”勾上–確定–確定

2.12 在web創建test文件,并寫入123456

2.13 驗證

三,集成動態WEB

主機WEB上:

  1. 安裝httpd mod_wsgi

yum -y install httpd  mod_wsgi

2.上傳動態web內容–Python語言編寫

mkdir  /var/www/wsgi
cd  /var/www/wsgi   	//然后將Python編寫的動態web內容上傳到該目錄下
注意,轉移的文件ch可能沒有執行權限,所以需要賦予文件執行權限
chmod +x 【文件名】

3.通過filezille上傳網頁

4.將python.txt腳本名字改為test.py并給與執行權限

5.虛擬主機定義網頁內容

給腳本取一個別名訪問的時候通過py.example.com就可以訪問腳本test.py

重啟:systemctl restart httpd

6.驗證

7.訪問洛奇科技的indel.html

不需要別名

驗證:

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

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

相關文章

AI生成代碼時代的商業模式重構:從“軟件即產品”到“價值即服務”

2025年,全球AI代碼生成市場規模突破63億元(數據來源:《中國AI代碼生成行業發展報告》),開發者效率提升40%以上,軟件開發成本下降30%。這一技術浪潮正在顛覆傳統軟件行業的商業邏輯——當代碼生成變得像文字編輯一樣簡單時,企業如何構建可持續的商業模式? 本文將從硬件…

C#特性與反射知識梳理

C#中的**特性(Attributes)和反射(Reflection)**是兩個非常重要的概念,它們通常用于代碼的元編程,允許你在運行時獲取類型信息并對其進行操作。下面對這兩個概念進行詳細梳理:一、C#中的特性&…

SQL 語法詳解

SQL 語法詳解 引言 SQL(Structured Query Language)是一種用于數據庫管理的標準語言,它允許用戶進行數據的查詢、更新、插入和刪除等操作。SQL語法是數據庫管理和編程的基礎,本篇文章將詳細介紹SQL的基本語法和常用操作&#xff0…

為什么 sim(3) 中的尺度 s 與旋轉 R 相乘,而不是平移 t?

文章目錄為什么 sim(3) 中的尺度 s 與旋轉 R 相乘,而不是平移 t?1?? sim(3) vs SE(3):結構對比與核心差異2?? 為什么尺度 s 不乘在 t 上?🚫 數學破壞:🧭 幾何解釋:3?? t 是“相…

如何為你的 Docker 容器設置代理網絡

一文搞定!如何為你的 Docker 容器設置代理網絡(及一個最常見的“坑”) 你是否遇到過這樣的窘境:在你的服務器上,代理工具(比如 Clash, V2Ray)運行得好好的,瀏覽器也能科學上網,但一旦把應用放進 Docker 容器,它就瞬間“失聯”,無法訪問外部世界? 別擔心,這是每個…

LeetCode Day3 -- 哈希表

目錄 1. 啥是哈希表? 2. 啥時候用哈希表? 2.1 存在性檢查 → 集合Set 2.2 鍵值映射 → 字典Dict 2.3 頻率統計 → Dict or Counter 3. LeetCode 3.1 集合 (1)2215 找出兩數組的不同 (2)1207 獨一無…

三子棋裝置(電賽24E題)K230/STM32全開源

三子棋裝置(電賽24E題)K230/STM32全開源,后續有具體代碼參數講解,幫助大家移植k230代碼import time, os, sysfrom media.sensor import * from media.display import * from media.media import *from machine import UART from m…

終端安全檢測與防御

1. 終端安全風險主要問題:企業網絡中80%的安全事件源于終端,終端成為黑客攻擊的重要目標。攻擊手段:勒索病毒:直接勒索用戶。橫向滲透:通過受控終端攻擊內部服務器。僵尸網絡危害:信息竊取、釣魚網站引導、…

Video_AVI_Packet(2)

博主聲明:內容來自網絡,僅供參考,僅適用于淺了解,如有錯誤,自行甄別,由此引起的后果概不負責 Video_AVI_Packet(2)一、Video Picture Aspect Ratio 與 Active Format Aspect Ratio1.…

八月補丁星期二:微軟修復 111 個漏洞

微軟將在2025 年 8 月補丁星期二修復 111 個漏洞,這一數量與近期平均水平大致相同。 與上個月的情況類似,微軟知道今天發布的漏洞中只有一個已被公開披露,但聲稱沒有證據表明存在野外利用。同樣,截至發布時,唯一的補丁…

《C++進階之繼承多態》【普通類/模板類的繼承 + 父類子類的轉換 + 繼承的作用域 + 子類的默認成員函數】

【普通類/模板類的繼承 父類&子類的轉換 繼承的作用域 子類的默認構造函數】目錄前言:------------------------一、繼承的定義和使用1. 什么使繼承?2. 為什么要引入繼承?3. 怎么使用繼承?① 父類(基類&#xf…

Ubuntu22.04安裝OBS Studio

OBS官網的最新的雖然支持Ubuntu系統,但是只支持最新的24.2版本的,而我的電腦上的Ubuntu的版本是22.04,所以在網上尋求解決辦法,看到了這一片博客,作為參考來實現ubuntu22.04安裝OBS,這里提示一下&#xff0…

Ansible 基本使用

Ansible 清單 靜態主機清單 主機清單支持多種格式,例如ini、yaml、腳本等。 本次課程使用 ini 格式。 #創建主機清單[lykcontroller ~ 13:36:01]# vim inventory#vim添加controllernode1node2node3node4?#測試連接單個服務器[lykcontroller ~ 14:08:18]$ ansibl…

網絡資源模板--基于Android Studio 實現的九寨溝App

目錄 一、測試環境說明 二、項目簡介 三、項目演示 四、部設計詳情(部分) 首頁 購票頁面 五、項目源碼 一、測試環境說明 電腦環境 Windows 11 編寫語言 JAVA 開發軟件 Android Studio (2020) 開發軟件只要大于等于測試版本即可(近幾年官網直接下載也…

系統架構設計師備考之架構設計實踐知識

1.信息系統架構設計理論與實踐1.1.基本概念信息系統架構定義目前關于信息系統架構較為權威的定義有: (1)信息系統架構是系統的結構,由軟件元素、元素外部可見屬性和元素間關系組成。 (2)信息系統架構是軟件…

【IgH EtherCAT】如何利用 RTAI 提供的實時任務和調度機制來構建一個高精度、確定性的工業控制應用

SVG圖展示了系統的分層架構:RTAI實時層:包含RT_TASK、信號量和定時器EtherCAT Master層:主站、域、從站配置和PDO映射EtherCAT網絡層:與實際硬件設備(EL3162模擬輸入、EL2004數字輸出)通信關鍵特點&#xf…

7款熱門智能電視文件管理器橫向評測

7款智能電視文件管理器橫向評測 在智能電視和電視盒子日益普及的今天,一款好用的文件管理器能讓您的數字生活更加便捷。本文為您評測了7款廣受歡迎的TV版文件管理器,助您找到最適合自己的工具。 1. ES文件瀏覽器TV版 ES文件瀏覽器是一款廣受歡迎的多功能…

Python 類元編程(導入時和運行時比較)

導入時和運行時比較 為了正確地做元編程,你必須知道 Python 解釋器什么時候計算各個代碼 塊。Python 程序員會區分“導入時”和“運行時”,不過這兩個術語沒有嚴 格的定義,而且二者之間存在著灰色地帶。在導入時,解釋器會從上到 下…

[git diff] 對比檢查變更 | 提交前復審 | 版本回退

git diff git diff 是 Git 版本控制系統中用于比較文件差異的核心命令,可以顯示工作目錄、暫存區(Index)和倉庫歷史之間的變化。 通過對比不同版本或狀態的文件內容,幫助開發者理解代碼變更。 比較工作目錄與暫存區 運行以下命令查…

【數據可視化-85】海底撈門店數據分析與可視化:Python + pyecharts打造炫酷暗黑主題大屏

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…