目錄:
(一)了解Apache的基本配置
(二)配置動(dòng)態(tài)頁(yè)面:CGI、WSGI、SSI
(三)搭建一個(gè)社區(qū)動(dòng)力論壇
(四)配置虛擬主機(jī)
(五)配置HTTPS
Apache是世界使用排名第一的Web服務(wù)器軟件,它是Apache軟件基金會(huì)的一個(gè)開(kāi)放源碼的網(wǎng)頁(yè)服務(wù)器。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上,由于其跨平臺(tái)和安全性被廣泛使用,是最流行的Web服務(wù)器軟件之一。它快速、可靠并且可通過(guò)簡(jiǎn)單的API擴(kuò)充,將Perl/Python等解釋器編譯到服務(wù)器中。
本來(lái)它只是用于小型或?qū)嶒?yàn)Internet網(wǎng)絡(luò),后來(lái)逐步擴(kuò)充到各種Unix系統(tǒng)中,尤其對(duì)Linux的支持相當(dāng)完美。Apache有多種產(chǎn)品,可以支持SSL技術(shù),支持多個(gè)虛擬主機(jī)。Apache是以進(jìn)程為基礎(chǔ)的結(jié)構(gòu),進(jìn)程要比線(xiàn)程消耗更多的系統(tǒng)開(kāi)支,不太適合于多處理器環(huán)境,因此在一個(gè)Apache Web站點(diǎn)擴(kuò)容時(shí),通常是增加服務(wù)器或擴(kuò)充集群節(jié)點(diǎn)而不是增加處理器。到目前為止Apache仍然是世界上用的最多的Web服務(wù)器,市場(chǎng)占有率達(dá)60%左右。世界上很多著名的網(wǎng)站如Amazon、Yahoo!、W3Consortium、Financial Times等都是Apache的產(chǎn)物,它的成功之處主要在于它的源代碼開(kāi)放、有一支開(kāi)放的開(kāi)發(fā)隊(duì)伍、支持跨平臺(tái)的應(yīng)用(可以運(yùn)行在幾乎所有的Unix、Windows、Linux系統(tǒng)平臺(tái)之上)以及它的可移植性等方面。
(一)了解Apache的基本配置
平常我們通過(guò)瀏覽器瀏覽網(wǎng)頁(yè)的時(shí)候,其實(shí)訪(fǎng)問(wèn)的就是一個(gè)Web服務(wù)器,搭建了Web服務(wù)器后,客戶(hù)端通過(guò)瀏覽器訪(fǎng)問(wèn)時(shí)之間使用的是http協(xié)議(HyperText Transfer Protocol)即超文本傳輸協(xié)議,它所使用的端口是80。
(1.1)我們?cè)趘ms001主機(jī)上搭建一個(gè)Web服務(wù)器,首先使用yum在vms001主機(jī)上安裝相關(guān)的軟件包。
(1.2)接著將服務(wù)重啟一下,并設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng),由于防火墻服務(wù)是開(kāi)啟的,所以還需要設(shè)置防火墻允許通過(guò)http和https請(qǐng)求。最后進(jìn)入/etc/httpd/conf/目錄下,編輯httpd.conf文件。
(1.3)包含的文件為conf.modules.d/目錄下的所有后綴為conf的配置文件,這個(gè)目錄的指向并不清晰,其實(shí)默認(rèn)情況下指的就是/etc/httpd/conf.modules.d/目錄。
(1.4)在httpd.conf文件中的Listen端口參數(shù)是可以根據(jù)需要進(jìn)行添加的,但是要記得修改端口的上下文。可以參考/etc/ssh/目錄中的sshd_config配置文件(圖1-4至圖1-7)
(1.5)User和Group設(shè)置的都是apache,表示httpd進(jìn)程設(shè)置的屬主和屬組為apache,其中ServerAdmin表示設(shè)置的是管理員的郵箱地址,在系統(tǒng)出問(wèn)題時(shí),會(huì)發(fā)送郵件報(bào)告給管理員。
(1.6)當(dāng)我們的服務(wù)器上有多個(gè)站點(diǎn)時(shí),例如www.a.com 和www.b.com ,這個(gè)時(shí)候就需要設(shè)置對(duì)應(yīng)的ServerName,因?yàn)閮蓚€(gè)站點(diǎn)都是使用同一個(gè)IP地址,所以只有設(shè)置好了對(duì)應(yīng)的ServerName條目,服務(wù)器才可以正常的外部客戶(hù)端的訪(fǎng)問(wèn)做區(qū)分。
(1.7)DocumentRoot主要指明的是網(wǎng)頁(yè)文件默認(rèn)存放的文件路徑,一般我們的主頁(yè)都是放在/var/www/html/目錄下。一般在/var/www/html/目錄下是沒(méi)有文件存在的,所以當(dāng)輸入Web服務(wù)的IP地址時(shí),默認(rèn)看到的是Apache的測(cè)試頁(yè)。
(1.8)如果在/var/www/目錄中創(chuàng)建了子目錄,但是沒(méi)有為子目錄單獨(dú)設(shè)置權(quán)限,則子目錄會(huì)繼承上層目錄/var/www/目錄中的權(quán)限。
(1.9)我們?cè)?var/www/html/目錄下創(chuàng)建一個(gè)xx目錄,并創(chuàng)建5個(gè)html文件,在/etc/httpd/conf/目錄下的httpd.conf文件中給xx目錄也創(chuàng)建一個(gè)單獨(dú)的權(quán)限屬性設(shè)置。注意Options選項(xiàng)有Indexes,表示如果沒(méi)有index.html主頁(yè)則會(huì)將xx目錄下的所有文件以索引的方式顯示出來(lái),接著將服務(wù)重啟一次# systemctl restart httpd.service,當(dāng)然Indexes選項(xiàng)只對(duì)/var/www/html/目錄往下目錄有效,對(duì)/var/www/html/目錄本身無(wú)效,因?yàn)槿绻?var/www/html/目錄下沒(méi)有index.html主頁(yè)則會(huì)顯示測(cè)試頁(yè)的信息。
(1.10)在Options目錄下的FollowSymLinks選項(xiàng)表示允許顯示/var/www/html/xx/目錄下軟鏈接到其他目錄位置的文件,此時(shí)我們創(chuàng)建一個(gè)www軟鏈接到/www目錄,那么在瀏覽器輸入http://192.168.26.101/xx/www/ 時(shí),就會(huì)鏈接到/www目錄中的index.html文件。
(1.11)AllowOverride參數(shù)表示是否允許此目錄里的.htaccess這個(gè)文件生效,在此處為了進(jìn)行驗(yàn)證效果我們將默認(rèn)的none設(shè)置為authconfig。在/var/www/html/xx/目錄中創(chuàng)建的一個(gè)配置文件.htaccess文件中進(jìn)行編輯,并創(chuàng)建對(duì)應(yīng)的密碼文件.htpasswd,將服務(wù)重啟后,發(fā)現(xiàn)登錄/xx/目錄便需要進(jìn)行密碼認(rèn)證了。
(1.12)在httpd.conf配置文件中Directory目錄下的Require參數(shù)一般有如下的
Require all denied:拒絕所有客戶(hù)端訪(fǎng)問(wèn)
Require all granted:允許所有客戶(hù)端訪(fǎng)問(wèn)
Require ip 192.168.26.100 192.168.26.130:允許某一個(gè)網(wǎng)段IP地址訪(fǎng)問(wèn)
Require local:只允許本機(jī)訪(fǎng)問(wèn)
(1.13)在httpd.conf配置文件中IfModule目錄下的DirectoryIndex參數(shù)設(shè)置的是默認(rèn)主頁(yè),一般值為index.html,如果沒(méi)有默認(rèn)主頁(yè)則會(huì)顯示目錄中的所有索引信息。而在Files目錄下的Require參數(shù)則是設(shè)置.ht后綴的隱藏文件的權(quán)限,例如.htaccess默認(rèn)權(quán)限是拒絕。
(1.14)ErrorLog錯(cuò)誤日志默認(rèn)是存放在ServerRoot下的logs/error_log當(dāng)中,我們知道ServerRoot的默認(rèn)值是/etc/httpd目錄。其中/etc/httpd/logs/目錄中的內(nèi)容和/var/log/httpd/目錄中的信息一致。
(1.15)Alias參數(shù)主要作用是設(shè)置別名,可以任意的設(shè)置一個(gè)訪(fǎng)問(wèn)的名稱(chēng),例如/hello,同時(shí)別名前后兩個(gè)要一致,如果有"/",則兩個(gè)都要加"/";如果沒(méi)有"/",則兩個(gè)都不要加。此處都沒(méi)有加(圖1-33)。設(shè)置完Alias信息后還要對(duì)創(chuàng)建的目錄設(shè)置Directory信息,此處直接填寫(xiě)創(chuàng)建的目錄信息/zz即可,會(huì)自動(dòng)應(yīng)用到下面的所有子目錄。這種應(yīng)用很常見(jiàn),例如我們安裝Zabbix監(jiān)控的時(shí)候,訪(fǎng)問(wèn)系統(tǒng)就是使用這種方式。
(二)配置動(dòng)態(tài)頁(yè)面:CGI、WSGI、SSI
(2.1)公共網(wǎng)關(guān)接口(Common Gateway Interface,CGI)是Web 服務(wù)器運(yùn)行時(shí)外部程序的規(guī)范。首先我們創(chuàng)建一個(gè)CGI頁(yè)面,進(jìn)入到/var/www/cgi-bin/目錄下創(chuàng)建一個(gè)aa.pl的perl腳本文件
(2.2)除了寫(xiě)Perl腳本實(shí)現(xiàn)功能,我們也可以使用shell腳本實(shí)現(xiàn),我們?cè)?var/www/cgi-bin目錄下創(chuàng)建一個(gè)aa.sh的腳本文件,也是可以正常的在頁(yè)面顯示的。
(2.3)WSGI是Web Server Gateway Interface的縮寫(xiě)。以層的角度來(lái)看,WSGI所在層的位置低于CGI。是用python實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面的一種功能,比如openstack dashboard。使用WSGI功能是需要先安裝相關(guān)的軟件包的。
(2.4)服務(wù)器端包含 SSI,是英文 Server Side Includes的簡(jiǎn)寫(xiě)。SSI是一種可以指揮服務(wù)器動(dòng)態(tài)聲稱(chēng)網(wǎng)頁(yè)內(nèi)容的HTML指令。我們?cè)?var/www/html/xx/目錄下創(chuàng)建一個(gè)index.html的主頁(yè)(圖1-50),在httpd.conf的配置文件中添加Includes選項(xiàng),并將主頁(yè)后綴有index.html修改為index.shtml,便可以實(shí)現(xiàn)SSI的頁(yè)面訪(fǎng)問(wèn)了。
(2.5)我們也可以將SSI打印時(shí)間的部分更換為腳本文件進(jìn)行顯示。
(2.6)如果我們希望訪(fǎng)問(wèn)http://192.168.26.101/xx/ 的時(shí)候能自動(dòng)跳轉(zhuǎn)到http://192.168.26.101/xx/index.shtml 下面,則可以使用地址的重寫(xiě)方式在httpd.conf 配置文件中配置解決。
(三)搭建一個(gè)社區(qū)動(dòng)力論壇
(3.1)我們創(chuàng)建一個(gè)社區(qū)動(dòng)力的論壇,首先在根目錄下創(chuàng)建一個(gè)/bbs目錄,并在/xx目錄下創(chuàng)建一個(gè)Discuz目錄,并將論壇程序包Discuz!X3.2拷貝到Discuz目錄中。
(3.2)接著在/etc/httpd/conf目錄下的httpd.conf配置文件中添加別名和目錄設(shè)置的配置信息。
(3.3)由于系統(tǒng)中是啟用了SELinux的,所以需要修改一下所設(shè)置目錄的上下文信息,并將httpd服務(wù)重啟一下。
(3.4)接著我們進(jìn)入數(shù)據(jù)庫(kù)中設(shè)置root的登錄數(shù)據(jù)庫(kù)的密碼為redhat
(3.5)在Mariadb數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)名為blog,創(chuàng)建一個(gè)用戶(hù)bob,登錄blog數(shù)據(jù)庫(kù)的密碼是redhat,而且對(duì)數(shù)據(jù)庫(kù)有所有的操作權(quán)限。
(3.6)此時(shí)在瀏覽器輸入http://192.168.26.101/bbs ,便可以正常的進(jìn)入到了Discuz社區(qū)動(dòng)力的安裝界面。
(3.7)我們安裝時(shí)先臨時(shí)設(shè)置/bbs目錄的權(quán)限為777,并停止一下SELinux。
(3.8)在安裝數(shù)據(jù)庫(kù)界面設(shè)置好對(duì)應(yīng)的數(shù)據(jù)庫(kù)名稱(chēng)和對(duì)應(yīng)的用戶(hù)密碼信息,這樣我們的論壇網(wǎng)站便搭建了起來(lái)。
(3.9)我們輸入在安裝向?qū)гO(shè)置的用戶(hù)名和密碼信息,便可以進(jìn)入管理員的登錄界面了,并進(jìn)行相關(guān)的版塊設(shè)置。
(3.10)此時(shí)我們的社區(qū)動(dòng)力論壇便可以正常的提供服務(wù)了。
(四)配置虛擬主機(jī)
(4.1)在/etc/httpd/conf/目錄下的httpd.conf配置文件中的IncludeOptional參數(shù)表示將/etc/httpd/conf.d/目錄下的所有配置文件全部都會(huì)加載進(jìn)來(lái)。
(4.2)虛擬主機(jī)指的是在同一臺(tái)服務(wù)器上搭建多個(gè)站點(diǎn),例如在server端上有兩個(gè)主機(jī)名www.a.com和www.b.com ,它們解析出的地址都是網(wǎng)卡eth0端口的1.1.1.1的IP地址。接著我們從客戶(hù)端PC發(fā)出向www.a.com 的主機(jī)地址的請(qǐng)求,雖然訪(fǎng)問(wèn)的IP地址都是1.1.1.1,但在PC端發(fā)出的報(bào)文中數(shù)據(jù)包包頭會(huì)標(biāo)記自己需要訪(fǎng)問(wèn)的是www.a.com 的信息。此時(shí)在服務(wù)器端會(huì)通過(guò)httpd.conf配置文件中的ServerName字段的設(shè)置進(jìn)行標(biāo)記,通過(guò)定義不同的主機(jī)名來(lái)實(shí)現(xiàn)區(qū)分不同的站點(diǎn)。配置虛擬主機(jī)常見(jiàn)的有三種配置方式:1、基于主機(jī)名的虛擬主機(jī)(4.3至4.9);2、基于IP地址的虛擬主機(jī)(4.10至4.12);3、基于端口的虛擬主機(jī)。
(4.3)接著我們?cè)?etc/unbound/local.d/目錄中創(chuàng)建一個(gè)baidu.conf的配置文件。
(4.4)我們使用vms002主機(jī)進(jìn)行測(cè)試,將vms002主機(jī)的DNS服務(wù)器設(shè)置為192.168.26.101,發(fā)現(xiàn)此時(shí)訪(fǎng)問(wèn)不同的域名中的主機(jī)解析的IP地址是一致的。
(4.5)我們將/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf的模板文件拷貝到conf.d/目錄下并命名為vhost.conf文件名。
(4.6)在/etc/httpd/conf.d/目錄中的vhost.conf配置文件中填寫(xiě)如下的配置信息。
(4.7)在vhost.conf配置文件中,我們需要添加對(duì)虛擬主機(jī)/baidu目錄的設(shè)置,這樣就可以正常的訪(fǎng)問(wèn)vms001.baidu.com虛擬主機(jī)地址了。
(4.8)由于配置了虛擬主機(jī),所以如果在/etc/httpd/conf.d/目錄下的vhost.conf配置文件中填寫(xiě)了虛擬主機(jī)的地址,那么就一定要將原始vms001.example.com主機(jī)的配置信息也寫(xiě)入vhost.conf配置文件中。
(4.9)此時(shí)我們通過(guò)vms002主機(jī)訪(fǎng)問(wèn)vms001.example.com主機(jī)和vms001.baidu.com主機(jī)都能夠訪(fǎng)問(wèn)到對(duì)應(yīng)域名的主頁(yè)信息了。這個(gè)就是我們基于主機(jī)名的虛擬主機(jī)的配置。
(4.10)然后我們配置基于IP地址的虛擬主機(jī)配置。
# ip addr show dev eno16777728
# ip addr add 192.168.26.110/24 dev eno16777728
# ip addr show dev eno16777728
(4.10)接著我們?cè)?etc/unbound/local.d/目錄下的baidu.conf配置文件中修改主機(jī)對(duì)應(yīng)的IP地址信息。
(4.11)我們進(jìn)入到/etc/httpd/conf.d/目錄中,在vhost.conf配置文件中,將不同的虛擬主機(jī)的IP地址填寫(xiě)到對(duì)應(yīng)的VirtualHost參數(shù)位置。
(4.12)此時(shí)在vms002主機(jī)上訪(fǎng)問(wèn)vms001.baidu.com虛擬主機(jī)的地址是可以正常的訪(fǎng)問(wèn)的,而且訪(fǎng)問(wèn)vms001.example.com虛擬主機(jī)的地址也是可以正常的訪(fǎng)問(wèn)的。
(五)配置HTTPS
通常我們?cè)L問(wèn)一個(gè)站點(diǎn)的時(shí)候,比如瀏覽網(wǎng)頁(yè)瀏覽搜狐新聞的時(shí)候使用的是HTTP協(xié)議,所有的內(nèi)容都是以明文的方式傳輸?shù)?,由于客?hù)瀏覽的新聞都是公開(kāi)的,所以傳輸數(shù)據(jù)并沒(méi)有很強(qiáng)的安全性傳輸?shù)男枨蟆5袝r(shí)候例如我們?cè)谠L(fǎng)問(wèn)支付寶時(shí),由于會(huì)涉及到用戶(hù)名密碼以及帳戶(hù)資金操作等情況,此時(shí)我們是不希望這些信息在互聯(lián)網(wǎng)中以明文的方式傳輸,否則會(huì)對(duì)我們的信息造成一定的安全隱患。所以此時(shí)我們應(yīng)該使用HTTPS協(xié)議,即超文本傳輸安全協(xié)議(Hypertext Transfer Protocol Secure)來(lái)進(jìn)行通信,https是使用SSL對(duì)傳輸層進(jìn)行加密,即https=http+tls/ssl。
一般來(lái)說(shuō)加密有三種類(lèi)型,即對(duì)稱(chēng)加密、非對(duì)稱(chēng)加密和哈希函數(shù)。對(duì)于對(duì)稱(chēng)加密來(lái)說(shuō),使用的密鑰是相同的,加密是使用什么密鑰,解密也就需要使用一致的密鑰。客戶(hù)端A(PC端)使用密鑰123對(duì)數(shù)據(jù)進(jìn)行加密后將數(shù)據(jù)傳遞給客戶(hù)端B(支付寶錢(qián)包),客戶(hù)端B接收到數(shù)據(jù)后也要使用密鑰123才可以對(duì)數(shù)據(jù)進(jìn)行解密,但是客戶(hù)端B應(yīng)該怎樣獲取到客戶(hù)端A使用的密鑰123呢?通過(guò)互聯(lián)網(wǎng)郵件明文傳輸可能會(huì)被Hacker竊取,通過(guò)電話(huà)告知也可能會(huì)被竊聽(tīng),對(duì)稱(chēng)加密算法的難點(diǎn)在于不知道怎樣將密鑰安全的傳輸。對(duì)稱(chēng)加密算法的優(yōu)點(diǎn):速度快且安全;對(duì)稱(chēng)加密算法的缺點(diǎn):無(wú)法保證安全的傳輸密鑰。常見(jiàn)的AES,DES算法都是屬于對(duì)稱(chēng)加密算法。
非對(duì)稱(chēng)加密主要是包含公鑰和私鑰密鑰對(duì),其中公鑰是可以公開(kāi)明文傳輸?shù)模借€是非公開(kāi)的需要用戶(hù)獨(dú)立保存的。非對(duì)稱(chēng)加密通常是有兩類(lèi)作用,包括數(shù)據(jù)加密和數(shù)字簽名。其中數(shù)據(jù)加密是使用公鑰加密,私鑰解密。例如客戶(hù)端A(PC端)向客戶(hù)端B(支付寶錢(qián)包)傳輸數(shù)據(jù),客戶(hù)端B有一個(gè)公鑰和一個(gè)私鑰,此時(shí)客戶(hù)端A獲取客戶(hù)端B的公鑰B公將數(shù)據(jù)進(jìn)行加密,加密完成后在網(wǎng)絡(luò)中明文傳輸是沒(méi)有關(guān)系的,此時(shí)客戶(hù)端B獲取到加密的數(shù)據(jù)后,使用自己的私鑰B私進(jìn)行解密。
所以常見(jiàn)的做法是將對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密結(jié)合起來(lái)使用,客戶(hù)端A向客戶(hù)端B傳輸數(shù)據(jù),客戶(hù)端A使用密鑰123對(duì)數(shù)據(jù)加密后將數(shù)據(jù)以明文的方式在互聯(lián)網(wǎng)傳輸給客戶(hù)端B,接著客戶(hù)端A獲取到客戶(hù)端B的公鑰B公,將密鑰123使用B公加密也傳輸給客戶(hù)端B,此時(shí)客戶(hù)端B使用B私對(duì)密鑰123進(jìn)行解密,在使用解密后的密鑰123解密客戶(hù)端A傳輸過(guò)來(lái)的加密信息,從而完成了互聯(lián)網(wǎng)安全傳輸。
有時(shí)候在網(wǎng)絡(luò)傳輸?shù)倪^(guò)程中,客戶(hù)端A(PC端)向客戶(hù)端B(支付寶錢(qián)包)傳輸信息,當(dāng)客戶(hù)端B將自己的公鑰B公發(fā)送給客戶(hù)端A的時(shí)候,可能遇到客戶(hù)端C(Hacker)將客戶(hù)端B的公鑰截取了,客戶(hù)端C將自己的公鑰C公偽裝成B公并發(fā)送給客戶(hù)端A,客戶(hù)端A便開(kāi)始用C公加密數(shù)據(jù)并發(fā)送給客戶(hù)端C,客戶(hù)端C再使用C私解密數(shù)據(jù),獲得了機(jī)密文件,接著客戶(hù)端C再使用客戶(hù)端B的公鑰B公將獲取到的文件加密傳輸給客戶(hù)端B。這個(gè)時(shí)候客戶(hù)端A與客戶(hù)端B感覺(jué)是直接通信的,卻并不知道中間還有客戶(hù)端C的Hacker存在。
因?yàn)槲覀儫o(wú)法保證客戶(hù)端A在接收到客戶(hù)端B的公鑰B公一定是客戶(hù)端B的,所以此時(shí)可以用數(shù)字簽名解決這個(gè)問(wèn)題,數(shù)字簽名是使用私鑰加密、公鑰解密,例如客戶(hù)端A首先使用哈希函數(shù)對(duì)傳輸?shù)奈募a(chǎn)生一個(gè)哈希碼,接著客戶(hù)端A使用私鑰A私對(duì)生成的哈希碼加密,然后客戶(hù)端A將原始數(shù)據(jù)和A私生成的哈希碼報(bào)文一起傳遞給客戶(hù)端B,客戶(hù)端B接收到信息后,會(huì)使用A的公鑰A公進(jìn)行解密,得到一個(gè)哈希碼,接著客戶(hù)端B使用哈希函數(shù)對(duì)原始傳輸?shù)奈募梢粋€(gè)新的哈希碼,并和A公解密得到的哈希碼進(jìn)行比較,如果兩個(gè)哈希碼相同,表示數(shù)據(jù)在傳輸過(guò)程中沒(méi)有被修改過(guò)。
由于A(yíng)客戶(hù)端可以生成任意多個(gè)密鑰對(duì),所以此時(shí)遇到的問(wèn)題是我們沒(méi)有辦法證明A私和客戶(hù)端A之間的必然聯(lián)系,所以在互聯(lián)網(wǎng)中存在著一個(gè)機(jī)構(gòu)CA即證書(shū)授權(quán)中心(certificate authority,CA),它作為電子商務(wù)交易中受信任的第三方,承擔(dān)公鑰體系中公鑰的合法性檢驗(yàn)的責(zé)任。CA中心為每個(gè)使用公開(kāi)密鑰的用戶(hù)發(fā)放一個(gè)數(shù)字證書(shū),數(shù)字證書(shū)的作用是證明證書(shū)中列出的用戶(hù)合法擁有整數(shù)中列出的公開(kāi)密鑰。CA機(jī)構(gòu)的數(shù)字簽名使得Hacker不能偽造和篡改證書(shū)。它負(fù)責(zé)生產(chǎn),分配并管理所有參與網(wǎng)上交易的個(gè)體所需的數(shù)字證書(shū),因此是安全電子交易的核心環(huán)節(jié)。證書(shū)授權(quán)中心(CA)是管理和簽發(fā)安全憑證和信息安全密鑰的網(wǎng)絡(luò)機(jī)構(gòu)。注冊(cè)中心(RA)對(duì)申請(qǐng)者所提供的數(shù)字證書(shū)進(jìn)行驗(yàn)證,CA驗(yàn)證后簽發(fā)證書(shū)。內(nèi)容包括申請(qǐng)者的個(gè)人信息,公共密鑰和認(rèn)證有效期,作為網(wǎng)上身份證明的依據(jù)。例如在網(wǎng)絡(luò)交易中,支付寶會(huì)自己生成一對(duì)密鑰包括公鑰和私鑰,支付寶會(huì)用私鑰生成一個(gè)csr證書(shū)請(qǐng)求文件,并發(fā)送給CA驗(yàn)證,CA通過(guò)審核后會(huì)頒發(fā)一個(gè)證書(shū)給支付寶,此時(shí)這個(gè)證書(shū)就是公鑰,是CA做過(guò)了數(shù)字簽名認(rèn)證后的支付寶的公鑰。此時(shí)客戶(hù)端準(zhǔn)備和支付寶進(jìn)行通信,它們之間協(xié)商是使用對(duì)稱(chēng)加密算法來(lái)進(jìn)行通信的,接著客戶(hù)端PC使用自己生成的對(duì)稱(chēng)加密算法的密鑰123加密數(shù)據(jù)并發(fā)送給支付寶,但是此時(shí)支付寶并不知道加密的密鑰123具體是什么,所以也無(wú)法解密數(shù)據(jù)。此時(shí)支付寶會(huì)將從CA頒發(fā)的證書(shū)發(fā)送給客戶(hù)端PC,客戶(hù)端PC得到的證書(shū)文件本質(zhì)就是支付寶的公鑰,客戶(hù)端PC得到的支付寶公鑰上有CA機(jī)構(gòu)的數(shù)字簽名,而在瀏覽器中一般都內(nèi)置了常見(jiàn)CA的公鑰文件,我們知道數(shù)字簽名是私鑰加密、公鑰解密,此時(shí)客戶(hù)端的瀏覽器使用使用內(nèi)置的CA公鑰認(rèn)證證書(shū),如果認(rèn)證通過(guò)說(shuō)明這個(gè)確實(shí)是來(lái)自支付寶的公鑰文件。而數(shù)據(jù)的非對(duì)稱(chēng)加密是使用公鑰加密,私鑰解密,此時(shí)瀏覽器將密鑰123使用支付寶的公鑰加密后傳輸給支付寶,支付寶獲得后使用自己的私鑰解密數(shù)據(jù)得到了密鑰123,最后使用密鑰123解密對(duì)稱(chēng)加密的文件從而獲得客戶(hù)端PC傳遞過(guò)來(lái)的數(shù)據(jù)信息。
(5.1)進(jìn)入到/etc/httpd/conf目錄下,首先創(chuàng)建一個(gè)支付寶端的私鑰證書(shū)client.key,接著創(chuàng)建一個(gè)自簽名的支付寶的公鑰證書(shū)client.pem,最后再創(chuàng)建一個(gè)CA的私鑰client.ca
(5.2)進(jìn)入到/etc/httpd/conf.d/目錄中,編輯ssl.conf配置文件。配置完成后將Web服務(wù)重啟一下。
(5.3)在vms002主機(jī)上測(cè)試https://www.baidu.com/ 的訪(fǎng)問(wèn)情況。
(5.4)記住需要在/etc/httpd/conf.d/目錄下的vhost.conf和ssl.conf文件中都開(kāi)啟SSL的驗(yàn)證,并配置好密鑰信息,這樣就可以使用https訪(fǎng)問(wèn)不同的虛擬主機(jī)了。
(5.5)接下來(lái)使用基于IP地址的虛擬主機(jī)實(shí)驗(yàn)一次,https://vms001.baidu.com 可以正常的訪(fǎng)問(wèn),https://vms001.example.com 不能正常訪(fǎng)問(wèn)
—————— 本文至此結(jié)束,感謝閱讀 ——————
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。