Linux apache實(shí)現(xiàn)https的配置方法
目錄
- http協(xié)議:
- ssl(安全套接層)協(xié)議:
- https協(xié)議:
http協(xié)議:
應(yīng)用層協(xié)議,傳輸層使用TCP協(xié)議,默認(rèn)使用80端口。http協(xié)議主要是用來是實(shí)現(xiàn)萬(wàn)維網(wǎng)站點(diǎn)資源的訪問。
ssl(安全套接層)協(xié)議:
全稱為Secure Sockets Layer。工作與傳輸層和應(yīng)用層之間,實(shí)現(xiàn)對(duì)應(yīng)用層協(xié)議的網(wǎng)絡(luò)連接進(jìn)行加密。
https協(xié)議:
http協(xié)議+ssl協(xié)議。默認(rèn)使用tcp的443端口。
https協(xié)議的工作過程:
客戶端發(fā)起HTTPS請(qǐng)求
用戶在瀏覽器里輸入一個(gè)https網(wǎng)址,然后連接到服務(wù)器的443端口服務(wù)端的配置
采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請(qǐng)。區(qū)別就是自己頒發(fā)的證書需要客戶端驗(yàn)證通過,才可以繼續(xù)訪問,而使用受信任的公司申請(qǐng)的證書則不會(huì)彈出提示頁(yè)面。這套證書其實(shí)就是一對(duì)公鑰和私鑰傳送服務(wù)器的證書給客戶端
證書里其實(shí)就是公鑰,并且還包含了很多信息,如證書的頒發(fā)機(jī)構(gòu),過期時(shí)間等等客戶端解析驗(yàn)證服務(wù)器證書
這部分工作是由客戶端的TLS來完成的,首先會(huì)驗(yàn)證公鑰是否有效,比如:頒發(fā)機(jī)構(gòu),過期時(shí)間等等,如果發(fā)現(xiàn)異常,則會(huì)彈出一個(gè)警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個(gè)隨機(jī)值。然后用證書中公鑰對(duì)該隨機(jī)值進(jìn)行非對(duì)稱加密客戶端將加密信息傳送服務(wù)器
這部分傳送的是用證書加密后的隨機(jī)值,目的就是讓服務(wù)端得到這個(gè)隨機(jī)值,以后客戶端和服務(wù)端的通信就可以通過這個(gè)隨機(jī)值來進(jìn)行加密解密了服務(wù)端解密信息
服務(wù)端將客戶端發(fā)送過來的加密信息用服務(wù)器私鑰解密后,得到了客戶端傳過來的隨機(jī)值服務(wù)器加密信息并發(fā)送信息
服務(wù)器將數(shù)據(jù)利用隨機(jī)值進(jìn)行對(duì)稱加密,再發(fā)送給客戶端客戶端接收并解密信息
客戶端用之前生成的隨機(jī)值解密服務(wù)段傳過來的數(shù)據(jù),于是獲取了解密后的內(nèi)容
apache實(shí)現(xiàn)https的流程:
apache是一個(gè)模塊化的軟件,很多功能由一個(gè)個(gè)模塊來提供的。加載對(duì)應(yīng)的模塊就能實(shí)現(xiàn)對(duì)應(yīng)的功能。
流程:
1.為apache服務(wù)器申請(qǐng)證書
2.配置apache的https功能
3.驗(yàn)證https
apache申請(qǐng)證書的方式
1.搭建私有CA實(shí)現(xiàn)證書的頒發(fā)
2.使用CentOS7快速生成一個(gè)自簽名證書
[root@ansible certs]# pwd/etc/pki/tls/certs[root@ansible certs]# lsca-bundle.crt ca-bundle.trust.crt make-dummy-cert Makefile renew-dummy-cert#取消makefile文件中對(duì)私鑰文件的加密[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.通過阿里云等網(wǎng)站下載免費(fèi)的證書(需要有域名)
配置apache的https功能
安裝mod_ssl軟件包,安裝mod_ssl軟件包后會(huì)自動(dòng)生成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的證書鏈文件 證書鏈文件:不指定證書鏈文件,它就不知道這個(gè)證書是誰(shuí)頒發(fā)的。證書鏈就是上級(jí)CA的證書
驗(yàn)證:
設(shè)置windows的hosts文件用于驗(yàn)證
windows的hosts文件位置:C:\Windows\System32\drivers\etc格式:ip地址 名字
到此這篇關(guān)于Linux apache實(shí)現(xiàn)https的配置方法的文章就介紹到這了,更多相關(guān)Linux apache配置內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
