四月 25, 2011

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 使用「公認機構簽核公錀」所發生的不知名問題

How to get a free HTTPS web certification authority by StartSSL.com 一文中,我申請了 A.hoamon.info 的公錀簽核,也正確地跑在 https 上,在使用瀏覽器觀看時,完全沒有問題。然而在 hg 軟體上,卻會發生 SSL: Server certificate verify failed. 的錯誤訊息,從 Mercurial on Windows vs Linux, spot the problem 一文中,作者解釋是 Windows 的 ssl 版本太舊的原因,但照他的解決方案處理,我的 hg 軟體卻是報 URLError. 錯誤。

後來在檢查 apache.conf 時發現,這台機器有三個 https 站台,一個是用 A.hoamn.info 的公錀,另外兩個 B, C 站台卻都是用 whatever.hoamon.info 的公錀。而 B, C 站台的設定檔寫得比 A.hoamon.info 站台還前面。所以試著調動 A.hoamon.info 到 B, C 站台設定的前面,結果 hg 軟體就正常了。

問題是解決了,但我反而混亂了。印象中, https 協定中,公錀是在 IP 層(或表現層,我不確定)就發送至使用者的瀏覽器,既然沒到應用層,則網頁伺服器就不知道該拿那一個虛擬站台的公錀給使用者,於是它總是拿第一個看到的公錀(也就是寫在最前面的),所以這篇教學文章,才會寫到:「…一個 Apache ,也只能架一個 SSL 站,用一個站名。除非妳跑很多份 Apache ,各自跑在不 同的 IP 或不同的 TCP 埠上,才能在同一臺伺服 器上,跑好幾個 SSL 站。」

實際上,在 Windows XP 的 IE, Safari 上觀看 A, B, C 三個站台,也的確都是拿到 A.hoamon.info 的公錀。但在 Chrome, Firefox 上,卻是看到 A 用 A.hoamon.info ,但 B, C 用的是 whatever.hoamon.info 的公錀。


這我頭大了,為什麼跟基本原理不一樣??? 還是因為某些瀏覽器有「重拿公錀的機制」存在???

十二月 3, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» IE 給我的痛



大概是全天下的網頁程式設計師都會遇到的痛,就算你是用微軟自己出的工具也是一樣(例:http://www.shukai.biz/2008/12/bug.html),這原因就出在 IE 是個疊床架屋的產物,是為了要幹掉 Netscape ,在幾個月中,倉徨作出來的垃圾。

十一月 21, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 莫明奇妙的 _ 網域名稱錯誤: 只發生在 IE 上

嚴格地說,這也不是 IE 的錯, IE 只是遵守規範而已。但是因為 Firefox 的容錯能力,讓我們一時以為是 IE 太爛了。

問題是這樣的:

我學弟使用 Windows 加 apache 配置一個測試網站給業主使用時,一直面臨 IE 不能登入,但 Firefox 卻正常的問題,而該網站在 django development server 運作時,卻又沒有問題。他搞了非常久,大概有一個月吧!

我幫他 debug 時,一開始,我就把問題縮小在 IE 瀏覽這 apache 上的測試網站時,它不會紀錄 Cookies,沒用 Cookies ,那怎麼保持認證連線呢! 只是那時候,我也是找不出為什麼那該死的 IE 就是沒法使用 Cookies ,而優秀的 Firefox 就可以呢! 然後,我使用了 Ubuntu Linux 配置這個測試網站結果發現它可以讓 IE 正常運作,所以我們當時只能歸納這問題,一定是他的 XP 出了狀況。

結果前兩天,他要把測試網站放到業主的機器上去 run 時,還是出了相同的問題,然而這次不一樣的是那個機器有兩個 django-based site ,但一個正常,一個不正常。這就有點說不過去了。

於是,這次我請教了 Google 大神,問它: django cookie session problem ie ,而它回我: http://code.djangoproject.com/ticket/7264#comment:3

這原來是 _ 的錯,因為學弟習慣將測試網址設成 test_XXX.YYY.ZZZ ,而我習慣設成 XXXtest.YYY.ZZZ ,因為我知道在買網址時只可以買英數字加連字詞(-)的,所以我不會在網域名稱中放入 _ ,也就是這個習慣讓我在 Ubuntu Linux 中架的測試網站是可以讓 IE 正常使用,但學弟架在 Windows 上的測試網址卻包含了 _ ,讓 IE 勇於拒絕他的要求了。

這同時也解釋了為什麼在 django development server 運作時, IE 可以正常的現象,因為它會使用 http://127.0.0.1:8000/ 作瀏覽網址。

哈哈,真不曉得該怪 IE ,還是得怪 Firefox 呢! 不過,話說回來,要是早點問 Google 大神,這問題就不會拖一個月了。

biggo.com.tw

A Django site.