Web服務器的搭建和站點安全的實現

環境:centos-6.4-x86_64
html

軟件:httpd-2.2.15-26.el6.centos.x86_6linux

Web服務器的實現,在windows下有iis,在linux/unix有apache和nginx。咱們這裏先來說解一下apache也就是httpd來實現web服務。nginx

再來介紹一下httpd和nginx的區別。httpd穩定性高,可是併發數少。而nginx的併發數多可是穩定性比較差。httpd在運行時會產生一個父進程,而後由父進程派發子進程,佔用資源比較多。nginx運行是靠線程,佔用資源少。web

安裝httpd,而後經過rpm –ql查看httpd的目錄結構。apache

wKiom1LaOTHA-iXMAAGpxlnlKQU842.jpg

看圖中有一個/etc/logrotate.d/httpd這是日誌分割,避免日誌太大致使服務不能運行。windows

接下來看一下httpd的配置文件,配置文件放在/etc/httpd/conf/httpd.confcentos

wKioL1LaOSnzQAazAAICoLUMQXc024.jpg

能夠看到httpd的配置文件主要分爲三個部分,第一部分主要是全局環境配置,通常不須要修改,第二部分是主要是默認的參數,第三部分是虛擬主機的。瀏覽器

接着往下在95行看到一個是關於模式的安全

wKioL1LaOUOitM2hAAAblvRuWIk547.jpg

Httpd的工做模式有兩種,一種是prefork,另外一種是worker。這兩個的區別就是perfork模式是產生進程,而worker模式是線程。服務器

再往下看在292行看到網站的根目錄是/var/www/html

wKiom1LaOXijjMbQAAAt-hdu8GI429.jpg

配置文件就先看到這裏,接下來啓動httpd

wKioL1LaOW-h2jC9AAD4IynQTh4237.jpg

看到有一個小的錯誤,這個錯誤是指沒有配置名字,默認使用127.0.0.1,這個並不影響服務器的運行,能夠不用管。

接下來,咱們在網站根目錄下建立一個網頁,可能不能訪問。

wKiom1LaOajQL05eAABZGf9D7NM636.jpg

而後經過瀏覽器來訪問,看能不能成功

wKioL1LaOZSgVifDAAApHXniL2s620.jpg

能夠看到成功訪問。

接着就來探討一下站點的安全。

實現站點的安全有三種方式:

一、身份驗證

二、來源控制

三、加密訪問,也就是經過https協議來進行訪問

對於第一種和第二種安全主要是在網站目錄安全性來實現的。

實現方法在httpd的主配置文檔中編寫

<directory 站點目錄>

驗證方法

</directory>

這個比較簡單這裏就不詳細介紹了,重點來說解一下訪問加密也是https的實現。

要實現https就要用到數字證書,數字證書要有頒發機構CA,咱們就在本機上安裝openssl來實現CA

首先安裝openssl,接着編輯/etc/pki/tls/openssl.conf,主要修改一些默認值

wKiom1LaOdLhU8XXAAF6Do0HF3o471.jpg

修改匹配的規則,否則將沒法給網站簽發證書

wKioL1LaOczD7OknAADIBTU9jOk212.jpg

就先修改這麼多

而後建立index.txt和serial,而且給serial一個初值

wKiom1LaOgSSL1wWAACAn8bR4fs618.jpg

CA也要本身的公鑰,私鑰和證書

使用openssl  genrsa  1024   >private/cakey.pem 產生CA私鑰

因爲要保證私鑰的安全性因此要修改權限

wKiom1LaOhCxX5twAAA5veIhejk357.jpg

使用openssl req -new -key private/cakey.pem -x509 -out  cacert.pem 產生證書

wKioL1LaOf3hpR5_AANLDHCQM98619.jpg

接下來就要配置網站的私鑰 請求文件 和利用CA簽發證書

切換到/etc/httpd目錄下建立一個文件夾存放文件使用命令mkdir certs,而後切換到該目錄中

產生私鑰:openssl genrsa   1024 >httpd.key 而後修改權限爲600

產生請求文件:openssl req -new  -key  httpd.key -out  httpd.crq

wKiom1LaOjrDiTBjAAPHY1GjQwU296.jpg

而後簽發證書:

openssl   ca  -in httpd.crq -out httpd.cert

而後根據提示輸入y

      wKiom1LaOlviVUh1AABrQV7z1Z0533.jpg

     wKioL1LaOjmDWhjKAABQZ6_3ppA094.jpg

咱們在/etc/pki/CA目錄下查看index.txt就能夠看到一行記錄

wKiom1LaOnziaozYAACER8k8bbA419.jpg

接着就要捆綁證書,綁定證書須要調用mod_ssl模塊,首先要安裝模塊。裝好以後編輯/etc/httpd/conf.d/ssl.conf

在文件的105行指出證書的位置,在112行指出key的位置。

wKiom1LaOpLiPa0TAAHVHow1dEQ755.jpg

在121行指出頒發機構的證書所在位置

wKioL1LaOpzSFztvAABqtoIR-S0259.jpg

而後重啓httpd,而後測試。

訪問的時候會說證書有問題,

wKioL1LaOr-RLuw9AADBPRRpOCI675.jpg

這沒有關係,咱們先安裝CA的證書。選擇查看證書,證書路徑

wKiom1LaOvHDRGs_AAEV8_89lcU021.jpg

而後選擇rootca.net這個證書,而後查看證書

wKiom1LaOwCAt1_HAAEbooCEvyA147.jpg

而後安裝證書

wKioL1LaOu6wB5JNAAJYk4V5qlo406.jpg

最後咱們能夠在受信任的根證書頒發機構中看到,對於證書名不一致是由於咱們頒發給了www.abc.com,而訪問的是192.168.29.20,因此問出現不一致,在這裏就再也不搭建dns服務器了,直接在本地hosts文件中指明就好了,文件所在地方C:\WINDOWS\system32\drivers\etc

wKiom1LaOyWC0wgVAAH-19g8FxQ935.jpg

而後測試

wKioL1LaOxLAPhtyAAC57oSwn5g990.jpg

訪問www.abc.com能夠訪問到。

相關文章
相關標籤/搜索