¸üÐÂʱ¼ä:2019Äê10ÔÂ23ÈÕ16ʱ43·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:
HTTPµÄ±×¶Ë¼°HTTPSµÄÓÉÀ´
ÖÚËùÖÜÖªHTTPÐÒéÊÇÒÔTCPÐÒéΪ»ùʯµ®ÉúµÄÒ»¸öÓÃÓÚ´«ÊäWebÄÚÈݵÄÒ»¸öÍøÂçÐÒ飬ÔÚ“ÍøÂç·Ö²ãÄ£ÐÍ”ÖÐÊôÓÚ“Ó¦ÓòãÐÒ锵ÄÒ»ÖÖ¡£ÄÇôÔÚÕâÀïÎÒÃDz¢²»Ñо¿¸ÃÐÒé±ê×¼±¾Éí£¬¶øÊÇ´Ó°²È«½Ç¶Èȥ̽¾¿Ê¹ÓøÃÐÒé´«ÊäÊý¾Ý±¾Éí´æÔڵݲȫÎÊÌâ:
(1)ͨÐÅʹÓÃÃ÷ÎÄ(²»¼ÓÃÜ)£¬ÄÚÈÝ¿ÉÄܱ»ÇÔÌý;
(2)²»Ñé֤ͨÐÅ·½µÄÉí·Ý£¬Òò´Ë¿ÉÄÜÔâÓöαװ;
(3)ÎÞ·¨Ö¤Ã÷±¨ÎĵÄÍêÕûÐУ¬ËùÒÔ¿ÉÄܱ»´Û¸Ä¡£
ΪÁ˽â¾öHTTPÐÒé´æÔڵݲȫÐÔÎÊÌ⣬ÉÏÊÀ¼Í90Äê´úÓÉÍø¾°(NetScape)¹«Ë¾Éè¼ÆÁËSSL(Secure Sockets Layer)ÐÒé——“°²È«Ì×½Ó²ã”ÐÒé¡£¾¹ý¶àÄê·¢Õ¹SSLÔÚ»¥ÁªÍøÉϹ㷺ӦÓ㬱ê×¼»¯ºóÃû³Æ¸ÄΪTLS(Transport Layer Security)——“´«Êä²ã°²È«”ÐÒé¡£¡¾ÍƼöÁ˽âÀÖÓã²¥¿Ípython+È˹¤ÖÇÄܿγ̡¿

ËùνµÄHTTPS¼´ÊÇ“HTTP+SSL/TLS”µÄ½áºÏʹÓöøÒÑ¡£½â¾öµÄÊÇHTTPÐÒéÊý¾Ý´«ÊäµÄ°²È«ÐÔÎÊÌâ——ÔÚHTTPÐÒé²ãºÍTCP´«Êä²ãÖ®¼ä¼ÓÈë“°²È«²ã”£¬Ê¹µÃÓ¦ÓòãÊý¾Ý±¨¾¹ý¼ÓÃܺóÔÙ´«Ê䣬±£Ö¤Êý¾ÝÔÚ´«Êä¹ý³ÌÖеÄÍêÕûÐÔ¡£
ÄÇô£¬SSL/TLSÔÚÊý¾Ý´«Êä¹ý³ÌÖÐÊÇÈçºÎʵÏÖ¼ÓÃܱ£Ö¤Êý¾ÝÍêÕûÐÔµÄÄØ?ÔÚ´Ë£¬ÎÒÃÇÐèÒªÔÙ½øÒ»²½Ì½ÌÖ¸ÃÐÒéµÄ¼ÓÃÜÂß¼¡£
¼ÓÃÜËã·¨ÓÐÁ½ÖÖ£¬·Ö±ðÊÇ“¶Ô³Æ¼ÓÃÜ”ºÍ“·Ç¶Ô³Æ¼ÓÃÜ”¡£(±¾ÎIJ»¶ÔÃÜÂëѧÖеļÓÃÜËã·¨µÄʵÏÖ×ö̽ÌÖ£¬½ö½âÊͼÓÃÜÔÀí)¡£
¶Ô³Æ¼ÓÃÜ
¹ØÓÚ“¶Ô³Æ¼ÓÃÜ”£¬¿ÉÒÔÀí½â³ÉÒ»ÖÖ“»¥Ä攵ÄÊýѧÔËËã(¶Ô±Èµ¥Ïò¼ÓÃÜËüÊÇÒ»ÖÖ¿ÉÄæµÄ¼ÓÃÜËã·¨)¡£Ò²¾ÍÊÇ˵ÓмÓÃÜ£¬¾Í¿ÉÒÔ½âÃÜ£¬µ«ÊDz»¹ÜÊǼÓÃÜ»¹ÊǽâÃܵĹý³ÌÖУ¬±ØÐëÓÐÒ»¸öÖÁ¹ØÖØÒªµÄ³ÆÖ®Îª“ÃÜÔ¿”µÄ¶«Î÷²ÎÓëÔËËã¡£

¶Ô³Æ¼ÓÃÜ×î´óµÄÌØµã¾ÍÔÚÓÚ¼ÓÃܺͽâÃÜʹÓÓÏàͬµÄ”ÃÜÔ¿¡£ÄÇô¹Ø¼üÎÊÌâÀ´ÁË——¿Í»§¶ËºÍ·þÎñÆ÷½»»¥Ê¹Óù²Í¬µÄ“ÃÜÔ¿”À´¼ÓÃÜͨÐÅ£¬Õâ¾ÍÐèÒª·þÎñÆ÷½«ÃÜÔ¿´«Ê䏸¿Í»§¶Ë£¬µ«ÊÇÈç´Ë²Ù×÷ÓÖÈçºÎ²ÅÄܹ»±£Ö¤ÃÜÔ¿ÔÚ´«Êä¹ý³ÌÖеݲȫÐÔÄØ?Èç¹ûÃÜÔ¿ÔÚ´«Êä¹ý³ÌÖÐÔâÓöµÚÈý·½À¹½Ø£¬ÄǾÍÒâζ×ÅË«¶ËͨÐÅÖ®ÓÚµÚÈý·½¶øÑÔºÍÃ÷ÎÄͨÐÅûÓÐÇø±ðÁË¡£Ò²¾ÍÊÇ˵¶Ô³Æ¼ÓÃܲ¢²»ÊÊÓÃÓÚÃÜÔ¿ÐèÒªÍøÂç´«ÊäµÄÓ¦Óó¡¾°¡£
ÓÉ´Ë£¬µ®ÉúÁË“·Ç¶Ô³Æ¼ÓÃÜ”¡£
·Ç¶Ô³Æ¼ÓÃÜ
ËùνµÄ“·Ç¶Ô³Æ¼ÓÃÜ”¾ÍÊǼÓÃܺͽâÃÜʹÓõÄÃÜÔ¿ÊDz»Í¬µÄ£¬Ë«¶ËͨП÷×Ô²úÉú¹«Ô¿ºÍ˽Կ³×£¬²¢½»»»Ë«¶ËµÄ¹«Ô¿ÓÃÓÚͨÐżÓÃÜ¡£ÈçÏÂͼËùʾ£¬µ±·þÎñÆ÷°Ñ¹«Ô¿½»¸ø¿Í»§¶Ë£¬¿Í»§¶ËÔÚͨÐÅʱʹÓù«Ô¿¶ÔÊý¾Ý½øÐмÓÃÜ´¦Àí£¬¼´Ê¹¹«Ô¿ÔÚ´«Êä¹ý³ÌÖÐÔâÓöµÚÈý·½À¹½Ø£¬ÓÉÓÚ½âÃܵÄÃÜԿʼÖÕ´æ´¢ÔÚ·þÎñ¶Ë²¢²»»á¶ÔÍ⹫¿ª£¬ËùÒÔÀ¹½Ø·½½öÓÃÒ»¸ö¹«Ô¿ÊÇÎÞ·¨½âÃÜÊý¾ÝµÄ¡£

µ«ÊÇÉÏÊöÓ¦Óó¡¾°ÈÔÈ»´æÔÚÒ»¶¨µÄ±»ÇÔÌýµÄ·çÏÕ¡£Ò²¾ÍÊÇ˵£¬×÷ΪÇÔÌýÕߣ¬ÔÚÀ¹½Ø·þÎñÆ÷ÏìÓ¦¸ø¿Í»§¶ËµÄ¹«Ô¿ºó£¬Î±Ôì·þÎñ¶ËÉí·Ý£¬¸ø¿Í»§¶ËÏìÓ¦ÇÔÌýÕߵĹ«Ô¿¡£´Ëºó¿Í»§¶ËʹÓÃÇÔÌýÕߵĹ«Ô¿¼ÓÃÜÊý¾Ý£¬ÇÔÌýÕßÔÚÀ¹½ØÊý¾ÝÏûÏ¢ºó£¬ÀûÓÃ×Ô¼ºµÄ˽Կ½øÐнâÃÜ£¬µÃµ½Ã÷ÎÄÊý¾Ýºó´Û¸ÄÊý¾Ý£¬È»ºóÔÚʹÓ÷þÎñÆ÷¹«Ô¿¼ÓÃÜÊý¾ÝºÍ·þÎñÆ÷ͨÐÅ¡£Õû¸öͨÐŵĹý³ÌÖУ¬¿Í»§¶Ë¶¼ÎÞ·¨²ì¾õ×Ô¼ºÍ¨ÐŵĶԶ˵½µ×ÊÇÇÔÌýÕß»¹ÊÇ·þÎñÆ÷¡£
¹Û²ìÏÂͼÖеÄͼʾģÐÍ£¬¼ÙÉèͨÐŹý³ÌÒѱ»ÇÔÌý¡£ÄÇôÎÊÌâµ½µ×³öÔÚÄÄÀï?
·Ç¶Ô³Æ¼ÓÃÜÖеÄÇÔÌý·çÏÕͼʾ

ÎÒÃÇ¿ÉÒÔ´ÓÕû¸öÁ÷³ÌµÄÒ»¿ªÊ¼È¥·ÖÎö¡£
¿Í»§¶ËÔÚµÚÒ»´ÎÇëÇó¹«Ô¿£¬²¢ÔÚÏìÓ¦Öеõ½ÁËÀ´×Ô“¶Ô¶Ë”µÄ¹«Ô¿¡£È»ºó¾ÍÀûÓøÓ¹«Ô¿”ͨÐÅ¡£ÎÊÌâ¾ÍÊdzöÔÚÁËÕâ¸ö»·½Ú——ÏÔ¶øÒ×¼û£¬×÷Ϊ¿Í»§¶Ë²¢Ã»ÓжԸÓ¹«Ô¿”µÄ“À´Ô´”×öÑéÖ¤¡£»»¾ä»°Ëµ£¬¿Í»§¶Ë²¢²»Çå³þ£¬¸Ã“¹«Ô¿”ÊÇ·ñÕæµÄÀ´×ÔÕæÕýµÄ·þÎñÆ÷¶ø²»ÊǵÚÈý·½ÇÔÌýÕß¡£
Èç´Ë£¬¿Í»§¶Ë¾Í±ØÐë¶Ô“¹«Ô¿”×öÑéÖ¤£¬È·¶¨¸Ã¹«Ô¿È·ÊµÊÇÀ´×ԺϷ¨µÄ·þÎñÆ÷ºó£¬²ÅÄܹ»±£Ö¤Ë«¶ËͨÐŵݲȫÐÔ¡£
CAÈÏÖ¤»úÖÆ
ÕâÀïÐèÒªÒýÈëµÚÈý·½»ú¹¹: Ö¤Êé°ä·¢»ú¹¹(CA£¬ Certificate Authority)¼´°ä·¢Êý×ÖÖ¤ÊéµÄ»ú¹¹¡£ÊǸºÔ𷢷ź͹ÜÀíÊý×ÖÖ¤ÊéµÄȨÍþ»ú¹¹£¬×÷Ϊµç×ÓÉÌÎñ½»Ò×ÖÐÊÜÐÅÈεĵÚÈý·½£¬³Ðµ£¹«Ô¿ÌåϵÖй«Ô¿ºÏ·¨ÐÔ¼ìÑéµÄÔðÈΡ£
CAÖÐÐÄ»áΪÿ¸öʹÓù«Ô¿µÄÓû§·¢·ÅÒ»¸öÊý×ÖÖ¤Ê飬Êý×ÖÖ¤ÊéµÄ×÷ÓÃÊÇÖ¤Ã÷Ö¤ÊéÖÐÁгöµÄÓû§¹«Ô¿µÄºÏ·¨ÐÔ¡£CA»ú¹¹µÄÊý×ÖÇ©ÃûʹµÃ¹¥»÷ÕßÎÞ·¨Î±ÔìºÍ´Û¸ÄÖ¤Êé¡£»»¾ä»°Ëµ£¬Ö¤ÊéÎÞ·¨´Û¸Ä£¬Ö»ÒªÖ¤ÊéÊÇÓÐЧÇҺϷ¨µÄ£¬ÄÇô֤ÊéÖеĹ«Ô¿¾ÍÊÇÓÐЧÇҺϷ¨µÄ!
·þÎñÆ÷½«¹«Ô¿Ìṩ¸øCA»ú¹¹£¬CA»ú¹¹Ê¹ÓÃ×Ô¼ºµÄ˽Կ½«·þÎñÆ÷¹«Ô¿¼ÓÃܺó½«CAÖ¤Êé(¸ÃÖ¤Êé±£´æÓзþÎñÆ÷¹«Ô¿)·µ»Ø¸ø·þÎñÆ÷¡£Ò»°ã²Ù×÷ϵͳ»òÕßä¯ÀÀÆ÷Öж¼»áÄÚÖÃCA¸ùÖ¤Êé¡£µ±¿Í»§¶Ë(±ÈÈçä¯ÀÀÆ÷)ÇëÇó·þÎñÆ÷ʱ£¬·þÎñÆ÷»á½«CAÖ¤ÊéÌṩ¸ø¿Í»§¶Ë£¬¿Í»§¶Ë»ñÈ¡µ½CAÖ¤Êéºó»áʹÓÃCA¸ùÖ¤Êé½øÐб¾µØÑéÖ¤(Ñé֤ͨ¹ý¼´±íÃ÷·þÎñÆ÷CAÖ¤ÊéµÄºÏ·¨ÐÔ£¬¼ä½Ó±íÃ÷¹«Ô¿À´Ô´µÄºÏ·¨ÐÔ)¡£
×Ôǩ֤ÊéʵÏÖdjango+http+ssl
ÓÉÓÚÕý¹æµÄÖ¤ÊéÐèÒªÏòCA»ú¹¹ÉêÇ룬ÔÚ´Ë£¬ÎÒͨ¹ý×Ôǩ֤ÊéµÄÐÎʽ¼òµ¥ÅäÖÃÒ»¸ö»ùÓÚhttpsͨÐŵÄdjango·þÎñÆ÷¡£
(1)´´½¨Ç©·¢CA¸ùÖ¤ÊéµÄÅäÖÃÎļþMyCompanyCA.cnf

(2)´´½¨ÍØÕ¹ÅäÖÃÎļþ(ÓÃÓÚ´´½¨·þÎñÆ÷CAÖ¤Êé)MyCompanyLocalhost.ext

(3)´´½¨CAÖ¤Êé¼°ÃÜÔ¿(ÐèҪʹÓÃopenssl£¬¿ÉÒÔͨ¹ý°ü¹ÜÀí¹¤¾ß°²×°)

(4)´´½¨sslÖ¤ÊéÃÜÔ¿¼°ÉêÇëÎļþ

(5)Ç©·¢sslÖ¤Êé

¾¹ýÉÏÊö²½Ö裬ͨ¹ýopensslʵÏÖ×ÔÇ©·¢Ö¤Ê飬ÆäÖÐMyCompanyCA¡£cerΪCA¸ùÖ¤Êé(ÓÉÓÚÎÒÃÇÕâÊÇ×ÔÇ©·¢£¬ÏµÍ³»òä¯ÀÀÆ÷Öв¢²»»áÄÚÖøøùÖ¤Ê飬ÐèÒªÎÒÃÇÊÖ¶¯Ìí¼Ó)¡£sslÖ¤ÊéÎļþΪMyCompanyLocalhost¡£cer£¬sslÖ¤ÊéÃÜÔ¿ÎļþΪMyCompanyLocalhost¡£pvk¡£
DjangoÆô¶¯HTTPS²âÊÔ·þÎñÆ÷
(1)°²×°ÒÀÀµÏî

(2)ÐÞ¸ÄDjangoÅäÖÃÎļþ

(3)Æô¶¯djangoµÄhttps·þÎñ

×Ô´ËdjangoÒÑÆô¶¯https·þÎñ£¬µ«Ê¹ÓÃä¯ÀÀÆ÷ÈÔÈ»ÎÞ·¨Ê¹ÓÃhttps·ÃÎÊ(·þÎñÆ÷Ö¤Êé²»¿ÉÐÅ)¡£

ÐèÒª½«×ÔÇ©·¢µÄCA¸ùÖ¤Êé°²×°µ½ÐèҪʹÓÃhttps·ÃÎʵĿͻ§¶ËÖС£ÒÔÏÂΪmacosϵͳÖÐÌí¼ÓÖ¤ÊéµÄ²Ù×÷ͼʾ(windowsÖÐÒ²ÓÐÏà¹Ø½çÃæ²Ù×÷):
(1)Ìí¼Ó¸ùÖ¤Êé

(2)ÉèÖÃϵͳÐÅÈθÃÖ¤Êé

×Ô´Ë£¬¿Í»§¶ËÒ»·½(ä¯ÀÀÆ÷)Ìí¼ÓÍê³Éºó£¬¾Í¿ÉÒÔʹÓÃhttps·ÃÎÊ·þÎñÆ÷¡£

±±¾©Ð£Çø