網站首頁 編程語言 正文
http協議:
??應用層協議,傳輸層使用TCP協議,默認使用80端口。http協議主要是用來是實現萬維網站點資源的訪問。
ssl(安全套接層)協議:
??全稱為Secure Sockets Layer。工作與傳輸層和應用層之間,實現對應用層協議的網絡連接進行加密。
https協議:
??http協議+ssl協議。默認使用tcp的443端口。
https協議的工作過程:
客戶端發起HTTPS請求
??用戶在瀏覽器里輸入一個https網址,然后連接到服務器的443端口服務端的配置
??采用HTTPS協議的服務器必須要有一套數字證書,可以自己制作,也可以向組織申請。區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面。這套證書其實就是一對公鑰和私鑰傳送服務器的證書給客戶端
??證書里其實就是公鑰,并且還包含了很多信息,如證書的頒發機構,過期時間等等客戶端解析驗證服務器證書
??這部分工作是由客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如:頒發機構,過期時間等等,如果發現異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨機值。然后用證書中公鑰對該隨機值進行非對稱加密客戶端將加密信息傳送服務器
??這部分傳送的是用證書加密后的隨機值,目的就是讓服務端得到這個隨機值,以后客戶端和服務端的通信就可以通過這個隨機值來進行加密解密了服務端解密信息
??服務端將客戶端發送過來的加密信息用服務器私鑰解密后,得到了客戶端傳過來的隨機值服務器加密信息并發送信息
??服務器將數據利用隨機值進行對稱加密,再發送給客戶端客戶端接收并解密信息
??客戶端用之前生成的隨機值解密服務段傳過來的數據,于是獲取了解密后的內容
apache實現https的流程:
??apache是一個模塊化的軟件,很多功能由一個個模塊來提供的。加載對應的模塊就能實現對應的功能。
流程:
1.為apache服務器申請證書
2.配置apache的https功能
3.驗證https
apache申請證書的方式
1.搭建私有CA實現證書的頒發
https://www.jb51.net/article/265122.htm
2.使用CentOS7快速生成一個自簽名證書
[root@ansible certs]# pwd
/etc/pki/tls/certs
[root@ansible certs]# ls
ca-bundle.crt ca-bundle.trust.crt make-dummy-cert Makefile renew-dummy-cert
#取消makefile文件中對私鑰文件的加密
[root@ansible certs]# vim Makefile
%.key:
umask 77 ; \
#/usr/bin/openssl genrsa -aes128 $(KEYLEN) > $@
/usr/bin/openssl genrsa $(KEYLEN) > $@
#生成證書
[root@ansible certs]# make Makefile httpds.crt
3.通過阿里云等網站下載免費的證書(需要有域名)
配置apache的https功能
安裝mod_ssl軟件包,安裝mod_ssl軟件包后會自動生成apache的ssl配置文件和模塊。
[root@CentOS8 ~]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf #ssl模塊的配置文件
/etc/httpd/conf.modules.d/00-ssl.conf #加載ssl模塊
/usr/lib/.build-id
/usr/lib/.build-id/e6/046e586d8d19fb92e3f8484a62203e841c3e2a
/usr/lib/systemd/system/httpd-init.service
/usr/lib/systemd/system/httpd.socket.d/10-listen443.conf
/usr/lib64/httpd/modules/mod_ssl.so #模塊文件
/usr/libexec/httpd-ssl-gencerts
/usr/libexec/httpd-ssl-pass-dialog
/usr/share/man/man8/httpd-init.service.8.gz
/var/cache/httpd/ssl
修改配置文件:
[root@CentOS8 ~]# vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /data/apache/apache1.crt #apache的證書文件
SSLCertificateKeyFile /data/apache/apache1.key #apache的私鑰文件
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt #apache的證書鏈文件
證書鏈文件:不指定證書鏈文件,它就不知道這個證書是誰頒發的。證書鏈就是上級CA的證書
驗證:
??設置windows的hosts文件用于驗證
windows的hosts文件位置:C:\Windows\System32\drivers\etc
格式:ip地址 名字
原文鏈接:https://www.cnblogs.com/heyongshen/archive/2022/10/15/16787878.html
相關推薦
- 2022-10-18 Qt網絡編程之TCP通信及常見問題_C 語言
- 2022-03-17 c++智能指針unique_ptr的使用_C 語言
- 2022-04-30 Python的進制轉換和ASCLL轉換你了解嗎_python
- 2022-02-25 git提交到本地倉庫了,但是分支卻推送不上去怎么回退到提交之前的狀態
- 2022-11-02 一文搞懂Golang中的內存逃逸_Golang
- 2023-06-04 django數據庫報錯解決匯總:django.db.utils.OperationalError?1
- 2022-12-16 C++?Futures與Promises線程使用示例講解_C 語言
- 2023-04-06 C++中的多態問題—理解虛函數表及多態實現原理_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支