青云 HTTPS 服務(wù)的兩種配置方案

8月份要把服務(wù)遷移到青云上赢笨,負責(zé)搭建 HTTPS 服務(wù)的Daniel苦惱兩天有余五鲫,配置 HTTPS 時一直報告下述問題:

400 Bad Request
The plain HTTP request was sent to HTTPS port

這是什么問題她紫?

這個問題是我們嘗試在云服務(wù)上搭建 HTTPS 時出現(xiàn)的祖今,要清楚復(fù)述這個問題有點復(fù)雜歧斟,各位直接移步看 stackoverflow 上的 Dealing with nginx 400 “The plain HTTP request was sent to HTTPS port” error 這個例子吧紧武,相信你會有很多收獲击你。

以下這段會幫助你理解其實質(zhì):

The error says it all actually. Your configuration tells Nginx to listen on port 80 (HTTP) and use SSL. When you point your browser to http://localhost, it tries to connect via HTTP. Since Nginx expects SSL, it complains with the error.

HTTPS是什么舞丛?

HTTPS: HTTP over TLS, HTTP over SSL, and HTTP Secure.
簡單地說耘子,HTTPS 就是在一條由 SSL/TLS 加密的連接(connection)上傳輸HTTP數(shù)據(jù),目的是防止HTTP內(nèi)容被偷聽和篡改球切。
換言之谷誓,HTTPS在一個不安全的網(wǎng)絡(luò)上創(chuàng)建了一個安全通道。
HTTP數(shù)據(jù)有一個加密和解密的過程吨凑。理解了這一點你就理解了在云上配置的兩種方案捍歪。

我們應(yīng)用HTTPS做什么?

無他鸵钝,就是為了防止內(nèi)容被篡改糙臼。

nginx的配置

一定要熟悉nginx的配置,否則恩商,你會到處亂搜解決方法变逃,不是懷疑這兒配錯了,就是懷疑那兒配錯了怠堪。

搭建負載均衡器

有兩個方案可以實現(xiàn)HTTPS服務(wù)揽乱。方案一就是由負載均衡器(LB = Load Balancer)來實現(xiàn),方案二由后端WebServer來實現(xiàn)粟矿。

方案一:LB實現(xiàn)

請按照青云的 搭建 HTTPS 協(xié)議的負載均衡器指南 的要求進行 HTTPS 協(xié)議搭建凰棉。因為我們使用路由器,情況有些許不同陌粹,要點:

  1. LB配置HTTPS
    將你的服務(wù)器證書的“證書內(nèi)容” 和 “私鑰”配好撒犀,監(jiān)聽HTTPS協(xié)議,443端口掏秩。
  2. 路由器配置
    在路由器上將443映射到后端的80端口(HTTP)或舞。
  3. 后端nginx配置
    這里只需要配置HTTP服務(wù)即可,因為解密數(shù)據(jù)的任務(wù)由LB承擔(dān)了蒙幻,這里自然不需要配置HTTPS了嚷那。
    注:Daniel就是折在這里了,他在路由器里將443映射到后端的443 ssl杆煞,路由器過來的數(shù)據(jù)已經(jīng)解密了魏宽,已經(jīng)是plain HTTP request,還要發(fā)送到HTTPS port(443)上决乎,當(dāng)然就會 complain with the error了队询。
青云HTTPS服務(wù)的兩種配置方案

方案二:后端WebServer實現(xiàn)

  1. LB配置TCP
    監(jiān)聽TCP協(xié)議,443端口构诚。
  2. 路由器配置
    在路由器上將443映射到后端的443端口(HTTPS)蚌斩。
  3. 后端nginx配置
    按照標準的HTTPS服務(wù)進行配置。如下:
server {
        listen 80;
        listen 443 ssl;
        server_name  c.example.com;

        ssl_certificate /usr/local/nginx/conf/app/example/example.crt;
        ssl_certificate_key /usr/local/nginx/conf/app/example/example.key;

        root /home/app/c.example.com/;

        location ~ \.(htm|html)$ {
            add_header Cache-Control no-store;
            expires -1;
        }

        location / {
            index index.html;
        }

    access_log /home/logs/c.example.com/access.log access;
    error_log /home/logs/c.example.com/error.log info;
}

相對于“原始的nginx配置”的改進:

  • 80和443在一個 server 里面即可(保持簡單性范嘱、一致性)送膳。
  • index里的index.php刪除员魏,因為網(wǎng)站根本不提供php服務(wù)。(不該有的東西一點都不要有叠聋,保持簡單撕阎、簡潔
  • 順序調(diào)整(增強可理解性)。

附:原始的nginx配置

原始的nginx配置

建議

為何使用https虏束?

我們使用https的初心是防止HTTP內(nèi)容被篡改,因為做正常CPS業(yè)務(wù)的導(dǎo)航網(wǎng)站常遇到被流氓推廣者強行篡改內(nèi)容從而劫持流量進行跳轉(zhuǎn)的情況厦章。

跳轉(zhuǎn)地址:http://c.example.com => https://c.example.com镇匀。

協(xié)議切換
  • zz
    js 負責(zé)跳轉(zhuǎn),js 文件中類似語句https://c.example.com/shopid.html?uid=袜啃,其中https即指明使用https協(xié)議汗侵。

    js文件位于www網(wǎng)站/$version/toolbar/js/toolbar.js。當(dāng)前3.7和3.9版本在正常維護群发。

  • sm
    由軟件提供跳轉(zhuǎn)晰韵,需要修改配置文件 unionmap.xml,軟件重啟后會下載該配置文件的 zip 包(2015-09-07)也物。

    該配置文件在 http://click.example.com/admin 后臺的商城管理下生成宫屠,當(dāng)下僅點擊生成新的商城聯(lián)盟映射表即可列疗,其他無需操作滑蚯。

    注:由于幾經(jīng)演變,事先需修改 db_cashback 的 t_u_union 表:update t_u_union set un_px_url=replace(un_px_url,'https','http'); 而無需通過后臺頁面功能修改任何內(nèi)容抵栈。

  • unionmap.xml.sample


    unionmap.xml.sample

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末告材,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子古劲,更是在濱河造成了極大的恐慌斥赋,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件产艾,死亡現(xiàn)場離奇詭異疤剑,居然都是意外死亡,警方通過查閱死者的電腦和手機闷堡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門隘膘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杠览,你說我怎么就攤上這事弯菊。” “怎么了踱阿?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵管钳,是天一觀的道長钦铁。 經(jīng)常有香客問我,道長才漆,這世上最難降的妖魔是什么牛曹? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮栽烂,結(jié)果婚禮上躏仇,老公的妹妹穿的比我還像新娘。我一直安慰自己腺办,他們只是感情好焰手,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怀喉,像睡著了一般书妻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上躬拢,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天躲履,我揣著相機與錄音,去河邊找鬼聊闯。 笑死工猜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菱蔬。 我是一名探鬼主播篷帅,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拴泌!你這毒婦竟也來了魏身?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蚪腐,失蹤者是張志新(化名)和其女友劉穎箭昵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體回季,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡家制,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泡一。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颤殴。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瘾杭,靈堂內(nèi)的尸體忽然破棺而出诅病,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布贤笆,位于F島的核電站蝇棉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏芥永。R本人自食惡果不足惜篡殷,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望埋涧。 院中可真熱鬧板辽,春花似錦、人聲如沸棘催。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春藐吮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背画畅。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宋距,地道東北人轴踱。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像谚赎,于是被迫代替她去往敵國和親淫僻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容