--- title: HTTP vs HTTPSï¼åºç¨å±ï¼ category: è®¡ç®æºåºç¡ tag: - è®¡ç®æºç½ç» --- ## HTTP åè®® ### HTTP åè®®ä»ç» HTTP åè®®ï¼å ¨ç§°è¶ ææ¬ä¼ è¾åè®®ï¼Hypertext Transfer Protocolï¼ã顾åæä¹ï¼HTTP å议就æ¯ç¨æ¥è§èè¶ ææ¬çä¼ è¾ï¼è¶ ææ¬ï¼ä¹å°±æ¯ç½ç»ä¸çå æ¬ææ¬å¨å çåå¼åæ ·çæ¶æ¯ï¼å ·ä½æ¥è¯´ï¼ä¸»è¦æ¯æ¥è§èæµè§å¨åæå¡å¨ç«¯çè¡ä¸ºçã å¹¶ä¸ï¼HTTP æ¯ä¸ä¸ªæ ç¶æï¼statelessï¼åè®®ï¼ä¹å°±æ¯è¯´æå¡å¨ä¸ç»´æ¤ä»»ä½æå ³å®¢æ·ç«¯è¿å»æå请æ±çæ¶æ¯ãè¿å ¶å®æ¯ä¸ç§ææ¿ï¼æç¶æåè®®ä¼æ´å 夿ï¼éè¦ç»´æ¤ç¶æï¼åå²ä¿¡æ¯ï¼ï¼èä¸å¦æå®¢æ·ææå¡å¨å¤±æï¼ä¼äº§çç¶æçä¸ä¸è´ï¼è§£å³è¿ç§ä¸ä¸è´ç代价æ´é«ã ### HTTP åè®®éä¿¡è¿ç¨ HTTP æ¯åºç¨å±åè®®ï¼å®ä»¥ TCPï¼ä¼ è¾å±ï¼ä½ä¸ºåºå±åè®®ï¼é»è®¤ç«¯å£ä¸º 80. éä¿¡è¿ç¨ä¸»è¦å¦ä¸ï¼ 1. æå¡å¨å¨ 80 端å£çå¾ å®¢æ·ç请æ±ã 2. æµè§å¨åèµ·å°æå¡å¨ç TCP è¿æ¥ï¼åå»ºå¥æ¥å Socketï¼ã 3. æå¡å¨æ¥æ¶æ¥èªæµè§å¨ç TCP è¿æ¥ã 4. æµè§å¨ï¼HTTP 客æ·ç«¯ï¼ä¸ Web æå¡å¨ï¼HTTP æå¡å¨ï¼äº¤æ¢ HTTP æ¶æ¯ã 5. å ³é TCP è¿æ¥ã ### HTTP åè®®ä¼ç¹ æ©å±æ§å¼ºãé度快ãè·¨å¹³å°æ¯ææ§å¥½ã ## HTTPS åè®® ### HTTPS åè®®ä»ç» HTTPS åè®®ï¼Hyper Text Transfer Protocol Secureï¼ï¼æ¯ HTTP çå 强å®å ¨çæ¬ãHTTPS æ¯åºäº HTTP çï¼ä¹æ¯ç¨ TCP ä½ä¸ºåºå±åè®®ï¼å¹¶é¢å¤ä½¿ç¨ SSL/TLS åè®®ç¨ä½å å¯åå®å ¨è®¤è¯ãé»è®¤ç«¯å£å·æ¯ 443. HTTPS åè®®ä¸ï¼SSL ééé常使ç¨åºäºå¯é¥çå å¯ç®æ³ï¼å¯é¥é¿åº¦éå¸¸æ¯ 40 æ¯ç¹æ 128 æ¯ç¹ã ### HTTPS åè®®ä¼ç¹ ä¿å¯æ§å¥½ã信任度é«ã ## HTTPS çæ ¸å¿âSSL/TLS åè®® HTTPS 乿以è½è¾¾å°è¾é«çå®å ¨æ§è¦æ±ï¼å°±æ¯ç»åäº SSL/TLS å TCP åè®®ï¼å¯¹éä¿¡æ°æ®è¿è¡å å¯ï¼è§£å³äº HTTP æ°æ®éæçé®é¢ãæ¥ä¸æ¥éç¹ä»ç»ä¸ä¸ SSL/TLS çå·¥ä½åçã ### SSL å TLS çåºå«ï¼ **SSL å TLS 没æå¤ªå¤§çåºå«ã** SSL æå®å ¨å¥æ¥ååè®®ï¼Secure Sockets Layerï¼ï¼é¦æ¬¡åå¸ä¸ 1996 å¹´ãSSL ç馿¬¡åå¸å ¶å®å·²ç»æ¯ä»ç 3.0 çæ¬ï¼SSL 1.0 仿ªé¢ä¸ï¼SSL 2.0 åå ·æè¾å¤§ç缺é·ï¼DROWN 缺é·ââDecrypting RSA with Obsolete and Weakened eNcryptionï¼ãå¾å¿«ï¼å¨ 1999 å¹´ï¼SSL 3.0 è¿ä¸æ¥å级ï¼**æ°çæ¬è¢«å½å为 TLS 1.0**ãå æ¤ï¼TLS æ¯åºäº SSL ä¹ä¸çï¼ä½ç±äºä¹ æ¯å«æ³ï¼é常æ HTTPS ä¸çæ ¸å¿å å¯å议混称为 SSL/TLSã ### SSL/TLS çå·¥ä½åç #### é对称å å¯ SSL/TLS çæ ¸å¿è¦ç´ æ¯**é对称å å¯**ãé对称å å¯éç¨ä¸¤ä¸ªå¯é¥ââä¸ä¸ªå ¬é¥ï¼ä¸ä¸ªç§é¥ãå¨éä¿¡æ¶ï¼ç§é¥ä» ç±è§£å¯è ä¿åï¼å ¬é¥ç±ä»»ä½ä¸ä¸ªæ³ä¸è§£å¯è éä¿¡çåéè ï¼å å¯è ï¼æç¥ãå¯ä»¥è®¾æ³ä¸ä¸ªåºæ¯ï¼ > å¨æä¸ªèªå©é®å±ï¼æ¯ä¸ªéä¿¡ä¿¡é齿¯ä¸ä¸ªé®ç®±ï¼æ¯ä¸ä¸ªé®ç®±ææè é½å¨æè¾¹ç«äºä¸ä¸ªçåï¼ä¸é¢æç䏿é¥åï¼è¿æ¯æçå ¬é¥ï¼åéè 请å°ä¿¡ä»¶æ¾å ¥æçé®ç®±ï¼å¹¶ç¨å ¬é¥é好ã > > 使¯å ¬é¥åªè½å éï¼å¹¶ä¸è½è§£éãè§£éåªè½ç±é®ç®±çææè ââå ä¸ºåªæä»ä¿åçç§é¥ã > > è¿æ ·ï¼éä¿¡ä¿¡æ¯å°±ä¸ä¼è¢«å ¶ä»äººæªè·äºï¼è¿ä¾èµäºç§é¥çä¿å¯æ§ã  é对称å å¯çå ¬é¥åç§é¥éè¦éç¨ä¸ç§å¤æçæ°å¦æºå¶çæï¼å¯ç å¦è®¤ä¸ºï¼ä¸ºäºè¾é«çå®å ¨æ§ï¼å°½éä¸è¦èªå·±åé å 坿¹æ¡ï¼ãå ¬ç§é¥å¯¹ççæç®æ³ä¾èµäºååé·é¨å½æ°ã > åå彿°ï¼å·²ç¥åå彿° fï¼ç»å®ä»»æä¸ä¸ªè¾å ¥ xï¼æè®¡ç®è¾åº y=f(x)ï¼èç»å®ä¸ä¸ªè¾åº yï¼å设åå¨ f(x)=yï¼å¾é¾æ ¹æ® f æ¥è®¡ç®åº xã > > ååé·é¨å½æ°ï¼ä¸ä¸ªè¾å¼±çåå彿°ãå·²ç¥ååé·é¨å½æ° fï¼é·é¨ hï¼ç»å®ä»»æä¸ä¸ªè¾å ¥ xï¼æè®¡ç®åºè¾åº y=f(x;h)ï¼èç»å®ä¸ä¸ªè¾åº yï¼å设åå¨ f(x;h)=yï¼å¾é¾æ ¹æ® f æ¥è®¡ç®åº xï¼ä½å¯ä»¥æ ¹æ® f å h æ¥æ¨å¯¼åº xã  ä¸å¾å°±æ¯ä¸ä¸ªåå彿°ï¼ä¸æ¯å项é·é¨å½æ°ï¼ï¼å设æä¸ä¸ªç»ä¸ç§ç±ï¼ä»»ä½ç¥éäºè¿ä¸ªç§ç±ç人é½å¯ä»¥æè¹ææ±æ¦¨æè¹æï¼é£ä¹è¿ä¸ªç§ç±å°±æ¯âé·é¨âäºå§ã å¨è¿éï¼å½æ° f çè®¡ç®æ¹æ³ç¸å½äºå ¬é¥ï¼é·é¨ h ç¸å½äºç§é¥ãå ¬é¥ f æ¯å ¬å¼çï¼ä»»ä½äººå¯¹å·²æè¾å ¥ï¼é½å¯ä»¥ç¨ f å å¯ï¼èè¦æ³æ ¹æ®å å¯ä¿¡æ¯è¿ååºåä¿¡æ¯ï¼å¿ é¡»è¦æç§é¥æè¡ã #### 对称å å¯ ä½¿ç¨ SSL/TLS è¿è¡éä¿¡çåæ¹éè¦ä½¿ç¨é对称å 坿¹æ¡æ¥éä¿¡ï¼ä½æ¯é对称å å¯è®¾è®¡äºè¾ä¸ºå¤æçæ°å¦ç®æ³ï¼å¨å®é éä¿¡è¿ç¨ä¸ï¼è®¡ç®ç代价è¾é«ï¼æç太ä½ï¼å æ¤ï¼SSL/TLS å®é å¯¹æ¶æ¯çå å¯ä½¿ç¨çæ¯å¯¹ç§°å å¯ã > 对称å å¯ï¼éä¿¡åæ¹å ±äº«å¯ä¸å¯é¥ kï¼å è§£å¯ç®æ³å·²ç¥ï¼å 坿¹å©ç¨å¯é¥ k å å¯ï¼è§£å¯æ¹å©ç¨å¯é¥ k è§£å¯ï¼ä¿å¯æ§ä¾èµäºå¯é¥ k çä¿å¯æ§ã  对称å å¯çå¯é¥çæä»£ä»·æ¯å ¬ç§é¥å¯¹ççæä»£ä»·ä½å¾å¤ï¼é£ä¹æç人ä¼é®äºï¼ä¸ºä»ä¹ SSL/TLS è¿éè¦ä½¿ç¨é对称å å¯å¢ï¼å 为对称å å¯çä¿å¯æ§å®å ¨ä¾èµäºå¯é¥çä¿å¯æ§ãå¨åæ¹éä¿¡ä¹åï¼éè¦åéä¸ä¸ªç¨äºå¯¹ç§°å å¯çå¯é¥ãæä»¬ç¥éç½ç»éä¿¡çä¿¡éæ¯ä¸å®å ¨çï¼ä¼ è¾æ¥æå¯¹ä»»ä½äººæ¯å¯è§çï¼å¯é¥ç交æ¢è¯å®ä¸è½ç´æ¥å¨ç½ç»ä¿¡éä¸ä¼ è¾ãå æ¤ï¼ä½¿ç¨é对称å å¯ï¼å¯¹å¯¹ç§°å å¯çå¯é¥è¿è¡å å¯ï¼ä¿æ¤è¯¥å¯é¥ä¸å¨ç½ç»ä¿¡éä¸è¢«çªå¬ãè¿æ ·ï¼éä¿¡åæ¹åªéè¦ä¸æ¬¡é对称å å¯ï¼äº¤æ¢å¯¹ç§°å å¯çå¯é¥ï¼å¨ä¹åçä¿¡æ¯éä¿¡ä¸ï¼ä½¿ç¨ç»å¯¹å®å ¨çå¯é¥ï¼å¯¹ä¿¡æ¯è¿è¡å¯¹ç§°å å¯ï¼å³å¯ä¿è¯ä¼ è¾æ¶æ¯çä¿å¯æ§ã #### å ¬é¥ä¼ è¾çä¿¡èµæ§ SSL/TLS ä»ç»å°è¿éï¼äºè§£ä¿¡æ¯å®å ¨çæåå伿³å°ä¸ä¸ªå®å ¨éæ£ï¼è®¾æ³ä¸ä¸ªä¸é¢çåºæ¯ï¼ > 客æ·ç«¯ C åæå¡å¨ S æ³è¦ä½¿ç¨ SSL/TLS éä¿¡ï¼ç±ä¸è¿° SSL/TLS éä¿¡åçï¼C éè¦å ç¥é S çå ¬é¥ï¼è S å ¬é¥çå¯ä¸è·åéå¾ï¼å°±æ¯æ S å ¬é¥å¨ç½ç»ä¿¡éä¸ä¼ è¾ãè¦æ³¨æç½ç»ä¿¡ééä¿¡ä¸æå 个åæï¼ > > 1. ä»»ä½äººé½å¯ä»¥æè·éä¿¡å > 2. éä¿¡å çä¿å¯æ§ç±åéè 设计 > 3. ä¿å¯ç®æ³è®¾è®¡æ¹æ¡é»è®¤ä¸ºå ¬å¼ï¼èï¼è§£å¯ï¼å¯é¥é»è®¤æ¯å®å ¨ç > > å æ¤ï¼å设 S å ¬é¥ä¸åå å¯ï¼å¨ä¿¡éä¸ä¼ è¾ï¼é£ä¹å¾æå¯è½åå¨ä¸ä¸ªæ»å»è Aï¼åéç» C ä¸ä¸ªè¯å ï¼åè£ æ¯ S å ¬é¥ï¼å ¶å®æ¯è¯±é¥µæå¡å¨ AS çå ¬é¥ãå½ C æ¶è·äº AS çå ¬é¥ï¼å´ä»¥ä¸ºæ¯ S çå ¬é¥ï¼ï¼C åç»å°±ä¼ä½¿ç¨ AS å ¬é¥å¯¹æ°æ®è¿è¡å å¯ï¼å¹¶å¨å ¬å¼ä¿¡éä¼ è¾ï¼é£ä¹ A å°æè·è¿äºå å¯å ï¼ç¨ AS çç§é¥è§£å¯ï¼å°±æªè·äº C æ¬è¦ç» S åéçå 容ï¼è C å S äºäººå ¨ç¶ä¸ç¥ã > > åæ ·çï¼S å ¬é¥å³ä½¿åå å¯ï¼ä¹é¾ä»¥é¿å è¿ç§ä¿¡ä»»æ§é®é¢ï¼C 被 AS æè·äºï¼  为äºå ¬é¥ä¼ è¾çä¿¡èµæ§é®é¢ï¼ç¬¬ä¸æ¹æºæåºè¿èçââè¯ä¹¦é¢åæºæï¼CAï¼Certificate Authorityï¼ãCA é»è®¤æ¯åä¿¡ä»»çç¬¬ä¸æ¹ãCA ä¼ç»å个æå¡å¨é¢åè¯ä¹¦ï¼è¯ä¹¦åå¨å¨æå¡å¨ä¸ï¼å¹¶éæ CA ç**çµåç¾å**ï¼è§ä¸èï¼ã å½å®¢æ·ç«¯ï¼æµè§å¨ï¼åæå¡å¨åé HTTPS è¯·æ±æ¶ï¼ä¸å®è¦å è·åç®æ æå¡å¨çè¯ä¹¦ï¼å¹¶æ ¹æ®è¯ä¹¦ä¸çä¿¡æ¯ï¼æ£éªè¯ä¹¦çåæ³æ§ã䏿¦å®¢æ·ç«¯æ£æµå°è¯ä¹¦éæ³ï¼å°±ä¼åçé误ã客æ·ç«¯è·åäºæå¡å¨çè¯ä¹¦åï¼ç±äºè¯ä¹¦çä¿¡ä»»æ§æ¯ç±ç¬¬ä¸æ¹ä¿¡èµæºæè®¤è¯çï¼èè¯ä¹¦ä¸åå å«çæå¡å¨çå ¬é¥ä¿¡æ¯ï¼å®¢æ·ç«¯å°±å¯ä»¥æ¾å¿çä¿¡ä»»è¯ä¹¦ä¸çå ¬é¥å°±æ¯ç®æ æå¡å¨çå ¬é¥ã #### æ°åç¾å 好ï¼å°è¿ä¸å°èï¼å·²ç»æ¯ SSL/TLS ç尾声äºãä¸ä¸å°èæå°äºæ°åç¾åï¼æ°åç¾åè¦è§£å³çé®é¢ï¼æ¯é²æ¢è¯ä¹¦è¢«ä¼ªé ãç¬¬ä¸æ¹ä¿¡èµæºæ CA 乿以è½è¢«ä¿¡èµï¼å°±æ¯ **é æ°åç¾åææ¯** ã æ°åç¾åï¼æ¯ CA å¨ç»æå¡å¨é¢åè¯ä¹¦æ¶ï¼ä½¿ç¨æ£å+å å¯çç»åææ¯ï¼å¨è¯ä¹¦ä¸çä¸ªç« ï¼ä»¥æ¤æ¥æä¾éªä¼ªçåè½ãå ·ä½è¡ä¸ºå¦ä¸ï¼ > CA ç¥éæå¡å¨çå ¬é¥ï¼å¯¹è¯ä¹¦éç¨æ£åææ¯çæä¸ä¸ªæè¦ãCA ä½¿ç¨ CA ç§é¥å¯¹è¯¥æè¦è¿è¡å å¯ï¼å¹¶éå¨è¯ä¹¦ä¸æ¹ï¼åéç»æå¡å¨ã > > ç°å¨æå¡å¨å°è¯¥è¯ä¹¦åéç»å®¢æ·ç«¯ï¼å®¢æ·ç«¯éè¦éªè¯è¯¥è¯ä¹¦ç身份ã客æ·ç«¯æ¾å°ç¬¬ä¸æ¹æºæ CAï¼è·ç¥ CA çå ¬é¥ï¼å¹¶ç¨ CA å ¬é¥å¯¹è¯ä¹¦çç¾åè¿è¡è§£å¯ï¼è·å¾äº CA çæçæè¦ã > > 客æ·ç«¯å¯¹è¯ä¹¦æ°æ®ï¼å 嫿å¡å¨çå ¬é¥ï¼åç¸åçæ£åå¤çï¼å¾å°æè¦ï¼å¹¶å°è¯¥æè¦ä¸ä¹åä»ç¾åä¸è§£ç åºçæè¦å对æ¯ï¼å¦æç¸åï¼å身份éªè¯æåï¼å¦åéªè¯å¤±è´¥ã  æ»ç»æ¥è¯´ï¼å¸¦æè¯ä¹¦çå ¬é¥ä¼ è¾æºå¶å¦ä¸ï¼ 1. 设ææå¡å¨ Sï¼å®¢æ·ç«¯ Cï¼åç¬¬ä¸æ¹ä¿¡èµæºæ CAã 2. S ä¿¡ä»» CAï¼CA æ¯ç¥é S å ¬é¥çï¼CA å S é¢åè¯ä¹¦ãå¹¶éä¸ CA ç§é¥å¯¹æ¶æ¯æè¦çå å¯ç¾åã 3. S è·å¾ CA é¢åçè¯ä¹¦ï¼å°è¯¥è¯ä¹¦ä¼ éç» Cã 4. C è·å¾ S çè¯ä¹¦ï¼ä¿¡ä»» CA å¹¶ç¥æ CA å ¬é¥ï¼ä½¿ç¨ CA å ¬é¥å¯¹ S è¯ä¹¦ä¸çç¾åè§£å¯ï¼åæ¶å¯¹æ¶æ¯è¿è¡æ£åå¤çï¼å¾å°æè¦ãæ¯è¾æè¦ï¼éªè¯ S è¯ä¹¦çç宿§ã 5. 妿 C éªè¯ S è¯ä¹¦æ¯çå®çï¼åä¿¡ä»» S çå ¬é¥ï¼å¨ S è¯ä¹¦ä¸ï¼ã  å¯¹äºæ°åç¾åï¼æè¿éè®²çæ¯è¾ç®åï¼å¦æä½ æ²¡æææ¸ æ¥çè¯ï¼å¼ºçæ¨èä½ çç[æ°åç¾ååæ°åè¯ä¹¦åç](https://www.bilibili.com/video/BV18N411X7ty/)è¿ä¸ªè§é¢ï¼è¿æ¯æçè¿ææ¸ æ°ç讲解ã  ## æ»ç» - **端å£å·**ï¼HTTP é»è®¤æ¯ 80ï¼HTTPS é»è®¤æ¯ 443ã - **URL åç¼**ï¼HTTP ç URL åç¼æ¯ `http://`ï¼HTTPS ç URL åç¼æ¯ `https://`ã - **å®å ¨æ§åèµæºæ¶è**ï¼HTTP åè®®è¿è¡å¨ TCP ä¹ä¸ï¼ææä¼ è¾çå 容齿¯ææï¼å®¢æ·ç«¯åæå¡å¨ç«¯é½æ æ³éªè¯å¯¹æ¹ç身份ãHTTPS æ¯è¿è¡å¨ SSL/TLS ä¹ä¸ç HTTP åè®®ï¼SSL/TLS è¿è¡å¨ TCP ä¹ä¸ãææä¼ è¾çå 容é½ç»è¿å å¯ï¼å å¯éç¨å¯¹ç§°å å¯ï¼ä½å¯¹ç§°å å¯çå¯é¥ç¨æå¡å¨æ¹çè¯ä¹¦è¿è¡äºé对称å å¯ãæä»¥è¯´ï¼HTTP å®å ¨æ§æ²¡æ HTTPS é«ï¼ä½æ¯ HTTPS æ¯ HTTP èè´¹æ´å¤æå¡å¨èµæºã