首頁 > 軟體

Linux apache實現https的設定方法

2022-10-18 14:01:17

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:WindowsSystem32driversetc

格式:ip地址 名字

到此這篇關於Linux apache實現https的設定方法的文章就介紹到這了,更多相關Linux apache設定內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com