顯示具有 Apache 標籤的文章。 顯示所有文章
顯示具有 Apache 標籤的文章。 顯示所有文章

星期四, 2月 11, 2010

OpenSSL CSR Creation for Apache SSL

1.create private key

No password
/usr/sbin/sslgenrsa -rand /dev/urandom -out ssl.key/server.key
chmod go-rwx ssl.key/server.key

need password

/usr/sbin/sslgenrsa -rand /dev/urandom -out ssl.key/server.key 1024


2.create .csr

/usr/bin/openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
/usr/bin/openssl req -new -key /etc/httpd/conf/server.key -out /etc/httpd/conf/server.csr

Country Name (2 letter code) [AU]:
State or Territory Name []:Queensland
Locality (City) Name []:Port Lincoln
Company (Organisation) Name []:Test Company
Department Name []:Testing
Common Name []:test.mydomain.com
Administrators E-mail address []:admin@mydomain.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:


Move a SSL certificate from Apache(.crt) to IIS(.pfx)




openssl pkcs12 -export -in /path/to/ssl-cert.crt -inkey /path/to/private.key -certfile /path/to/intermediate-ca.crt -out cert-export.pfx




星期三, 8月 27, 2008

apache 設定;沒注意到的事


今天收到掃描報告,裡面居然有這項
HTTP TRACE Method Cross Site Scripting
真是下我一跳,雖然這不是很嚴重但卻是設定上的問題,不多說了先來改一改設定



關閉 ServerToken 功能

ServerToken 的功能是在 Apache 1.3 以後的版本才出現的,而 ProductOnly 關鍵字則是在 1.3.12 之後才出現。ServerToken 主要是控制伺服器在表頭區域回應給用戶端的資訊,例如使用何種作業系統或模組。因此,入侵者可能利用這些資訊而採用特定的攻擊方法,來更快速進行滲透或破解。所以提供的資訊越少則越安全。因此可以利用 ServerToken 功能:其語法為: ServerTokens MajorMinorMin[imal]Prod[uctOnly]OSFull 預設為: ServerTokens Full 分別說明: ServerTokens Prod[uctOnly] --> 伺服器可能回傳: Server: Apache

ServerTokens Major --> 伺服器可能回傳: Server: Apache/2

ServerTokens Minor --> 伺服器可能回傳: Server: Apache/2.0

ServerTokens Min[imal] --> 伺服器可能回傳: Server: Apache/2.0.41

ServerTokens OS --> 伺服器可能回傳: Server: Apache/2.0.41 (Unix)

ServerTokens Full (or not specified) --> 伺服器可能回傳:Server sends (e.g.): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

因此,若要讓回傳的資訊最少,則可以在 httpd.conf 中加入:

ServerTokens Prod


關閉 HTTP TRACE 功能

HTTP TRACE 是一個 HTTP request method,主要是用來做 debug,此方法會回傳 client 的 HTTP request 內容,並放置於於 TRACE response 中的 entity body。因此,惡意攻擊者可利用此方法取得敏感的伺服器資訊,例如 cookies 或表頭中的認證資料。此方法預設為打開,但為了安全方面的考量,最好將此方法給關閉。

一般來說,您可以利用mod_rewrite來關閉 HTTP TRACE 的功能,首先將 httpd.conf 中的 LoadModule rewrite_module modules/mod_rewrite.so 註解打開,讓 HTTP 有mod_rewrite 的功能,並且在加入下列的規則:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]

如果您的 Apache 版本是 2.0 以上,則有比較快速的方法來關閉(因為上述的方法必須開啟 mod_rewrite 的功能):

TraceEnable off

如此則關閉了 HTTP TRACE 的功能。

參考文章: http://wiki.oss.org.tw/index.php/Apache_Tips#.E9.97.9C.E9.96.89_HTTP_TRACE_.E5.8A.9F.E8.83.BD

星期二, 7月 01, 2008

HTTP 狀態碼


