配置 HTTPS
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全爲目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
它是一個URI scheme(抽象標識符體系),句法類同http:體系。用於安全的HTTP數據傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同於HTTP的默認端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統的最初研發由網景公司(Netscape)進行,並內置於其瀏覽器Netscape Navigator中,提供了身份驗證與加密通訊方法。
- HTTPS和HTTP的區別主要爲以下四點:
- https協議需要到ca申請證書,一般免費證書很少,需要交費。
- http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。
- http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。
- http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
自定義自簽名證書
如果加密的通信非常重要 , 而經過驗證的身份不重要 , 管理員可 以通過生成 self-signed certificate 來避免與認證機構進行 交互所帶來的複雜性
使用 genkey 實用程序 ( 通過 crypto-utils 軟件包分發 ), 生 成自簽名證書及其關聯的私鑰。
爲了簡化起見 ,genkey 將在 “正確”的位置 (/etc/pki/tls 目錄 ) 創建證書及其關聯的密鑰。 相應地 , 必須以授權用戶 (root) 身份運行該實用程序
沒有鎖證明不了是自己公司的
yum install mod_ssl -y
//安裝,注意,是tcp傳輸'
yum install crypto-utils.x86_64 -y
genkey www.westos.com //給www.westos.com生成證書
//這兩個就是認證生成的文件,鎖和證書
//選擇加密的大小512 最短的1024是最快,2048是標準,需要敲鍵盤所以選擇1024
//等待,這裏是準備生成
//生成證書,此時需要敲擊鍵盤,前面選擇的越大,敲擊的字符越多
//是否需要向CA發送,這個是需要費用的,在測試環境,當然是NO
//直接跳過,不需要保護私人key,後面要自己寫,不然每次進入阿帕奇都要輸入密碼
//輸入國家,省會,城市,公司,名稱,網址,NEXT之後就完成了
出現一些信息提示,發現有鑰匙和證書的存放地方:
還會在/etc/httpd/conf.d下生成ssl.conf,這裏面的文件就是默認443端口的配置:
按照提示中的地址,修改ssl.conf中的所示部分:
完成後重啓httpd生效
注意關閉火牆,或者給http,https都添加火牆策略
[root@dnst conf.d]# firewall-cmd --permanent --add-service=http
success
[root@dnst conf.d]# firewall-cmd --permanent --add-service=https
success
[root@dnst conf.d]# systemctl restart firewalld.service
[root@dnst conf.d]# firewall-cmd --list-all
public (default, active)
interfaces: eth0 eth1 team0
sources:
services: dhcpv6-client dns http https ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
打開你的網頁會出現網警的界面:
在 I Understand the Risks這個選項中選擇添加,獲取證書,就可以進入你的界面了
點擊網址前面的鎖的圖標,選擇更多信息
出來的界面選擇View 證書,查看證書信息,這時顯示的就是我們手動製作的證書
//注意本地解析,加密的端口是443
自動跳轉加密網頁(網頁重寫)
新建網頁login.westos.com,創建在/var/www/westos/login/html中
編寫網頁:
echo "<h1>login.westos.com's home</h1>" >/var/www/westos/login/html/index.html
在/etc/httpd/conf.d下新建文件login.conf
vim 編輯雙文件
vim /etc/httpd/conf.d/login.conf
":sp /etc/httpd/conf.d/ssl.conf"
添加:
SSLEngine on //將SSL功能開啓'
//並且添加鑰匙,鎖
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
網頁重寫的關鍵步驟:
將之前的原始默認端口變成443並編認證
實現網頁重寫自動訪問https
<Virtualhost *:80>
//新建虛擬主機端口80,意爲將80中的引導到443端口,把所有 80 端口的請求全部重定向由 https 來處理
RewriteEngine on 重寫功能開啓
RewriteRule ^(/.*)$ //匹配任意網址上輸入的字符,除了空格
https:// //調轉成爲https://定向成爲的訪問協議
%{HTTP_HOST} //客戶的訪問請求
$1 //匹配後面的內容
[redirect=301]
//301 臨時重定向,訪問一次,定向一次,因爲網頁後臺會有刷新,所以一般用301'
//302 永久重定向
重啓服務生效
因爲用主機瀏覽器測試,主機添加本地解析
172.25.254.109 www.westos.com news.westos.com gongyi.westos.com login.westos.com
測試
在有本地解析的瀏覽器中輸入http://login.westos.com
瀏覽器會直接跳轉訪問到https://login.westos.com
//成功實現網頁重寫
apache的官方幫助手冊
安裝httpd.conf 文件的幫助手冊:
yum install httpd-manual.noarch -y
重啓httpd生效
查看時輸入 172.25.254.109/manual 裏面
默認是英文,但是可以自己設置爲中文模式
- 裏面可以查看到幾乎所有的apache服務的教程,非常的有幫助
CGI
通用網關接口 (CGI) 是網站上放置動態內容的最簡單的方法。 CGI 腳本可用於許多目的 , 但是謹慎控制使用哪個 CGI
腳本以及允許誰添加和運行這些腳本十分重要。編寫質量差的 CGI腳本可能爲外部攻擊者提供了破壞網站及其內容安全性的途徑。 因此 , 在 Web
服務器級別和 SELinux 策略級別 , 都存在用於限制 CGI 腳本使用的設置php 語言支持
php 編寫網頁
安裝php軟件
在/var/www/html下編寫index.php
進入/etc/httpd/conf/httpd.conf編輯
171 <IfModule dir_module>
172 DirectoryIndex index.php index.html westos //設定最優先讀的是php的網頁
173 </IfModule>
vim index.php
<?php
phpinfo();
?>
重啓服務,查看網頁,已經更改:
perl語言編寫網頁
在apache手冊中可以查看寫法:
點擊其中的 CGI:Dynamic Content
裏面有cgi格式的文件寫法,和涉及到相關文件的書寫規範
下面設置cgi格式網頁(perl語言)
vim /var/www/html/cgi/index.cgi
1 #!/usr/bin/perl
2 print "Content-type: text/html\n\n";
3 print `date`;
chmod +x index.cgi ##添加執行權限生效
此時可以使用,但是不會顯示網頁,只會把文件顯示出來,這是因爲沒有文件的支持
繼續修改/etc/httpd/conf.d/default.conf
添加
5 <Directory /var/www/html/cgi>
6 Options +ExecCGI //添加參數CGI的執行
7 AddHandler cgi-script .cgi //添加庫
8 </Directory>
systemctl restart httpd //重啓生效
但是還是顯示不出來,這時查看可能是安全上下文不配對引起的
semanage fcontext -l | grep cgi
/var/www/cgi-bin(/.*)? all files system_u:object_r:httpd_sys_script_exec_t:s0
而ls -Zd /var/www/html/cgi
安全上下文是unconfined_u:object_r:httpd_sys_content_t:s0
所以更改
先更改selinux模式
setenforcing 0 //警告
修改:
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi
setenforcing 1 //變回強制模式
再次進入地址
顯示成功
安裝論壇
需要已經製作好的論壇模版
Discuz_X3.2_SC_UTF8.zip
安裝在web服務器
解壓後查看安裝的教程。進入readme查看readme.txt,裏面記錄了安裝要求,安裝步驟:
按照說明給定相應文件的權限
[root@dnst html]# cd upload/
[root@dnst upload]# chmod 777 data -R
[root@dnst upload]# chmod 777 config -R
因爲這個模版是由php編寫的,所以需要php相關插件的支持,php-mysql , php
另外注意要保證setenforcing 0
瀏覽器進入172.25.254.109/upload/install
進入之後,會檢測你的主機的配置,全部正確後就可以進入下一步
填寫數據庫的認證信息,這個數據庫的密碼和用戶名是真實的,設置管理員認證信息,進入安裝界面,自動完成
進入管理中心,首頁不能正常顯示:
Please delete install/index.php via FTP!
那麼按照說明刪除
再次刷新就可以看到了