自行架設的 BitBucket server 在 git push 遇到 RPC failed 的問題

先說 … 我個人覺得 BitBucket 不是很好用,尤其是自己架設 … 很多眉角、小問題要處理

這次的環境是 BitBucket + nginx (reverse proxy) + git https access 會遇到的問題 (基本上是版本無關)

症狀長這樣:

$ git push origin master
Counting objects: 4372, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (138/138), done.
error: RPC failed; result=22, HTTP code = 413
Writing objects: 100% (147/147), 1.10 MiB | 0 bytes/s, done.
Total 147 (delta 75), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly

從 http 413 的解釋 Request Entity Too Large 可以看出來是 request 太大了,我猜是 git 的 objects pack 吧

解法是調整 nginx 的 client_max_body_size,預設值是 1M,我們可以把他改為更大的值,或是改為 0 來停用大小檢查

例如:

server {
#…
client_max_body_size 1000m;
#…
}

改完之後重新啟動 nginx 就沒問題了!

我範例是把 size 調到 1000m ,因為 cdnjs 的 objects pack 已經長到 900MB 了,如果你沒有一個特別肥大臃腫的 git reposiroty,我想應該1000m已經夠用了,剛剛把linux kernel 拉下來看,objects pack 也大概是 1GB左右而已

至於要用 nginx 來做 reverse proxy 的原因,主要是 Bitbucket 安裝完後 Tomcat 預設沒辦法 bind 在 1024 以下的 port ,加上他的 https 很難設定,為了拿到 A+ 確保https 安全強度,這段還是讓 nginx 來做比較簡單一點,也許之後有空會想辦法把 static file 讓 proxy 來做 cache 提升一些速度。

用 nginx 建置一個 A+ 等級的 https 網頁伺服器

隨著資安意識提升、 Google 把網站的 https 列為搜尋引擎的排行指標,越來越多的網站開始導入 https 以確保伺服器以及使用者端兩個端點之間的安全溝通,先前在 10 web server online https/ssl testing services 有列出了一些可以協助網管人員測試網頁伺服器安全性強度的服務(注意是”網頁伺服器”而不是”網頁應用程式”),讓大家可以參考看看,其中 Qualys SSL LabsSSL Server Test 算是近期非常熱門的一個測試跟服務,其測試報告以及評分標準算是非常簡單易懂,以截至目前為止(2015年10月25日)的最新版本”2009j (20 May 2015)“為例,給分主要從 A ~ F,Protocol support、Key exchange 及 Cipher strength 分別占總分的30%、30%及40%,相關的細節都可以在SSL Server Rating Guide (PDF) – Qualys SSL Labs 裡面找到,Qualys SSL Labs也提供了一份 SSL/TLS Deployment Best Practices Guide,但看起來近期沒更新就是了,停留在 Version 1.4 / 8 December 2014。

對於一些非網管或是相關背景的網站管理員來說,該如何有效的提升自己架設的伺服器安全性強度? 又如何改善各安全測試出來的分數? 由於最近有些人在問相關的問題,我找了一下發現好像沒有中文的資源在提供這方面的指南,所以決定野人獻曝一下稍微分享我知道的做法。另外必須說明的是,安全性跟方便性從以前到現在就是兩難,例如夠安全的密碼基本上都是由不同的元素以及夠長的長度組成,相對來講就會不好記,在伺服器安全性上的問題亦然,較好的安全性會使得 Windows XP,Java 6 的使用者受到影響,如果還有遇到這使用如此老舊軟體的使用者,還是勸他趕緊換個平台吧 …

開頭先說一個比較不影響這次評分 (https) 但大家可能也會想要處理的一塊,關於 Web server 的 response header 處理的部分,可以參考先前寫的 “用Apache/nginx&PHP架網站要注意的安全事項” ,將不必要的Server資訊隱藏起來,那接下來就講這次的重點,關於伺服器的安全性設定以及該如何提高分數!

閱讀全文

11 web server online https/ssl testing services

http/2.0 will need encryption, also Google says HTTPS is a ranking signal – https://www.peterdavehello.org/2014/08/google-https-as-a-ranking-signal/, after set up https on our websever, what should we do next? It’s to confirm and make sure the cer and configure is safe enough to prevent from attack, here are some online testing service to help you confirm your cert and config on your webserver.

SSL Server Test by Qualys, Inc. SSL LABS (supports IPv6):
https://www.ssllabs.com/ssltest/
qualys_ssl_labs

qualys_ssl_labs_2

SSL Checker – SSL Certificate Verify:
https://www.sslshopper.com/ssl-checker.html

ssl_shopper

FairSSL BlueSSL Online Server SSL Test:
https://www.fairssl.se/en/ssltest

閱讀全文

[Google] HTTPS as a ranking signal

security

原文 : HTTPS as a ranking signal

大意是Google很重視安全,除了自家產品預設都是走https外,也希望讓整個網路世界更佳的安全,所以網站有沒有使用https來保障傳輸之間的加密也成了Google搜尋引擎排序演算法的一部份,但目前比重仍然低於其他項目,例如[內容品質]這個項目,但為了鼓勵所有網站從http轉到https,之後可能會增加權重

然後接下來幾個禮拜Google會發布一些優秀的實作細節資訊來幫助大家更容易使用TLS加密,並且避免犯上一些常見的錯誤,例如要選擇怎樣的憑證、protocol-relative URL之類的,實在是就甘心…

所以走https可能會變成SEO要做的事情之一、而免費的StartSSL可能又會突然爆走然後暫停申請xD?

不知道之後Extended Validation、憑證的class、簽憑證的機構對於ranking的影響又是多少?