分類狀態碼說明
資訊100 Continue催促 Client 送出後續要求,當 Client 提出的請求不完整時會產生此訊息(當 Client 上傳大檔案時,會將檔案切細再傳,Server 回應此訊息告訴 Client:前面部分已收到,請繼續送出後續資料)
101 Switching ProtocolsServer 接受 Client 變更應用層通訊協定的請求,用來回應 Client 端送來的 OPTIONS 請求
完成200 OKClient 的請求已被接受並處理,僅用來回應 GETHEADPOSTTRACE 請求
201 Created新網頁已經建立,僅用來回應 PUT 請求
202 AcceptedServer 已接收請求,但處理需要時間完成,Client 可以斷線不用等待
203 Non-Authoritative InformationClient 端送出的請求未包含 Web-Authoritative 標頭,送出此回應後瀏覽器會要求使用者登入
204 No Content處理 Client 端的請求僅需回覆標頭時,Server 會回覆此訊息
205 Reset ContentClient 端要求重設表單資料,Server 已接受並清除上次上傳的資料
206 Partial Content因為頻寬限制,Server 將較大的網頁或檔案分次傳送,由於僅能傳輸部分內容,因此以此訊息通知 Client 資料尚未傳完
轉向300 Multiple Choices要求的網頁提供多重選擇,Client 可以根據參觀者的需要選取適合的網頁(多語系支援)
301 Moved Permanently要求的網頁已經永久改變網址了,Server 會以 Location: 標頭告知新網址
302 Found要求的網頁暫時改變網址,Client 下次連線時應優先嘗試原網址。由於 RFC 1945 2068 禁止 Client 在網頁重導向時變更指令(POST 變成 GET),因此是否須變更指令必須由 Server 告知,為了釐清此需求,多增加了兩個回應訊息 303 307 (前者要變,後者不變)
303 See Other通知 Client 連到另一個網址去查看上傳表單的結果(POST 變成 GET),當使用程式作網頁轉向時,會回應此訊息
304 Not Modified網頁 Expired 標頭顯示已過期,因此 Client 要求 reload 該網頁,但其內容並沒有變更,回應附加標頭的 GET 請求
305 Use Proxy要求的網頁必須透過 Server 指定的 proxy 才能觀看
306 (Unused)1.0 版使用,現在已經取消不用
307 Temporary Redirect要求的網頁暫時改變網址,Client 下次連線時應優先嘗試原網址(設計用來取代 302,但因為有些 Client 僅支援 1.0 版,因此 302 還是保留)


端錯誤
400 Bad RequestServer 看不懂 Client 的請求,通常是語法錯誤、打錯字或打成小寫
401 Unauthorized該網頁必須通過使用者驗證才能取得(另外,當 Client 上傳的檔案太大時,Server 可以回應此訊息拒收)
402 Payment Required預計給新版本用的
403 Forbidden權限不足因此 Client 的請求被拒絕
404 Not FoundClient 嘗試連結的網頁不存在
405 Method Not Allowed該目錄禁止使用 Client 送來的指令
406 Not Acceptable該網頁含有 Client 無法支援的語系、字元集、編碼方式或多媒體串流格式時,Server 以此訊息回應
407 Proxy Authentication Required類似於 401,但這是給 Proxy 使用的,當 Client 透過 Proxy 觀看某些特定網頁時,Proxy 會要求先通過認證(配合 305 來使用,可以讓眾多站台統一透過同一台 Proxy 進行會員管理)
408 Request TimeoutServer 苦等不到 Client 送來的請求
409 Conflict當版本管理被啟用,而 Client 要求 PUT 的網頁正被修改中(Locked)或網頁版本比現有的還舊,Server 將回應此訊息,請參考 FrontPage Server Extension 中的版本管理功能
410 Gone該網頁已遷移,但不知道移去哪裡
411 Length RequiredClient 上傳的表單資料(或檔案)沒有計算大小,Server 拒絕接受
412 Precondition FailedClient 提出的請求中某些標頭所設定的值,經測試後無法正確執行
413 Request Entity Too LargeClient 一次送出的請求太多,Server 無法處理逕行斷線
414 Request-URI Too LongClient 上傳資料的標頭,包含太多資訊,Server 無法處理
415 Unsupported Media TypeServer 不支援 Client 要求的檔案類型(譬如:某些 third-party 開發的 Server 不支援 JAVA
416 Requested Range Not SatisfiableClient 對某個多媒體串流提出下載某範圍內容的要求,但 Server 無法提供時必須回應此訊息(該串流必須從頭觀看)
417 Expectation Failed某些先進的 Server 支援獨家的標頭(例如:Netscape Enterprise),當 Client 要求這類的延伸標頭而伺服器不支援時,應該回覆此訊息


端錯誤
500 Internal Server Error無法預期錯誤(通常是 CGI 程式語法錯誤造成)
501 Not ImplementedClient 所要求的指令在 Server 上沒有被實作出來
502 Bad Gateway Proxy 從上游伺服器得到的回應無法辨識時,回應此訊息給 Client
503 Service Unavailable伺服器因為系統維護或負載太重,無法提供服務
504 Gateway Timeout Proxy 無法從上游伺服器取得 Client 要求的網頁時,回覆此訊息給 Client
505 HTTP Version Not SupportedServer 不能支援或不想支援 Client 提出的指令版本