Linux apache實現https的配置方法

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地址 名字

到此這篇關於Linux apache實現https的配置方法的文章就介紹到這瞭,更多相關Linux apache配置內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: