HTTPS下開發(fā)若干注意事項

開發(fā)隨著HTTPS的普及捌归,很多應用都需要HTTPS了甚侣,在實際開發(fā)中星压,對于HTTPS的應用剖毯,我總結了一下一些需要注意的地方柳爽,如果不全涮雷,歡迎補充更哄。

1. 訪問速度

以前大家都不采用HTTPS的原因疚鲤,除了一個花錢之外掂咒,就是嫌棄速度慢了才沧,不過隨著瀏覽器的發(fā)展,這個已經(jīng)不在是一個很大問題了绍刮。有人專門做過一個測試温圆,見這里https://www.keycdn.com/blog/https-performance-overhead/?

2. 資源加載

在HTTPS的應用里,如果加載了HTTP的請求孩革,不同瀏覽器的行為有一些不一樣岁歉。

IE瀏覽器/FireFox/Safari/Chrome對于script之類的則直接禁止加載,同時地址欄上有個警告提示膝蜈,圖片則能正常瀏覽锅移。

360瀏覽器的兼容模式都正常熔掺,極速模式和Chrome行為一樣。


所以如果在HTTPS應用里非剃,所有的請求都應該是HTTPS鏈接置逻,我的建議是對于應用內的資源可以采用相對路徑,對于外部資源則需要HTTPS备绽。

比如好的做法是采用//地址方法券坞,這樣如果是HTTP模式,則加載HTTP資源肺素,HTTPS則加載HTTPS 資源恨锚。

HTML里的資源類似這種寫法:

HTML: <img src="http://cdn.domain.com/logo.png" />

CSS:.class { background: url(//cdn.domain.com/logo.png); }

這并不是什么新鮮玩意,只要符合RFC 1808 Section 4,RFC 2396 Section 5.2,RFC 3986 Section 5.2規(guī)范的瀏覽都支持這種模式倍靡,包括IE7和IE8在內猴伶,不過需要注意的一點的是,IE7和IE8會下載2次菌瘫。

可以見這里:http://stackoverflow.com/questions/6785442/browser-support-for-urls-beginning-with-double-slash

3. Cookie

同一的域名下的Cookie是可以區(qū)分開來的蜗顽,默認的是HTTP下Cookie會帶到HTTPS下布卡,HTTPS下的Cookie是不會帶到HTTP下雨让,如果要2者互通,需要設置Cookie的Secure標記為false忿等。

詳細見這里:https://en.wikipedia.org/wiki/HTTP_cookie#HttpOnly_cookie

Java的代碼如下:cookie.setSecure(false)

否則的話栖忠,你會發(fā)現(xiàn)HTTPS寫的Cookie,在其他HTTP下面讀取不到

4. 開發(fā)環(huán)境

因為采用HTTPS后贸街,就無法采用fiddler/charles等代理工具用來調試請求庵寞,所以最好是應用同時能夠支持HTTP模式,這樣開發(fā)過程中采用HTTP薛匪,到了生產(chǎn)環(huán)境后就切換到HTTPS捐川。

我的方法是Nginx + HTTP,Nginx部署HTTPS逸尖,后端應用只采用http古沥,這樣開發(fā)也是用HTTP,如果是HTTPS模式娇跟,則由Nginx在HTTP HEADER里設置一個變量岩齿,標記當前是HTTPS模式。

location / {

? ?proxy_passhttp://127.0.0.1:8080;

? ? proxy_set_header Host $host;

? ? proxy_set_headerX-HTTP-SECURE TRUE;

? ? ?proxy_set_header X-Real-IP$remote_addr;

? ? proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

}

這樣苞俘,開發(fā)就不需要部署HTTPS證書了盹沈,只是在HTTP模式下開發(fā)。

5. Java

Java里訪問有些HTTPS網(wǎng)站會報錯吃谣,是因為對方HTTPS的證書(比如證書等級不夠)或者配置問題乞封,對于確定可信的網(wǎng)站做裙,可以繞過HTTPS證書。

private static voidtrustAllHttpsCertificates()throwsException ? ?{

javax.net.ssl.TrustManager[]trustAllCerts=newjavax.net.ssl.TrustManager[1];

javax.net.ssl.TrustManagertm=newmiTM();

trustAllCerts[0] =tm;

javax.net.ssl.SSLContextsc= javax.net.ssl.SSLContext.getInstance("SSL");

sc.init(null,trustAllCerts,null);

javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

}


如果還有其他歌亲,我想到了再補充菇用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市陷揪,隨后出現(xiàn)的幾起案子惋鸥,更是在濱河造成了極大的恐慌,老刑警劉巖悍缠,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卦绣,死亡現(xiàn)場離奇詭異,居然都是意外死亡飞蚓,警方通過查閱死者的電腦和手機滤港,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趴拧,“玉大人溅漾,你說我怎么就攤上這事≈瘢” “怎么了添履?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脑又。 經(jīng)常有香客問我暮胧,道長,這世上最難降的妖魔是什么问麸? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任往衷,我火速辦了婚禮,結果婚禮上严卖,老公的妹妹穿的比我還像新娘席舍。我一直安慰自己,他們只是感情好哮笆,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布来颤。 她就那樣靜靜地躺著,像睡著了一般疟呐。 火紅的嫁衣襯著肌膚如雪脚曾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天启具,我揣著相機與錄音本讥,去河邊找鬼。 笑死,一個胖子當著我的面吹牛拷沸,可吹牛的內容都是我干的色查。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼撞芍,長吁一口氣:“原來是場噩夢啊……” “哼秧了!你這毒婦竟也來了?” 一聲冷哼從身側響起序无,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤验毡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帝嗡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晶通,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年哟玷,在試婚紗的時候發(fā)現(xiàn)自己被綠了狮辽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡巢寡,死狀恐怖喉脖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情抑月,我是刑警寧澤树叽,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站爪幻,受9級特大地震影響菱皆,放射性物質發(fā)生泄漏须误。R本人自食惡果不足惜挨稿,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一京痢、第九天 我趴在偏房一處隱蔽的房頂上張望奶甘。 院中可真熱鬧,春花似錦祭椰、人聲如沸臭家。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钉赁。三九已至,卻和暖如春携茂,著一層夾襖步出監(jiān)牢的瞬間你踩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留带膜,地道東北人吩谦。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像膝藕,于是被迫代替她去往敵國和親式廷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理芭挽,服務發(fā)現(xiàn)滑废,斷路器,智...
    卡卡羅2017閱讀 134,669評論 18 139
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光劍書架上的書閱讀 3,884評論 2 8
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,183評論 25 707
  • 從三月份找實習到現(xiàn)在袜爪,面了一些公司策严,掛了不少,但最終還是拿到小米饿敲、百度妻导、阿里、京東怀各、新浪倔韭、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,255評論 11 349
  • 當你的心告訴你瓢对,要不斷你向前寿酌!向前再向前的時候——你很可能遇到了一個傳銷組織 <( ̄︶ ̄)> 剛剛的對話依稀可見,...
    番茄洋柿子閱讀 327評論 0 1