溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Apache的站點(diǎn)安全技術(shù)

發(fā)布時間:2020-07-26 09:21:09 來源:網(wǎng)絡(luò) 閱讀:329 作者:路邊 欄目:安全技術(shù)

在實(shí)驗(yàn)中web服務(wù)器地址為:192.168.80.10,客戶機(jī)地址為192.168.80.200

實(shí)驗(yàn)?zāi)康模耗軌蚩刂朴脩魧υ搘eb服務(wù)器訪問。
[root@localhost ~]# yum --disablerepo=* --enablerepo=c6-media install httpd

安裝httpd服務(wù)
為了實(shí)現(xiàn)身份驗(yàn)證在/etc/httpd/conf/httpd.conf 第336行改為“AllowOverride all”

在/var/www/html/目錄下編輯一個名稱為.htaccess的說明文件,此文件必須在站點(diǎn)主目錄下,內(nèi)容編輯如下:
authuserfile  /var/www/.htpasswd
authname "please in put your name and password"
authtype        basic
require         valid-user
上邊的只是一個說明文件,接下來要產(chǎn)生一個賬號庫文件:
這里需要一個工具h(yuǎn)tppasswd來產(chǎn)生 ,此工具在/usr/bin/目錄下
直接執(zhí)行此工具:
[root@localhost www]# htpasswd -c .htpasswd abc ,然后會提示兩次輸入密碼123
在當(dāng)前目錄下生成一個名稱為.htpasswd的文件,并寫入一個賬號為abc密碼為123的用戶 
如果要再次寫入一個用戶的話 就不用加-c了,-c是表示創(chuàng)建一個新文件。     
[root@localhost html]# echo 'hello' >index.html
在當(dāng)前目錄下建立一個靜態(tài)網(wǎng)頁名稱為index.html,并寫入一個單詞 “hello”
重啟httpd服務(wù):
[root@localhost html]# service httpd restart
然后在一個與本地地址同網(wǎng)段的pc瀏覽器中登陸http://192.168.80.10
發(fā)現(xiàn)需要輸入賬號和密碼:
輸入賬號:abc密碼:123
進(jìn)入后可以看到如下界面:

Apache的站點(diǎn)安全技術(shù)

Apache的站點(diǎn)安全技術(shù)


也可以同過對訪問地址來源來限制訪問:
在/etc/httpd/conf/httpd.conf 第341行至343行修改如下:
只允許地址為192.168.80.200的主機(jī)訪問,而別的地址不可訪問。
Order allow,deny
    Allow from 192.168.80.200
    Deny from  any
注:在這里allow和deny的順序一定要一致。
我把剛才那臺主機(jī)地址改為192.168.80.201,此時發(fā)現(xiàn)已經(jīng)不可訪問此站點(diǎn):

Apache的站點(diǎn)安全技術(shù)

而把地址改回來之后又可繼續(xù)訪問了。

Apache的站點(diǎn)安全技術(shù)

接下來我要在linux系統(tǒng)中使用openssl來實(shí)現(xiàn)CA的安裝和CA的發(fā)放:
[root@localhost html]# rpm -qa |grep openssl
首先查看一下系統(tǒng)中有沒有安裝apenssl,如果沒有可以自行安裝,這里不詳細(xì)說了
進(jìn)入/etc/pki/ PKI-公鑰基礎(chǔ)設(shè)施
查看/etc/pki/tls/下的openssl.conf ,這是openssl的配置文件:

[root@localhost tls]# vim openssl.cnf 
查看40至53行:

Apache的站點(diǎn)安全技術(shù)

如果有些文件/目錄沒有的話就自己創(chuàng)建一個:

我的系統(tǒng)中/etc/pki/CA目錄下的文件有這些:

Apache的站點(diǎn)安全技術(shù)

所以要做以下的一些步驟:

[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem
在當(dāng)前目錄的private目錄下用openssl產(chǎn)生一個用rsa加密算法加密的1024為的私鑰,文件名稱為cakey.pem(這個文件名稱必須和openssl.conf里的文件名稱相同)
[root@localhost CA]# chmod 600 private/cakey.pem 
因?yàn)樗借€是保密的,只能由管理員一個人可以訪問所以改變它的權(quán)限
此時可以在 文件的128至139行修改如下,這是修改一些默認(rèn)值,以免每次請求產(chǎn)生證書都要填寫,當(dāng)然也可以不該,在請求時自行填寫:

