發表文章

目前顯示的是有「apache」標籤的文章

自訂Apache錯誤訊息頁面

在使用apache網站的時候,碰到錯誤訊息頁面,一般都是以伺服器預設的頁面呈現出來。如果想要自訂錯誤訊息頁面,最簡單的方是就是修改httpd.conf。 [root@testuse ~]# vim /etc/httpd/conf/httpd.conf # line 328~335 # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.htm l # 修改成自己想要的訊息內容 ErrorDocument 500 "欲顯示出來的錯誤訊息文字" ErrorDocument 404 "欲給網友看的錯誤訊息網頁檔案名稱 ErrorDocument 403 "欲給網友看的cgi檔案名稱" ErrorDocument 402 "http://欲給網友看的外部錯誤訊息網址" 我通常會設定代碼404的找不到網頁,以及代碼403的禁止存取這兩個錯誤訊息頁面。 Apache常見的錯誤訊息代碼的說明如下: ErrorDocument 400 HTTP_BAD_REQUEST 錯誤的要求 ErrorDocument 401 HTTP_UNAUTHORIZED 未授權的動作 ErrorDocument 403 HTTP_FORBIDDEN 該動作禁止存取 ErrorDocument 404 HTTP_NOT_FOUND 找不到檔案或目錄 ErrorDocument 405 HTTP_METHOD_NOT_ALLOWED 系統不允許該要求的方法 Error...

Apache的一些安全性設定

設定限制目錄瀏覽的方法 很多人設定Apache都會碰到的問題之一,就是該怎麼限制別人瀏覽自己網站的目錄。如果沒限制,目錄內所有檔案〈包含有更新但還未公開〉的位置都會被看到。 有幾種方式可以達成此目的: 1.在不想公開給外面看到的每個目錄下,都放一個內容空白的index.html,讀取該目錄就會出現空白或是你寫在該檔案裡的設定轉址頁面,但這僅適合用在免費網頁空間,一般不建議這樣使用。 2.使用.htaccess檔案,藉由規則來限定存取範圍,但設定上還是頗麻煩。 3.修改apache的設定檔httpd.conf [root@testuse ~]# vim /etc/httpd/conf/httpd.conf # line 144 Options Indexes FollowSymLinks # 移除Indexes Options FollowSymLinks    # 可加選項MultiViews # 重啟apache [root@testuse ~]# systemctl restart httpd 之所以去掉Indexes這個功能,是讓Apache不自動產生目錄的索引,就不會出現網站某一個文件目錄列出目錄頁面的情形。如果將Indexes拿掉,點選連結目錄就不會秀出目錄來,會改成顯示403 forbidden的訊息頁面,而這403 forbidden的訊息頁面內容是可自訂的,可以參考本站的 自訂Apache錯誤訊息頁面 。 1.MultiViews,這是可以讓Apache送出多國語言支援的頁面。 2.FollowSymLinks,是讓Apache能夠連到其它的目錄去執行,如果是Windows系統的使用者,建議將這個功能拿掉。 關閉相關模組版本 修改apache的設定檔httpd.conf [root@testuse ~]# vim /etc/httpd/conf/httpd.conf # 在置底處新增 ServerTokens Prod     # 告知Apache在回傳標頭資訊時,只要標示產品名稱"Apache"即可 ServerSignature Off     # 告知Apache在產生錯誤頁面或其他訊息時,不顯示Apa...

CentOS 7:Apache強制使用https〈使用mod_rewrite、mod_ssl、openssl〉

安裝SSL加密軟體 yum install -y mod_ssl openssl 使用root身份,利用 OpenSSL 來產生一張自我簽署的憑證   # 產生私鑰 openssl genrsa -out ca.key 2048 # 產生 CSR openssl req -new -key ca.key -out ca.csr # 產生自我簽署的金鑰 openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt # 複製檔案至正確位置 cp ca.crt /etc/pki/tls/certs cp ca.key /etc/pki/tls/private/ca.key cp ca.csr /etc/pki/tls/private/ca.csr 更新 Apache SSL 的設定檔 vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf 修改路徑至金鑰檔案的儲存位置 # 預設為localhost.crt SSLCertificateFile /etc/pki/tls/certs/ca.crt # 預設為localhost.key SSLCertificateKeyFile /etc/pki/tls/private/ca.key 如果沒有使用Virtual Host,直接在httpd.conf的最後面加入    <IfModule mod_rewrite.c>     RewriteEngine On     RewriteCond %{HTTPS} off     RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}   </IfModule> 如果有使用Virtual Host,範例如下  <VirtualHost *:80>   ...   <IfModule mod_rewrite.c>     Rewrit...