Linux伺服器部署HTTPS

2021-08-21 04:53:20 字數 2804 閱讀 1689

https的實現

1、http想實現為https 就需要為配置ssl,及其使用的證書。這些在http裡有專門的mod_ssl模組來支援。

yum -y install mod_ssl  #安裝mod_ssl模組

安裝該模組後,它會自動修改配置檔案,增加loadmodule ssl_module modules/mod_ssl.so在httpd的子配置檔案/etc/httpd/conf.d/ssl.conf裡,同時也開啟了443埠,同時指定了證書的存放路徑。

原因是安裝的時候,安裝包裡會有指令碼去生成私鑰檔案/etc/pki/tls/private/localhost.key,同時也生成證書檔案/etc/pki/tls/certs/localhost.crt,而這個證書檔案是自簽名的,此時https**已經可以訪問,但是由於這個https伺服器的證書有問題,頒發給的機構不對,不是對應的站點名稱。所以需要要重新向ca申請,在獲取ca頒發的證書後才能正確使用https站點。

2、申請證書

首先需要實現https就必須要購買ssl證書,申請**

3、修改配置檔案:/etc/httpd/conf.d/ssl.conf  需要修改的就是下面這幾項

documentroot  /var/www/html  #指明共享檔案的根目錄,這個目錄會覆蓋/etc/httpd/conf/http.conf裡的設定

servername  www.webname.com  #指明這個web**伺服器的名字

sslcertificatefile /etc/httpd/ssl/httpd.crt  #指明證書存放的位置

sslcertificatekey  /etc/httpd/ssl/httpd.key   #指明私鑰檔案的存放位置

sslcacertificatefile  /etc/httpd/ssl/cacert.pem  #指明根證書的存放位置

service  httpd  reload  #過載配置檔案

5、測試是否配置成功

測試命令:

openssl s_client [-connect host:port] [-cert filename] [-capath directory] [-cafile filename]

例:openssl s_client -connect  hostip:443  #如果出現證書檔案內容,則說明https已經搭建成功

這裡的hostip也可以寫成你的伺服器網域名稱,前提是你的網域名稱已經在dns伺服器上做過網域名稱解析了。

6、http重定向到https

重定向就是將http 請求**至https 的url。一般使用者在向web伺服器請求檔案時不會專門記這個**是否為加密**。所以就需要在服務端自動的將使用者的http請求轉換為https請求。

這裡建議將http和https的主站點設定為同乙個站點。因為跳轉會將設定目錄下的所有http請求進行跳轉,如果https沒有http站點的目錄,比如http預設主站點是/var/www/html/,但是https下的主站點是/var/www/https,而且沒有/var/www/https/web這個站點,當有請求去請求這個/var/www/https/web頁面時,則跳轉會顯示網頁不存在而導致網頁打不開。

重定向:

(1)基於redirect進行跳轉

基於redirect的跳轉需要伺服器內配置跳轉檔案,並指明跳轉的路徑。

redirect的語法格式:

redirect [status] url-path url

status 的兩個狀態:

permanent:returns a permanent redirect status(301) indicating that the resource has moved permanently(永久跳轉)

temp:returns a temporary redirect status (302).this is the default(臨時跳轉)

例:vim /etc/httpd/conf.d/redirect.conf

redirect permanent  /var/www/html    #新增一條跳轉路徑,指明跳轉後的根目錄

(2)基於hsts跳轉

目前主流都是採用hsts(http stricttransport security)技術進行跳轉。伺服器端配置支援hsts後,會在給瀏覽器返回的http首部中攜帶hsts欄位。瀏覽器獲取到該資訊後,會將所有http訪問請求在內部做重寫307 跳轉到https。而無需任何網路過程。當客戶端第一次發http請求過來,伺服器端響應https的結果給客戶端,客戶端會把這個響應快取下來,下次客戶端瀏覽器再次訪問的時候,在瀏覽器端自動會將http轉換為https,然後以https發請求給伺服器。hsts可以很大程度上解決ssl剝離攻擊,因為只要瀏覽器曾經與伺服器建立過一次安全連線,之後瀏覽器會強制使用https,即使鏈結被換成了http。

hsts preload list

hsts preload list是chrome瀏覽器中的hsts預載入列表,在該列表中的**,使用chrome瀏覽器訪問時,會自動轉換為https。firefox、safari、edge瀏覽器也會採用這個列表。這個是在瀏覽器內配置的,所以是要**向各瀏覽器服務商申請,瀏覽器才會支援的。

配置hsts**:

header always set strict-transport-security "max-age=63072000"  #告訴瀏覽器下次需要用https進行訪問,這個資訊的失效時間為兩年

rewriteengine   on  #開啟重寫引擎

rewriterule  ^(/.*)$   https://%$1 [redirect=301]  #定義重寫規則

wampserver部署https伺服器

環境 wampserver 2.5 系統 win 10 將三個檔案複製到 c wamp bin apache apache2.4.9 conf 下 我的wamp裝在c盤,可根據實際情況將檔案放到對應路徑 在 c wamp bin apache apache2.4.9 conf 下開啟httpd.co...

LINUX部署ISCSI伺服器

服務端配置centos64 yum install y scsi target utils service tgtd start service iptables stop setenforce 0 chkconfig tgtd on vi etc tgt targets.conf 注意更改了如下的...

linux部署lanm伺服器

設定防火牆 firewall cmd zone public add port 80 tcp permanent firewall cmd zone public add port 3306 tcp permanent systemctl restart firewalld.service fire...