<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 82, comments - 269, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    用代理實現AJAX跨域訪問時遇到HTTPS

    Posted on 2007-04-27 16:26 itspy 閱讀(5949) 評論(4)  編輯  收藏 所屬分類: JAVA技術

     
    解決AJAX跨域訪問一般都是通過代理服務器來解決,但是我使用coldFusion實現這個問題時卻遇到這樣一個錯誤,在cfhttp標簽使用https訪問網站時,出現如下錯誤提示:
    Connection Failure: Status code unavailable
     
    找了好久也沒找到原因,最后還是在別的幫助下發現這個問題。由于個問題是語言無關的,所以不敢獨享,特拿來和大家分享。
     
    為了方便說明,先做出一些定義。
    代理服務器:在AJAX可以訪問的域中,并且代理AJAX來訪問其它網站的服務器,
    目標服務器:AJAX真實想想訪問的網址所在的服務器。
     
    我遇到的問題就是:代理服務器通過HTTPS訪問目標服務器,但是目標服務器的證書出于一些原因并不被信任。
     

    如何讓代理服務器相信目標服務器的證書呢:有兩種方法
    1):一般代理服務器都持有一些可信的頂CA的證書,如果站點的證書被其中之一的證書簽名過了,那么代理服務器就會相信這個證書。不過被這些頂給證書簽名是要收費的。(如何查看證書被哪些CA給簽名了,可以參考備注)
    2):你個人確定這個網站是沒有問題的(比如我們訪問公司自己的網站時),然后手工的告訴代理服務器,這個證書是可信的,那么以后被這個證書簽名過的證書對這個代理服務器也是可信的了。
    http://livedocs.adobe.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=00000272.htm
        有一點要說明的,操作系統在安裝的時候,已經安裝了一些可信的證書(如何查看OS已經安裝了哪些證書,可以參考備注),所以在通過瀏覽器訪問網站的時候,如果網站的證書已經被這些證書其中之一簽名過了,瀏覽器也會相信這個網站的證書。否則瀏覽器會詢問你,這個證書有問題,你是否相信這個證書。
     
        按照上面的URL我給服務器添加證書后,發現還是不行。最后證書確實是被驗證通過了,但是證書是給指定的域名使用的,但是我在訪問這個網站時,使用的IP地址,不是域名,所以服務器還是不相信這個網站。就好比:你有一張身份證,身份證確實是真的,但是你拿到的是別人的身份證。
        通過查看證書,發現證書被頒發給如下域*.qa.webex.com(如何查看證書被頒發給哪些域名可以參考備注)。但之前我在code時,AJAX是直接使用的目標服務器的IP地址,不是域名。所以最后目標服務器無法被信任。這就好比,你明明拿著身份證去登機,雖然身份證是真的,但你同時要表明你就是身份證上的那人,你要是整容整的太大了,人家肯定不認你。
        最后解決這個問題的辦法:在代理服務器上的HOST文件里面添加一行記錄,把felix.qa.webex.com域名與目標服務器的IP關連起來。
     
        總結:要用代理實現AJAX跨域訪問遇到HTTPS協議時,首先要目標站點的證書被代理服務器信任,其次就是訪問的URL處于,證書頒發對象下面,不要使用IP地址這樣的方法來訪問。
     
     
     
    本文章首發于 http://blog.OpenJ.cn

    備注:
    1、如何查看證書被哪些CA,或者是其它證書簽名?
     通過瀏覽器(IE)打開對應的HTTPS網站。
     雙擊鎖形圖標(如果是IE6,這個圖標應該在右下角的狀態欄)
     點擊證書路徑,就可以看到這個證書的上級,以及上級的上級。


    2、證書可以給哪些網站使用?
     備注1已經說明了如何查看證書,打開證書,點擊常規:
     證書頒發給:*.qa.webex.com

    3、如何查看OS已經安裝了哪些證書?
     IE->工具->Internet選項->內容->證書
     這時你會看到很多Tab,不同的Tab對應不同的證書類型,我大概的看了一下,沒有100個,也有幾十個。在Windows下,Firefox好像并不使用OS的證書,而是使用自己安裝時帶的證書,以前好像看過,但寫此文章時沒有找到,也沒想到測試辦法。
     
     正是因為證書一般是OS安裝的,所以可以看到有的商業CA會在網站上說明,它頒發的證書適合xxxx年后的OS。

       
    3、CA:證書認證中心,Certificate Authority。我一直把其理解成一個證書發布機構。
     
     
     

     


    評論

    # re: 用代理實現AJAX跨域訪問時遇到HTTPS  回復  更多評論   

    2007-04-27 16:36 by 交口稱贊
    友情支持,圖片掛了

    # re: 用代理實現AJAX跨域訪問時遇到HTTPS  回復  更多評論   

    2007-04-28 09:12 by 王凌華
    既然碰到我們公司的同事了。:) 你好你好.

    # re: 用代理實現AJAX跨域訪問時遇到HTTPS  回復  更多評論   

    2007-04-28 12:16 by itspy
    @王凌華

    呵呵,人生何處不相逢,相逢一笑.........


    你是哪部分的?我是合肥的。

    # re: 用代理實現AJAX跨域訪問時遇到HTTPS  回復  更多評論   

    2007-04-30 14:31 by 自己的小屋
    Me in HF too. What is your English name?
    主站蜘蛛池模板: 亚洲精品乱码久久久久久下载| 亚洲人成图片小说网站| 亚洲国产成人在线视频| 91福利免费体验区观看区| 婷婷久久久亚洲欧洲日产国码AV| 在线人成免费视频69国产| 亚洲精品国偷自产在线| 国产亚洲精品精品国产亚洲综合| 国产精品亚洲专区无码WEB| 免费国产高清视频| 国产精品一区二区三区免费| 久久久久噜噜噜亚洲熟女综合| 一出一进一爽一粗一大视频免费的| 在线观看亚洲成人| 久久久久成人片免费观看蜜芽| 亚洲欧洲日产韩国在线| 女人张开腿给人桶免费视频| 亚洲AV噜噜一区二区三区| 亚洲?v无码国产在丝袜线观看 | 亚洲三级在线播放| 国产精品无码免费播放| 麻豆亚洲AV成人无码久久精品 | 全黄a免费一级毛片人人爱| 免费无遮挡无遮羞在线看| 国产精品国产亚洲精品看不卡| 99免费在线观看视频| 亚洲午夜无码久久久久小说| 免费国产小视频在线观看| 中文字幕久精品免费视频| 亚洲视屏在线观看| 日本一道综合久久aⅴ免费| 国产V片在线播放免费无码| 亚洲乱亚洲乱淫久久| 毛片a级三毛片免费播放| 激情吃奶吻胸免费视频xxxx| 18禁免费无码无遮挡不卡网站 | 香蕉国产在线观看免费| 久久亚洲精品无码AV红樱桃| 国内自产少妇自拍区免费| 久久免费国产精品| 自拍日韩亚洲一区在线|