在這里還需要填寫一些別的資料,(我這里都是隨便填寫的):

Apache的站點(diǎn)安全技術(shù)

 

[root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem 

請求產(chǎn)生一個證書,證書上的公鑰從私鑰上提取,證書格式為-x509,名稱為cacert.pem(這個文件名稱必須和openssl.conf里的文件名稱相同)
Apache的站點(diǎn)安全技術(shù)

到這里證書已經(jīng)產(chǎn)生成功:

 

接下來要產(chǎn)生web的私鑰:
[root@localhost CA]# mkdir -pv /etc/httpd/certs
mkdir: created directory `/etc/httpd/certs'
[root@localhost CA]# cd /etc/httpd/certs/
[root@localhost certs]# openssl genrsa 1024 >httpd.key
產(chǎn)生一個httpd.key的私鑰文件。
[root@localhost certs]# chmod 600 httpd.key
改變權(quán)限
編輯openssl.conf文件:將其中的85行至87行修改如下:
將match改為optional

Apache的站點(diǎn)安全技術(shù)

這樣可以使所有國家和單位的人都可以請求證書。
[root@localhost certs]# openssl req -new -key httpd.key -out httpd.crq
產(chǎn)生一個名為httpd.crq的請求文件,因?yàn)檫@個不是私鑰文件,所以不用加-x509

Apache的站點(diǎn)安全技術(shù)

有了請求文件之后,可以基于請求文件來申請一份證書,產(chǎn)生的證書名稱為httpd.cert:

[root@localhost certs]# openssl ca -in httpd.crq -out httpd.cert

Apache的站點(diǎn)安全技術(shù)


這時查看/etc/pki/CA/index.txt文件,發(fā)現(xiàn)已經(jīng)多了一條記錄:
[root@localhost CA]# cat index.txt

Apache的站點(diǎn)安全技術(shù)

接下來要把web和證書綁定:
此時要調(diào)用一個模塊:mod_ssl
如果沒有的話自行安裝一個mod_ssl,安裝后就會有一個mod_ssl.so文件
在這個目錄下:

Apache的站點(diǎn)安全技術(shù)

[root@localhost CA]# vim /etc/httpd/conf.d/ssl.conf 
編輯此文件
將第105行修改為  SSLCertificateFile /etc/httpd/certs/httpd.cert  指明證書目錄
將第112行修改為 SSLCertificateKeyFile /etc/httpd/certs/httpd.key  指明秘鑰目錄

重新啟動httpd服務(wù)后,查看端口發(fā)現(xiàn)明文端口與加密端口都已開啟:
[root@localhost CA]# netstat -tupln |grep http

Apache的站點(diǎn)安全技術(shù)

再到本地ip地址為192.168.80.200的主機(jī)中把C:\WINDOWS\system32\drivers\etc目錄下的hosts中添加一句:
192.168.80.10   www.abc.com

這是告訴這臺主機(jī),地址192.168.80.10的名稱是www.abc.com,然后登陸http://www.abc.com,發(fā)現(xiàn)有提示證書是不可信任的:

進(jìn)入到/etc/httpd/conf.d/ssl.conf,編輯此文件

[root@localhost CA]# vim /etc/httpd/conf.d/ssl.conf 
將第120行修改為 SSLCertificateChainFile /etc/pki/CA/cacert.pem

在進(jìn)入到客戶主機(jī)中,點(diǎn)擊安裝證書:

Apache的站點(diǎn)安全技術(shù)

然后可以在Internet“屬性”》“內(nèi)容”》“證書”》“受信任的根證書頒發(fā)機(jī)構(gòu)”中可以看到有一個abc.org.cn頒發(fā)的證書:

Apache的站點(diǎn)安全技術(shù)

Apache的站點(diǎn)安全技術(shù)

此時再次重新訪問http://www.abc.com;

Apache的站點(diǎn)安全技術(shù)

Apache的站點(diǎn)安全技術(shù)

無任何提示信息,并且訪問成功!

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI