![Linux系統(tǒng)管理基礎(chǔ)項(xiàng)目教程課件_第1頁(yè)](http://file4.renrendoc.com/view14/M06/39/2E/wKhkGWdVuSqAILqZAADGq7Zhwvo535.jpg)
![Linux系統(tǒng)管理基礎(chǔ)項(xiàng)目教程課件_第2頁(yè)](http://file4.renrendoc.com/view14/M06/39/2E/wKhkGWdVuSqAILqZAADGq7Zhwvo5352.jpg)
![Linux系統(tǒng)管理基礎(chǔ)項(xiàng)目教程課件_第3頁(yè)](http://file4.renrendoc.com/view14/M06/39/2E/wKhkGWdVuSqAILqZAADGq7Zhwvo5353.jpg)
![Linux系統(tǒng)管理基礎(chǔ)項(xiàng)目教程課件_第4頁(yè)](http://file4.renrendoc.com/view14/M06/39/2E/wKhkGWdVuSqAILqZAADGq7Zhwvo5354.jpg)
![Linux系統(tǒng)管理基礎(chǔ)項(xiàng)目教程課件_第5頁(yè)](http://file4.renrendoc.com/view14/M06/39/2E/wKhkGWdVuSqAILqZAADGq7Zhwvo5355.jpg)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第14章
Web服務(wù)配置與管理知識(shí)要點(diǎn)14.1項(xiàng)目描述14.2知識(shí)準(zhǔn)備14.2.1Web服務(wù)簡(jiǎn)介14.2.2ApacheWebServer簡(jiǎn)介14.2.3NginxWebServer簡(jiǎn)介14.2.4虛擬主機(jī)簡(jiǎn)介14.2.5HTTPS簡(jiǎn)介14.3項(xiàng)目實(shí)施14.3.1安裝Apache軟件14.3.2配置Apache虛擬主機(jī)14.3.3配置基于端口的虛擬主機(jī)14.3.4配置安全主機(jī)14.3.5安裝Nginx軟件14.3.6配置Nginx虛擬主機(jī)14.3.7基于LAMP環(huán)境部署WordPress博客程序14.4項(xiàng)目實(shí)訓(xùn)目錄14.1項(xiàng)目描述小明所在公司因業(yè)務(wù)需求打算開(kāi)發(fā)內(nèi)部管理系統(tǒng),計(jì)劃采用B/S架構(gòu)部署Web服務(wù)器。小明作為數(shù)據(jù)中心系統(tǒng)工程師制定了Web系統(tǒng)部署方案,使用ApacheHTTPD和Nginx程序配置基于IP、域名和端口的虛擬主機(jī)站點(diǎn),實(shí)現(xiàn)企業(yè)內(nèi)部各Web服務(wù)器的在線(xiàn)訪(fǎng)問(wèn)和運(yùn)行。為了提高Web站點(diǎn)的安全性,配置ApacheHTTPD提供基于SSL/TLS的加密算法來(lái)加密虛擬主機(jī),實(shí)現(xiàn)HTTPS安全訪(fǎng)問(wèn)。本項(xiàng)目主要介紹Apache服務(wù)器的實(shí)施和管理、Nginx服務(wù)器的實(shí)施和管理,以及基于IP、域名、端口的虛擬站點(diǎn)的參數(shù)配置方法。14.2知識(shí)準(zhǔn)備14.2.1Web服務(wù)簡(jiǎn)介1.HTTP簡(jiǎn)介HTTP在日常生活中隨處可見(jiàn),無(wú)論是使用各種設(shè)備聯(lián)網(wǎng),還是看直播、看短視頻、聽(tīng)音樂(lè)、玩游戲,總會(huì)有HTTP在默默為你服務(wù)。據(jù)NetCraft公司統(tǒng)計(jì),目前全球至少有16億個(gè)網(wǎng)站、兩億多個(gè)獨(dú)立域名,而這個(gè)龐大網(wǎng)絡(luò)世界的底層運(yùn)轉(zhuǎn)機(jī)制就是HTTP。20世紀(jì)60年代,美國(guó)國(guó)防部高級(jí)研究計(jì)劃署(AdvancedResearchProjectAgency,ARPA)建立了ARPA網(wǎng),它有4個(gè)分布在各地的節(jié)點(diǎn),被認(rèn)為是如今互聯(lián)網(wǎng)的“始祖”。20世紀(jì)70年代,基于對(duì)ARPA網(wǎng)的實(shí)踐和思考,研究人員發(fā)明了著名的TCP/IP。1989年,任職于歐洲核子研究中心(EuropeanOrganizationforNuclearResearch,CERN)的蒂姆·伯納斯·李(TimBerners-Lee)發(fā)表了一篇論文,提出了在互聯(lián)網(wǎng)上構(gòu)建超鏈接文檔系統(tǒng)的構(gòu)想,這篇論文中確立了以下3項(xiàng)關(guān)鍵技術(shù)。14.2知識(shí)準(zhǔn)備14.2.1Web服務(wù)簡(jiǎn)介URI:統(tǒng)一資源標(biāo)識(shí)符,作為互聯(lián)網(wǎng)上資源的唯一身份。HTML:超文本標(biāo)記語(yǔ)言,描述超文本文檔。HTTP:超文本傳輸協(xié)議,用來(lái)傳輸超文本。基于它們,就可以把超文本系統(tǒng)運(yùn)行在互聯(lián)網(wǎng)上,讓各地的人們能夠自由地共享信息,蒂姆把這個(gè)系統(tǒng)稱(chēng)為“萬(wàn)維網(wǎng)”(WorldWideWeb,WWW),也就是我們現(xiàn)在所熟知的互聯(lián)網(wǎng)。20世紀(jì)90年代初期的互聯(lián)網(wǎng)非常簡(jiǎn)陋,計(jì)算機(jī)處理能力低、存儲(chǔ)容量小,網(wǎng)速也很慢。1993年,美國(guó)國(guó)家超級(jí)計(jì)算機(jī)應(yīng)用中心(NationalCenterforSupercomputerApplications,NCSA)開(kāi)發(fā)出了Mosaic,它是第一個(gè)可以圖文混排的瀏覽器。1995年開(kāi)發(fā)出了服務(wù)器軟件Apache,簡(jiǎn)化了HTTP服務(wù)器的搭建工作。1992年JPEG圖像格式誕生,1995年MP3音樂(lè)格式誕生。1996年正式發(fā)布HTTP/1.0版本14.2知識(shí)準(zhǔn)備14.2.1Web服務(wù)簡(jiǎn)介2.Web服務(wù)器剛才說(shuō)的瀏覽器是HTTP里的請(qǐng)求方,那么在協(xié)議另一端的應(yīng)答方(響應(yīng)方)就是Web服務(wù)器,即WebServer。當(dāng)談到Web服務(wù)器時(shí),有兩個(gè)層面的含義,一個(gè)是硬件,另一個(gè)是軟件。硬件意義上的Web服務(wù)器就是物理形式或“云”形式的機(jī)器,在大多數(shù)情況下它可能不是一個(gè)服務(wù)器,而是利用反向代理、負(fù)載均衡等技術(shù)組成的龐大集群。
軟件意義上的Web服務(wù)器就是提供Web服務(wù)的應(yīng)用程序,通常會(huì)運(yùn)行在硬件意義的服務(wù)器上。它利用強(qiáng)大的硬件能力響應(yīng)大量的客戶(hù)端HTTP請(qǐng)求,處理磁盤(pán)上的網(wǎng)頁(yè)、圖片等靜態(tài)文件,或者把請(qǐng)求轉(zhuǎn)發(fā)給后臺(tái)的Tomcat、Node.js等業(yè)務(wù)應(yīng)用,返回動(dòng)態(tài)的信息。14.2知識(shí)準(zhǔn)備14.2.1Web服務(wù)簡(jiǎn)介2.Web服務(wù)器目前市面上主流的Web服務(wù)器軟件有兩種,分別是Apache和Nginx,兩者合計(jì)占據(jù)了近90%的市場(chǎng)份額。Apache是老牌的服務(wù)器,功能相當(dāng)完善,相關(guān)的資料很多,學(xué)習(xí)門(mén)檻低,是許多創(chuàng)業(yè)者建站的首選。Nginx是Web服務(wù)器的“后起之秀”,自2004年推出后就不斷搶占Apache的市場(chǎng)份額。其特點(diǎn)是高性能、高穩(wěn)定性,且易于擴(kuò)展,在高流量的網(wǎng)站里更是不二之選;在2019年TopMillion網(wǎng)站中更是超過(guò)了Apache,擁有超過(guò)50%的用戶(hù)。14.2知識(shí)準(zhǔn)備14.2.2ApacheWebServer簡(jiǎn)介圖
ApacheWeb網(wǎng)站架構(gòu)Web服務(wù)器是一個(gè)用HTTP進(jìn)行交流的守護(hù)進(jìn)程,HTTP是一個(gè)基于文本的協(xié)議,用于通過(guò)網(wǎng)絡(luò)連接來(lái)發(fā)送和接收對(duì)象。HTTP通過(guò)網(wǎng)絡(luò)以明文形式發(fā)送數(shù)據(jù),默認(rèn)情況下使用80/tcp端口(也可以使用其他端口)。HTTP還有一個(gè)經(jīng)過(guò)SSL/TLS加密的版本,即HTTPS,默認(rèn)情況下使用端口443/tcp。Apache官網(wǎng)提供了相關(guān)文檔手冊(cè),官方手冊(cè)是配置ApacheHTTPD時(shí)的重要參考資源。ApacheWeb網(wǎng)站架構(gòu)如圖所示。14.2知識(shí)準(zhǔn)備14.2.3NginxWebServer簡(jiǎn)介Nginx是異步框架的網(wǎng)頁(yè)服務(wù)器,也可以用作反向代理、負(fù)載平衡器和HTTP緩存器。由伊戈?duì)枴べ愃饕颍↖gorSysoev)創(chuàng)建并于2004年首次公開(kāi)發(fā)布,2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5Networks公司以6.7億美元收購(gòu)。Nginx是免費(fèi)的開(kāi)源軟件,根據(jù)類(lèi)BSD許可證的條款發(fā)布。Nginx是一款面向性能設(shè)計(jì)的HTTP服務(wù)器,相較于A(yíng)pache、Lighttpd,具有占內(nèi)存少、穩(wěn)定性高等優(yōu)勢(shì)。與舊版本的Apache不同,Nginx不采用每個(gè)客戶(hù)機(jī)一個(gè)線(xiàn)程的設(shè)計(jì)模型,而是充分使用異步邏輯,從而削減了上下文調(diào)度開(kāi)銷(xiāo),所以并發(fā)服務(wù)能力更強(qiáng)。14.2知識(shí)準(zhǔn)備14.2.4虛擬主機(jī)簡(jiǎn)介1.虛擬主機(jī)基本概念虛擬主機(jī)指服務(wù)器基于用戶(hù)請(qǐng)求的不同IP地址、主機(jī)域名或端口號(hào)實(shí)現(xiàn)多個(gè)網(wǎng)站同時(shí)為外部提供訪(fǎng)問(wèn)服務(wù)的技術(shù),用戶(hù)請(qǐng)求的資源不同,最終獲取到的網(wǎng)頁(yè)內(nèi)容也就各不相同。虛擬主機(jī)是互聯(lián)網(wǎng)服務(wù)器采用的節(jié)省服務(wù)器硬件成本的技術(shù),主要應(yīng)用于HTTP、FTP和EMAIL等多項(xiàng)服務(wù),將一臺(tái)服務(wù)器的某項(xiàng)或全部服務(wù)內(nèi)容按邏輯劃分為多個(gè)服務(wù)單位,對(duì)外表現(xiàn)為多個(gè)服務(wù)器,從而充分利用服務(wù)器硬件資源。虛擬主機(jī)之間完全獨(dú)立,并由用戶(hù)自行管理,虛擬并非指不存在,而是指空間是由實(shí)體的服務(wù)器延伸而來(lái),是一種在單一主機(jī)或主機(jī)群上,運(yùn)行多個(gè)網(wǎng)站或服務(wù)的技術(shù)。14.2知識(shí)準(zhǔn)備14.2.4虛擬主機(jī)簡(jiǎn)介2.虛擬主機(jī)主要配置參數(shù)虛擬主機(jī)是使用主配置文件中的<VirtualHost>塊來(lái)配置的,為了便于管理,通常不會(huì)在/etc/httpd/conf/http.conf文件中定義這些虛擬主機(jī)塊,而是在單獨(dú)的/etc/httpd/conf.d/中定義單獨(dú)的.conf文件。<VirtualHost>指令的IP地址部分可以替換為_(kāi)default_和*兩個(gè)通配符中的任意一個(gè),兩者的含義完全相同,表示可以配置任何內(nèi)容。文件內(nèi)容/etc/httpd服務(wù)目錄/etc/httpd/conf/httpd.conf主配置文件/var/www/html網(wǎng)站數(shù)據(jù)目錄/var/log/httpd/access_log訪(fǎng)問(wèn)日志/var/log/httpd/error_log錯(cuò)誤日志表Apache服務(wù)主要配置文件內(nèi)容14.2知識(shí)準(zhǔn)備14.2.4虛擬主機(jī)簡(jiǎn)介3.http.conf配置文件參數(shù)http.conf的基本語(yǔ)法由兩部分組成:KeyValue配置指令和類(lèi)似于HTML的<Blocknameparameter>塊,但后者中嵌入了其他配置指令。塊范圍之外的鍵值對(duì)會(huì)影響整個(gè)服務(wù)器配置,而塊中的指令通常僅應(yīng)用于塊指示的配置的某一部分,或者在滿(mǎn)足了塊設(shè)置的要求時(shí)才會(huì)應(yīng)用。httpd.conf配置文件主要參數(shù)及作用如表所示。表
httpd.conf配置文件主要參數(shù)及作用參數(shù)作用ServerRoot"/etc/httpd"服務(wù)目錄。指定httpd進(jìn)程將在哪個(gè)位置使用相對(duì)路徑名來(lái)查找配置文件中引用的任何文件Listen80告知httpd進(jìn)程在所有接口上開(kāi)始偵聽(tīng)端口80/tcp。如果需要偵聽(tīng)特定端口,可以使用Listen:80(對(duì)于IPv4)或Listen[2001:db8::1]:80(對(duì)于IPv6)。注意,允許多個(gè)listen指令,但是重疊的listen指令會(huì)導(dǎo)致錯(cuò)誤,使httpd進(jìn)程無(wú)法啟動(dòng)14.2知識(shí)準(zhǔn)備續(xù)表參數(shù)作用Includeconf.modules.d/*.conf需要加載的其他文件。此指令包括其他文件,就如同這些文件已插入配置文件以代替Include語(yǔ)句。如果指定了多個(gè)文件,則在包含這些文件之前,將按字母順序?qū)ξ募M(jìn)行排序。文件名可以是絕對(duì)路徑,也可以是相對(duì)于ServerRoot的路徑,并且包括通配符(如*),注意,指定不存在的文件將導(dǎo)致錯(cuò)誤,致使httpd進(jìn)程無(wú)法啟動(dòng)Userapache運(yùn)行服務(wù)的用戶(hù)。指定在運(yùn)行httpd進(jìn)程時(shí)應(yīng)使用的用戶(hù)。Httpd進(jìn)程始終是以root用戶(hù)的身份啟動(dòng),但是一旦執(zhí)行了需要root特權(quán)的操作(例如綁定低于1024的端口號(hào)),則將丟棄特權(quán)并且作為非特權(quán)用戶(hù)繼續(xù)執(zhí)行。這是一種安全措施Groupapache運(yùn)行服務(wù)的用戶(hù)組,指定在運(yùn)行httpd進(jìn)程時(shí)應(yīng)使用的組<Directory></Directory>塊設(shè)置指定目錄以及所有子目錄的配置指令,<Directory>塊中的常見(jiàn)指令包括以下幾種。AllowOverrideNone:對(duì)于按目錄的配置設(shè)置,將不會(huì)查閱.htaccess文件,將其設(shè)置為任何其他設(shè)置都將導(dǎo)致性能損失以及出現(xiàn)無(wú)法預(yù)測(cè)的不安全后果。RequireAllDenied:httpd進(jìn)程將拒絕提供此目錄的內(nèi)容,當(dāng)客戶(hù)端請(qǐng)求時(shí),將返回403Forbidden錯(cuò)誤。14.2知識(shí)準(zhǔn)備續(xù)表參數(shù)作用<Directory></Directory>塊RequireAllGranted:允許訪(fǎng)問(wèn)此目錄。Options[[+|-OPTIONS]]...:為某個(gè)目錄開(kāi)啟(或)關(guān)閉特定參數(shù)。例如,如果請(qǐng)求了某個(gè)目錄并且該目錄下存在index.html文件,則Indexes參數(shù)將顯示一個(gè)目錄列表DocumentRoot"/var/www/html"網(wǎng)站數(shù)據(jù)目錄,確定httpd進(jìn)程將搜索請(qǐng)求文件的位置。此處指定的目錄可以由httpd讀取,并且對(duì)應(yīng)的<Directory>塊已聲明為允許訪(fǎng)問(wèn)<Files".ht*"><Files>塊運(yùn)行方式與<Directory>塊相同,但此處使用了表示個(gè)別(通配符*)文件的參數(shù)。在此情況下,塊阻止httpd進(jìn)程提供任何安全性敏感的文件,如.htacces和.htpasswdErrorLog"logs/error_log"指定httpd進(jìn)程應(yīng)將其遇到的錯(cuò)誤記錄到的文件位置。由于這是一個(gè)相對(duì)路徑名,前面帶有ServerRoot指令。在默認(rèn)配置中,/etc/httpd/logs是指向/var/log/http/的符號(hào)鏈接CustomLog"logs/access_log"combined所有訪(fǎng)問(wèn)權(quán)限消息的記錄的日志位置。CustomLog指令采用要記錄到的文件和使用LogFormat指令定義的日志文件格式這兩個(gè)參數(shù)。使用這些指令,管理員可以精確記錄其需要的信息。大部分日志解析工具將假定使用默認(rèn)的combined格式14.2知識(shí)準(zhǔn)備續(xù)表參數(shù)作用AddDefaultCharsetUTF-8此設(shè)置向text/plain和text/html資源的Content-Type報(bào)頭中添加charset部分??梢允褂肁ddDefaultCharsetOff將其禁用ServerAdminroot@localhost管理員郵箱ServerName網(wǎng)站服務(wù)器的域名,單個(gè)<VirtualHost>塊中只能有正好零個(gè)或一個(gè)ServerName指令。如果需要將單個(gè)虛擬主機(jī)用于多個(gè)域名,則可以使用一個(gè)或多個(gè)ServerAlias語(yǔ)句DirectoryIndex默認(rèn)的索引頁(yè)頁(yè)面Timeout網(wǎng)頁(yè)超時(shí)時(shí)間,默認(rèn)為300秒14.2知識(shí)準(zhǔn)備14.2.4虛擬主機(jī)簡(jiǎn)介4.基于域名的虛擬主機(jī)配置參數(shù)虛擬主機(jī)允許單個(gè)HTTPD服務(wù)器為多個(gè)域提供內(nèi)容。基于所連接到的服務(wù)器的IP地址、HTTP請(qǐng)求中客戶(hù)端請(qǐng)求的主機(jī)名(或者兩者的組合),HTTPD服務(wù)器可以使用不同的配置設(shè)置,包括不同的DocumentRoot。如果需要啟動(dòng)多個(gè)(虛擬)計(jì)算機(jī)來(lái)為眾多低流量站點(diǎn)提供內(nèi)容,則通常使用虛擬主機(jī)方案。虛擬主機(jī)使用<VirtualHost>塊來(lái)配置。通常不會(huì)在/etc/httpd/conf/httpd.conf中定義這些虛擬主機(jī)塊,而是在單獨(dú)的/etc/httpd/conf.d/的單獨(dú).conf文件中來(lái)定義。虛擬主機(jī)配置文件參數(shù)及作用如表所示。14.2知識(shí)準(zhǔn)備14.2.4虛擬主機(jī)簡(jiǎn)介參數(shù)作用<VirtualHost84:80><VirtualHost84:80>是塊的主標(biāo)記,172.31.141.184:80向httpd進(jìn)程表明,應(yīng)該為通過(guò)該IP/端口組合進(jìn)入的所有連接考慮此塊DocumentRoot/www/ip/web184DocumentRoot/www/ip/web184設(shè)置了DocumentRoot、虛擬主機(jī)對(duì)應(yīng)的文件系統(tǒng)路徑ServerName用于配置基于名稱(chēng)的虛擬主機(jī)。如果為相同的IP/端口組合聲明了多個(gè)<VirtualHost>塊,那么將使用ServerName與客戶(hù)端HTTP請(qǐng)求中發(fā)送的hostname:頭匹配的塊。單個(gè)<VirtualHost>塊中只能有正好零個(gè)或一個(gè)ServerName指令。如果需要將單個(gè)虛擬主機(jī)用于多個(gè)域名,則可以使用一個(gè)或多個(gè)ServerAlias語(yǔ)句ErrorLog"/var/log/httpd/184-error_log"設(shè)置與此虛擬主機(jī)相關(guān)的所有錯(cuò)誤消息日志文件的位置CustomLog"/var/log/httpd/184-access_log"設(shè)置與此虛擬主機(jī)相關(guān)的所有訪(fǎng)問(wèn)權(quán)限消息日志文件的位置<Directory/www/ip/web184>此塊提供了對(duì)進(jìn)一步定義的DocumentRoot的訪(fǎng)問(wèn)權(quán)限表
虛擬主機(jī)配置文件參數(shù)及作用14.2知識(shí)準(zhǔn)備14.2.5HTTPS簡(jiǎn)介1.HTTPS基本概念由于HTTP天生具有明文的特點(diǎn),整個(gè)傳輸過(guò)程完全透明,任何人都能夠在鏈路中截獲、修改或者偽造請(qǐng)求/響應(yīng)報(bào)文,因此該數(shù)據(jù)不具有可信性。HTTPS的默認(rèn)端口號(hào)為443,使用的請(qǐng)求/應(yīng)答模式、報(bào)文結(jié)構(gòu)、請(qǐng)求方法、URI、頭字段、連接管理等都完全沿用HTTP。HTTPS與HTTP最大的區(qū)別是它能夠鑒別危險(xiǎn)的網(wǎng)站,并且盡最大可能保證上網(wǎng)安全,防御黑客對(duì)信息的竊聽(tīng)、篡改、“釣魚(yú)”、偽造。HTTPS可以提供安全的秘密就在于HTTPS里的“S”,它把HTTP下層的傳輸協(xié)議由TCP/IP換成了SSL/TLS,由“HTTPoverTCP/IP”變成了“HTTPoverSSL/TLS”,讓HTTP運(yùn)行在安全的SSL/TLS協(xié)議上,收發(fā)報(bào)文不再使用SocketAPI,而是調(diào)用專(zhuān)門(mén)的安全接口。HTTP和HTTPS結(jié)構(gòu)如圖所示。圖
HTTP和HTTPS結(jié)構(gòu)14.2知識(shí)準(zhǔn)備14.2.5HTTPS簡(jiǎn)介2.SSL/TLS基本概念安全套接層(SecureSocketsLayer,SSL)工作在OSI模型中處于第5層(會(huì)話(huà)層),由Netscape(網(wǎng)景)公司于1994年發(fā)明,有v2和v3兩個(gè)版本(v1因?yàn)橛袊?yán)重的缺陷,所以從未公開(kāi)過(guò))。SSL發(fā)展到v3時(shí)已經(jīng)證明了它是一個(gè)非常好的安全通信協(xié)議,于是互聯(lián)網(wǎng)工程任務(wù)組(TheInternetEngineeringTaskForce,IETF)在1999年把它改名為傳輸層安全(TransportLayerSecurity,TLS)并正式標(biāo)準(zhǔn)化,版本號(hào)從1.0重新算起,所以TLS1.0實(shí)際上就是SSLv3.1。目前應(yīng)用得最廣泛的TLS版本是1.2和1.3,而之前的版本已經(jīng)被認(rèn)為是不安全的版本,各大瀏覽器在2020年左右停止支持。TLS由記錄協(xié)議、握手協(xié)議、警告協(xié)議、變更密碼規(guī)范協(xié)議、擴(kuò)展協(xié)議等幾個(gè)子協(xié)議組成,綜合使用了對(duì)稱(chēng)加密、非對(duì)稱(chēng)加密、身份認(rèn)證等許多密碼學(xué)前沿技術(shù)。瀏覽器和服務(wù)器在使用TLS建立連接時(shí)需要選擇一組恰當(dāng)?shù)募用芩惴▉?lái)實(shí)現(xiàn)安全通信,這些算法的組合被稱(chēng)為“密碼套件”。14.2知識(shí)準(zhǔn)備14.2.5HTTPS簡(jiǎn)介3.TLS證書(shū)基本概念一個(gè)證書(shū)包含多個(gè)部分,包括公鑰、服務(wù)器身份和證書(shū)頒發(fā)機(jī)構(gòu)的簽名。對(duì)應(yīng)的私鑰絕對(duì)不會(huì)公開(kāi),使用私鑰加密的任何數(shù)據(jù)只能通過(guò)公鑰解密,反之亦然。在初始“握手”期間,當(dāng)設(shè)置加密連接時(shí),客戶(hù)端和服務(wù)器同意一組由服務(wù)器和客戶(hù)端均支持的加密密碼,然后它們交換隨機(jī)數(shù)據(jù)的位??蛻?hù)端使用此隨機(jī)數(shù)據(jù)生成會(huì)話(huà)密鑰,這是一個(gè)用于更快速的對(duì)稱(chēng)加密的密鑰,該密鑰同時(shí)用于加密和解密。為確保此密鑰不被泄露,它被發(fā)送到使用服務(wù)器的公鑰(屬于服務(wù)器證書(shū))加密的服務(wù)器。TLS簡(jiǎn)化的“握手”過(guò)程如圖所示。圖
TLS簡(jiǎn)化的“握手”過(guò)程14.2知識(shí)準(zhǔn)備14.2.5HTTPS簡(jiǎn)介3.TLS證書(shū)基本概念一個(gè)證書(shū)包含多個(gè)部分,包括公鑰、服務(wù)器身份和證書(shū)頒發(fā)機(jī)構(gòu)的簽名。對(duì)應(yīng)的私鑰絕對(duì)不會(huì)公開(kāi),使用私鑰加密的任何數(shù)據(jù)只能通過(guò)公鑰解密,反之亦然。在初始“握手”期間,當(dāng)設(shè)置加密連接時(shí),客戶(hù)端和服務(wù)器同意一組由服務(wù)器和客戶(hù)端均支持的加密密碼,然后它們交換隨機(jī)數(shù)據(jù)的位??蛻?hù)端使用此隨機(jī)數(shù)據(jù)生成會(huì)話(huà)密鑰,這是一個(gè)用于更快速的對(duì)稱(chēng)加密的密鑰,該密鑰同時(shí)用于加密和解密。為確保此密鑰不被泄露,它被發(fā)送到使用服務(wù)器的公鑰(屬于服務(wù)器證書(shū))加密的服務(wù)器。TLS簡(jiǎn)化的“握手”過(guò)程如圖所示。圖
TLS簡(jiǎn)化的“握手”過(guò)程14.3項(xiàng)目實(shí)施14.3.1安裝Apache軟件安裝ApacheHTTPD軟件包。[root@server~]#yuminstall-yhttpd啟動(dòng)httpd服務(wù),并將其設(shè)置為開(kāi)機(jī)自啟動(dòng)。[root@server~]#systemctlstarthttpd[root@server~]#systemctlenablehttpd查看httpd服務(wù)狀態(tài)信息。[root@server~]#systemctlstatushttpd在網(wǎng)站默認(rèn)目錄創(chuàng)建網(wǎng)頁(yè)文件。[root@server~]#cd/var/www/html[root@server~]#echo“welcometoourwebsite”>index.html14.3項(xiàng)目實(shí)施14.3.1安裝Apache軟件添加防火墻規(guī)則,允許httpd服務(wù)使用80端口。[root@server~]#firewall-cmd--permanent--add-service=http[root@server~]#firewall-cmd--permanent--add-port=80/tcp[root@server~]#firewall-cmd--reload重啟httpd服務(wù),使配置參數(shù)立即生效。[root@server~]#systemctlrestarthttpd使用curl命令測(cè)試網(wǎng)頁(yè)能否正常訪(fǎng)問(wèn)。[root@server~]#curl14.3項(xiàng)目實(shí)施14.3.2配置Apache虛擬主機(jī)編輯虛擬主機(jī)配置文件/etc/httpd/conf.d/vhost.conf,設(shè)置虛擬站點(diǎn)參數(shù)。[root@server~]#vim/etc/httpd/conf.d/vhost.conf<VirtualHost84:80>DocumentRoot/www/ip/web184ServerNameErrorLog"/var/log/httpd/184-error_log"CustomLog"/var/log/httpd/184-access_log"combined<Directory/www/ip/web184>Requireallgranted</Directory></VirtualHost>14.3項(xiàng)目實(shí)施創(chuàng)建虛擬主機(jī)目錄。[root@www~]#mkdir/var/www/virtual.host在虛擬主機(jī)目錄下創(chuàng)建網(wǎng)頁(yè)文件。[root@www~]#vi/var/www/virtual.host/index.html<html><body><divstyle="width:100%;font-size:40px;font-weight:bold;text-align:center;">VirtualHostTestPage</div></body></html>編輯虛擬站點(diǎn)配置文件參數(shù)。[root@www~]#vi/etc/httpd/conf.d/vhost.conf#settingsfornewdomain<VirtualHost*:80>DocumentRoot/var/www/virtual.hostServerNamewww.virtual.hostServerAdminwebmaster@virtual.hostErrorLoglogs/virtual.host-error_logCustomLoglogs/virtual.host-access_logcombined</VirtualHost>14.3項(xiàng)目實(shí)施設(shè)置SELinux上下文規(guī)則。默認(rèn)的SELinux策略都會(huì)限制httpd服務(wù)可以讀取的上下文。Web服務(wù)器內(nèi)容的默認(rèn)上下文是httpd_sys_content_t。如果在標(biāo)準(zhǔn)位置/var/www/html以外的目錄提供內(nèi)容,例如/new/location,則必須設(shè)置SELinux上下文規(guī)則。[root@www~]#semanagefcontext-a-thttpd_sys_content_t'/var/www/virtual.host(/.*)?'[root@www~]#restorecon-vvFR/var/www/virtual.host'(/.*)?'重啟httpd服務(wù),使配置參數(shù)立即生效。root@www~]#systemctlrestarthttpd[root@www~]#systemctlreloadhttpd使用curl命令驗(yàn)證網(wǎng)頁(yè)是否能正常瀏覽。[root@www~]#curllocalhost[root@www~]#curl14.3項(xiàng)目實(shí)施14.3.3配置基于端口的虛擬主機(jī)創(chuàng)建網(wǎng)站數(shù)據(jù)目錄和網(wǎng)頁(yè)文件。[root@www~]#mkdir-p/home/wwwroot/6880[root@www~]#mkdir-p/home/wwwroot/6881[root@www~]#echo"port:6880">/home/wwwroot/6880/index.html[root@www~]#echo"port:6881">/home/wwwroot/6881/index.html編輯虛擬主機(jī)配置文件,配置基于端口的虛擬主機(jī)參數(shù)。[root@www~]#vim/etc/httpd/conf.d/vhost.conf<VirtualHost0:6880>DocumentRoot"/home/wwwroot/6880"ServerName
ErrorLog"/var/log/httpd/6880-error_log"CustomLog"/var/log/httpd/6880-access_log"common
<Directory/home/wwwroot/6880>
AllowOverrideNone
<requireall>
Requireallgranted
</requireall>
</Directory></VirtualHost><VirtualHost43:6881>DocumentRoot"/home/wwwroot/6881"ServerNameErrorLog"/var/log/httpd/6881_error_log"CustomLog"/var/log/httpd/6881_access_log"common<Directory/home/wwwroot/6881>AllowOverrideNone<Requireall>Requireallgranted</Requireall></Directory></VirtualHost>14.3項(xiàng)目實(shí)施在主配置文件中添加新的端口號(hào)。[root@www~]#vim/etc/httpd/conf/httpd.confListen80Listen6880Listen6881設(shè)置SELinux布爾值參數(shù)。ttpd服務(wù)默認(rèn)的端口是80,如果使用非80端口提供Web服務(wù),則在開(kāi)啟SELinux的情況下,需要設(shè)置端口的布爾值。使用semanage命令查詢(xún)并過(guò)濾出所有與HTTP相關(guān)的端口號(hào)。[root@www~]#semanageport-l|grephttphttp_cache_port_ttcp8080,8118,8123,10001-10010http_cache_port_tudp3130http_port_ttcp80,81,443,488,8008,8009,8443,9000pegasus_http_port_ttcp5988pegasus_https_port_ttcp5989開(kāi)啟6880和6881端口的SELinux布爾值。[root@www~]#semanageport-a-thttp_port_t-ptcp6880[root@www~]#semanageport-a-thttp_port_t-ptcp688114.3項(xiàng)目實(shí)施修改網(wǎng)站數(shù)據(jù)目錄的SELinux安全上下文,并立即生效。[root@server~]#semanagefcontext-a-thttpd_sys_content_t'/home/wwwroot/6880(/.*)?'[root@server~]#semanagefcontext-a-thttpd_sys_content_t'/home/wwwroot/6881(/.*)?'[root@server~]#restorecon-vvFR/home/wwwroot/6880/[root@server~]#restorecon-vvFR/home/wwwroot/6881/重啟httpd服務(wù),使配置參數(shù)立即生效。[root@www~]#systemctlrestarthttpd使用curl命令驗(yàn)證網(wǎng)頁(yè)能否正常瀏覽。[root@www~]#curl43:6880[root@www~]#curl43:688114.3項(xiàng)目實(shí)施14.3.4配置安全主機(jī)配置TLS證書(shū)。配置帶有TLS證書(shū)的虛擬機(jī),可以通過(guò)如下幾個(gè)步驟:獲?。ê灻┳C書(shū)、安裝ApacheHTTPD擴(kuò)展模塊以支持TLS、使用之前獲取的證書(shū)、將虛擬主機(jī)配置為使用TLS。獲取證書(shū)有兩個(gè)方法:創(chuàng)建自簽名證書(shū)(自簽名證書(shū)是由自己而不是由CA簽名的證書(shū))或者創(chuàng)建證書(shū)請(qǐng)求并讓某個(gè)知名CA對(duì)該請(qǐng)求進(jìn)行簽名,以使其成為一個(gè)證書(shū)。除了openssl工具,crypto-utils軟件包還包含一個(gè)名為genkey的使用程序,同時(shí)支持這兩種方法。使用openssl命令生成私鑰和證書(shū)文件。[root@www~]#opensslreq-x509-nodes-days365-newkeyrsa:2048-keyout/etc/pki/tls/private/private.key-out/etc/pki/tls/cert/apache-selfsigned.crt使用mod_ssl軟件包安裝擴(kuò)展模塊。ApacheHTTPD服務(wù)器需要安裝擴(kuò)展模塊才能激活TLS支持。在RHEL7版本中,可以使用mod_ssl軟件包來(lái)安裝此模塊。[root@www~]#yum-yinstalmod_ssl14.3項(xiàng)目實(shí)施配置ApacheHTTPD模塊。如果使用CA簽名的證書(shū),并且證書(shū)自身未嵌入簽名中使用的所有CA證書(shū)的副本,則服務(wù)器還將需要提供證書(shū)鏈,也就是簽名過(guò)程中串聯(lián)在一起的所有CA證書(shū)的副本,SSLCertificateChainFile指令用于標(biāo)識(shí)此類(lèi)文件。定義新的TLS加密虛擬主機(jī)時(shí),不需要復(fù)制ssl.conf文件的所有內(nèi)容。其中<VirtualHost>塊(包含SSLEngineOn指令和證書(shū)配置)需要嚴(yán)格設(shè)定。TLS配置參數(shù)及作用如表所示。參數(shù)作用Listen443此參數(shù)指示https進(jìn)程偵聽(tīng)端口443/tcp。第二個(gè)參數(shù)(https)是可選的,因?yàn)镠TTPS是端口443/tcp的默認(rèn)協(xié)議<VirtualHost_default_:443>此參數(shù)是端口443/tcp上概括虛擬主機(jī)的虛擬主機(jī)定義SSLEngineonSSLEngineon用于為此虛擬主機(jī)開(kāi)啟TLS支持SSLProtocolall-SSLv2-SSLv3此參數(shù)制定httpd服務(wù)與客戶(hù)機(jī)通信時(shí)希望使用的協(xié)議列表。為提高安全性,還應(yīng)禁用更舊且不安全的SSLv3協(xié)議SSLCipherSuiteHIGH:MEDIUM:!aNULL:!MD5此參數(shù)列出在與客戶(hù)端通信時(shí)httpd服務(wù)將要使用的加密密碼。密碼的選擇會(huì)對(duì)性能和安全性有很大影響SSLCertificateFileSSLCertificateFile告知讀取此虛擬主機(jī)的證書(shū)的位置SSLCertificateKeyFileSSLCertificateKeyFile告知讀取此虛擬主機(jī)的私鑰的位置。Httpd服務(wù)在特權(quán)被丟棄之前讀取所有私鑰,以便對(duì)私鑰的文件權(quán)限保持鎖定14.3項(xiàng)目實(shí)施編輯ssl.conf配置文件?;赥LS的Web服務(wù)器參數(shù)可以在ssl.conf文件中配置,也可以單獨(dú)創(chuàng)建虛擬主機(jī)配置文件。[root@www~]#vi/etc/httpd/conf.d/ssl.confDocumentRoot"/var/www/html"ServerName:443SSLCertificateFile/etc/pki/tls/cert/apache-selfsigned.crtSSLCertificateKeyFile/etc/pki/tls/private/privkey.key編輯虛擬站點(diǎn)配置文件。設(shè)置HTTP重定向參數(shù)后,當(dāng)客戶(hù)端請(qǐng)求HTTP訪(fǎng)問(wèn)時(shí)將自動(dòng)跳轉(zhuǎn)到HTTPS頁(yè)面。[root@www~]#vi/etc/httpd/conf.d/vhost.conf<VirtualHost*:80>DocumentRoot/var/www/htmlServerNameRewriteEngineOnRewriteCond%{HTTPS}offRewriteRule^(.*)$https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]</VirtualHost>14.3項(xiàng)目實(shí)施重啟httpd服務(wù)。配置完虛擬站點(diǎn)和HTTPS參數(shù)后,重啟httpd服務(wù),使配置參數(shù)立即生效。[root@www~]#systemctlrestarthttpd設(shè)置防火墻規(guī)則。HTTPS使用443端口,添加防火墻規(guī)則允許HTTPS訪(fǎng)問(wèn)。[root@www~]#firewall-cmd--add-service=https--permanent[root@www~]#firewall-cmd--reload驗(yàn)證HTTPS訪(fǎng)問(wèn)。使用curl命令驗(yàn)證客戶(hù)端是否可以通過(guò)HTTPS訪(fǎng)問(wèn)Web站點(diǎn)頁(yè)面。[root@www~]#curl14.3項(xiàng)目實(shí)施14.3.5安裝Nginx軟件使用dnf命令,安裝Nginx組件。[root@www~]#dnf-yinstallnginx啟動(dòng)并啟用nginx服務(wù)。[root@www~]#systemctlenable--nownginx編輯Nginx配置文件。[root@www~]#vi/etc/nginx/nginx.conf#line41:changetoyourhostnameserver_name;添加防火墻規(guī)則,允許nginxhttp服務(wù)使用80端口。[root@www~]#firewall-cmd--add-service=http--permanent[root@www~]#firewall-cmd--reload14.3項(xiàng)目實(shí)施14.3.6配置Nginx虛擬主機(jī)編輯Nginx配置文件,配置虛擬站點(diǎn)。[root@www~]#vi/etc/nginx/conf.d/virtual.host.conf#createnewserver{listen80;server_name;location/{root/usr/share/nginx/virtual.host;indexindex.htmlindex.htm;}}創(chuàng)建虛擬站點(diǎn)目錄并創(chuàng)建站點(diǎn)頁(yè)面。[root@www~]#mkdir/usr/share/nginx/virtual.host[root@www~]#vi/usr/share/nginx/virtual.host/index.html<html><body><divstyle="width:100%;font-size:40px;font-weight:bold;text-align:center;">NginxVirtualHostTestPage</div></body></html>14.3項(xiàng)目實(shí)施重啟nginx服務(wù),使配置參數(shù)立即生效。[root@www~]#systemctlrestartnginx使用curl命令驗(yàn)證能否訪(fǎng)問(wèn)站點(diǎn)頁(yè)面。[root@www~]#curllocalhost配置基于SSL/TLS的安全參數(shù)。[root@www~]#vi/etc/nginx/conf.d/ssl.conf#addtotheend#replaceservernameandpathofcertificatestoyourownoneserver{
listen443sslhttp2default_server;listen[::]:443sslhttp2default_server;server_name;root/usr/share/nginx/html;ssl_certificate"/etc/letsencrypt/live//fullchain.pem";ssl_certificate_key"/etc/letsencrypt/live//privkey.pem";ssl_session_cacheshared:SSL:1m;ssl_session_timeout10m;ssl_ciphersPROFILE=SYSTEM;ssl_prefer_server_cipherson;include/etc/nginx/default.d/*.conf;location/{}error_page404/404.html;location=/40x.html{}error_page500502503504/50x.html;location=/50x.html{}}14.3項(xiàng)目實(shí)施設(shè)置重定向,將HTTP自動(dòng)跳轉(zhuǎn)到HTTPS。[root@www~]#vi/etc/nginx/nginx.conf#addintothesectionoflistening80portserver{listen80default_server;listen[::]:80default_server;return301https://$host$request_uri;server_name;root/usr/share/nginx/html;重啟nginx服務(wù),使配置參數(shù)立即生效。[root@www~]#systemctlrestartnginx使用curl命令驗(yàn)證能否訪(fǎng)問(wèn)HTTPS頁(yè)面。[root@www~]#curl添加防火墻規(guī)則,允許https服務(wù)使用443端口。[root@www~]#firewall-cmd--add-service=https--permanent[root@www~]#firewall-cmd–reload14.3項(xiàng)目實(shí)施14.3.7基于LAMP環(huán)境部署WordPress博客程序1.配置LAMPYUM倉(cāng)庫(kù)Remi存儲(chǔ)庫(kù)是RHEL的第三方存儲(chǔ)庫(kù),用于維護(hù)最新版本的PHP軟件包,其中包含大量的庫(kù)、擴(kuò)展和工具。通過(guò)Remi存儲(chǔ)庫(kù)可以簡(jiǎn)單快捷地安裝和部署LAMP環(huán)境。下面在CentOS7上安裝并啟用Remi存儲(chǔ)庫(kù)。[root@www~]#yum-yinstall/enterprise/remi-release-7.rpm使用php7.3存儲(chǔ)庫(kù),禁用php5.4存儲(chǔ)庫(kù)。[root@www~]#yuminstallyum-utils[root@www~]#yum-config-manager--disableremi-php54[root@www~]#yum-config-manager--enableremi-php732.安裝LAMP組件安裝與LAMP堆棧相關(guān)的所有必需包,包括ApacheHTTPD、MariaDB數(shù)據(jù)庫(kù)、PHP等組件。[root@www~]#yuminstallhttpdmariadbmariadb-serverphpphp-commonphp-mysqlphp-gdphp-xmlphp-mbstringphp-mcrypt-y14.3項(xiàng)目實(shí)施14.3.7基于LAMP環(huán)境部署WordPress博客程序mysql_secure_installation是mysql數(shù)據(jù)庫(kù)初始化工具,按照屏幕上的說(shuō)明回答與MariaDB服務(wù)器安全性相關(guān)的問(wèn)題,可以設(shè)置root密碼等信息。[root@www~]#systemctlstartmariadb[root@www~]#systemctlenablemariadb[root@www~]#mysql_secure_installation3.啟動(dòng)并初始化MariaDB數(shù)據(jù)庫(kù)4.啟動(dòng)并啟用httpd服務(wù)使用systemctl命令啟動(dòng)httpd服務(wù),并設(shè)置為開(kāi)機(jī)自啟動(dòng)。[root@www~]#systemctlstarthttpd[root@www~]#systemc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 2675-2024石斛
- 五年級(jí)下冊(cè)聽(tīng)評(píng)課記錄表
- 魯教版地理七年級(jí)下冊(cè)7.1《自然特征與農(nóng)業(yè)》聽(tīng)課評(píng)課記錄
- 生態(tài)修復(fù)資源共享合同(2篇)
- 甲乙方協(xié)議書(shū)(2篇)
- 2025年硫酸黏菌素類(lèi)產(chǎn)品合作協(xié)議書(shū)
- 七年級(jí)數(shù)學(xué)上冊(cè)第29課時(shí)和、差、倍、分問(wèn)題聽(tīng)評(píng)課記錄新湘教版
- 新版華東師大版八年級(jí)數(shù)學(xué)下冊(cè)《17.3.2一次函數(shù)的圖象1》聽(tīng)評(píng)課記錄21
- 統(tǒng)編版初中語(yǔ)文八年級(jí)下冊(cè)第五課《大自然的語(yǔ)言》聽(tīng)評(píng)課記錄
- 七年級(jí)(人教版)集體備課聽(tīng)評(píng)課記錄:1.2.1《有理數(shù)》
- 機(jī)動(dòng)車(chē)商業(yè)保險(xiǎn)條款(2020版)
- 《大小比較》(說(shuō)課課件)二年級(jí)下冊(cè)數(shù)學(xué)西師大版
- 張五常子女和婚姻合約中的產(chǎn)權(quán)執(zhí)行問(wèn)題
- 口腔粘膜常見(jiàn)疾病
- 校園安全派出所
- 餐廳值班管理培訓(xùn)
- XXXX無(wú)線(xiàn)維護(hù)崗位認(rèn)證教材故障處理思路及案例分析
- 酒店春節(jié)營(yíng)銷(xiāo)方案
- 營(yíng)銷(xiāo)管理方案中的定價(jià)策略與盈利模式
- 2024年西寧城市職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 2024年臨沂市高三一模(學(xué)業(yè)水平等級(jí)考試模擬試題)物理試卷
評(píng)論
0/150
提交評(píng)論