SNIã¨ã¯
å
ã
SSLéä¿¡ã¯1ã¤ã®IPã¢ãã¬ã¹ã«å¯¾ãã¦ã1ã¤ã®è¨¼ææ¸ãåæã«ãªã£ã¦ãã¾ãããã¨ããã®ãSSLã§ã¯æå·åããã¦ããããã1ã¤ã®IPã¢ãã¬ã¹ã«å¯¾ãã¦è¤æ°ã®è¨¼ææ¸ãæã£ã¦ããå ´åããªã¯ã¨ã¹ããæ¥ãã¨ãã«ã©ã®è¨¼ææ¸ã使ãã°ãããå¤æã§ããªãããã§ãã
ãããããã ã¨ã©ãèãã¦ãã¤ãããã¨ãåããã¾ããæ¨ä»ã®æµãã¨ãã¦å¸¸æSSLéä¿¡ãå½ããåã®ä¸çã«ãªãã¤ã¤ããã¾ãããã¹ã¦ã®ãã¡ã¤ã³ã«å¯¾ãã¦å
¨ã¦ã®IPã¢ãã¬ã¹ãç¨æããã®ã¯ç¹ã«IPv4ã§ã¯ç¾å®çã§ã¯ããã¾ããã
ããããHTTPã§ã¯Virtual Hostã使ã£ã¦ã1ã¤ã®IPã¢ãã¬ã¹ã§è¤æ°ã®ãã¡ã¤ã³ã®ãµã¤ããæ±ããã¨ãã¨ã¦ãä¸è¬çã§ãã
ããã§æç¨ãªã®ãSNIã§ããSNIã¯æåã®éä¿¡æã«ä»ããéä¿¡ããããµã¼ãã¼ãã¼ã ããµã¼ãã¼ã«å¹³æã§æ¸¡ããã¨ã§ãéä¿¡ãããSSL証ææ¸ãæå®ã§ãã¾ãã
SNIã使ããã¨ã§HTTPã®Virtual Hostã¨åãããã«HTTPSãæ±ããã¨ãåºæ¥ã¾ããããã«ãã追å ã§ãµã¼ãã¼ãIPã¢ãã¬ã¹ãç¨æããã«HTTPSã®ãµã¼ãã¹ã追å ã§ããã®ã§ãä½ã³ã¹ãã«HTTPSã®ãµã¼ãã¹ã大éã«éç¨ãããã¨ãã§ãã¾ãã
nginxã®å ´åãè¤æ°ã®è¨¼ææ¸ã®è¨å®ãæ¸ããå ´åãèªåçã«SNIã使ã£ã¦è¨¼ææ¸ãé¸æããããã«ãªãã¾ããSNIã«å¯¾å¿ãã¦ããªã端æ«ããã®ãªã¯ã¨ã¹ãã®å ´åã443çªãã¼ãã®default_serverã®è¨å®ã§æå®ããã¦ãã証ææ¸ã使ç¨ããã¾ãã
SNIã«å¯¾å¿ãã¦ããªã端æ«ã«ã¤ãã¦
SNIããµãã¼ããã¦ããªã端æ«ã§ä»£è¡¨çãªãã®ã¯ä»¥ä¸ã®ãã®ãããã¾ãã
- Windows XPä¸ã®IEï¼Chromeã¯å¤§ä¸å¤«ï¼
- Android2.3.*
Server Name Indication â Wikipedia
GAã§éå»ä¸ã¶æã®sessionæ°ãå ã«ç§ãé¢ãããµã¼ãã¹ã§ãããããã®ã¦ã¼ã¶ã¼æ°ãåã£ã¦ã¿ã¾ããï¼2017/05ç¾å¨ï¼ã
PCå
ã§XPãã¤IE 0.04%
ã¹ãã¼ããã©ã³å
ã§Android2.3.* 0.2%
SNIã«é対å¿ãªãã©ã¦ã¶ã使ç¨ããå ´åã§ããã証ææ¸ã®ã¨ã©ã¼ãç¡è¦ãããçãªè³ªåã«okã¨çããã¨æ®éã«è¦ããããã«ãªãã¯ãã§ãï¼Android2.3ã¯æ¤è¨¼æ¸ã¿ãXPã¯å®æ©ããªãã®ã§æªç¢ºèªï¼ã
ã¡ãªã¿ã«Android2.2以ä¸ã¯SHA256ã®è¨¼ææ¸ã«å¯¾å¿ãã¦ããªããããæ¢ã«ã»ã¨ãã©ã®Webãµã¼ãã¹ãã¾ã¨ãã«è¦ãã¾ãããç¾å¨ã§ã¯SHA128ã®è¨¼ææ¸ã¯æã«å ¥ããæ段ã¯ããã¾ããããå±éºãªã®ã§ä½¿ããªãããå¼ã³ããããã¦ãã¾ãã
SANã«ã¤ãã¦
SANã¨ãããã®ãããã¾ããSANã使ããã¨ã§1ã¤ã®è¨¼ææ¸ã§è¤æ°ã®ãã¡ã¤ã³ãæ±ããã¨ãåºæ¥ã¾ããGoogleã®è¨¼ææ¸ãããããã¨ã«ãªã£ã¦ããã®ã§ããããã§ãã
証ææ¸1ã¤ã®å¤æ®µãããSANã«å ããæ¹ãä¸è¬çã«é«ãã®ã§ããã¯å°ãèããæ¹ãè¯ãã§ãããåºæ¬çã«SANã«å ããæ¹éã§åé¡ããã¾ããã
HTTP2ã®è½ã¨ãç©´
å®ã¯ã¯ã¤ã«ãã«ã¼ã証ææ¸ãSANã®ããã«è¤æ°ã®ãã¡ã¤ã³ãåãæ±ãã証ææ¸ã使ç¨ãã¦ãã¤ãHTTP2ãæå¹ã«ããã¨ãã«æãã¬ç½ ãããã¾ãã
HTTP2ã§ã¯ã³ãã¯ã·ã§ã³ã極ååå©ç¨ãã¦ãé«éã«éä¿¡ãè¡ããã¨ãã¾ããã³ãã¯ã·ã§ã³ãåå©ç¨ã§ãããã©ããããã®è¨¼ææ¸ã使ç¨ãã¦éä¿¡ã§ãããã©ããã§å¤æãè¡ãå®è£ ããã¦ãè¯ãã¨ãããã¨ã«ãªã£ã¦ãã¾ãããã®å ´åDNSã¯å¼ãã¾ããã
ãããç»åé ä¿¡ã¨ã¢ããªã±ã¼ã·ã§ã³ã®ããã³ããµã¼ãã¼ã¯å¥ã®ãµã¼ãã¼ã§è¡ããã¨ãå¤ãã§ããããç»åé ä¿¡ã®å ´åããªãªã¸ãã«ãµã¼ãã¼ã®ã¬ã¹ãã³ã¹ããã£ãã·ã¥ããå¿ è¦ããããªã©ãæ®éã®ããã³ããµã¼ãã¼ã¨ã¯æ§è³ªãç°ãªãããã§ãããã®å ´ååä¸ã®è¨¼ææ¸ã使ãåãã¦ããã¨æå³ããªããªã¯ã¨ã¹ããæ¥ã¦ãnginxã®default_serverã®è¨å®ãåãã¦ãã¾ããã¨ãããã¾ãã
å®ã¯ä»¥åFirefoxã§èªåãé¢ãããµã¼ãã¹ãè¦ããªããªãã¾ãããFirefoxã¯åä¸ã®è¨¼ææ¸ã®ã³ãã¯ã·ã§ã³ã使ãåãä»æ§ãå®è£ ãã¦ãã¾ãããã®ãµã¼ãã¹ã¯ããã³ããµã¼ãã¼ã¨ç»åé ä¿¡ãµã¼ãã¼ãåã証ææ¸ã使ã£ã¦å¥ãµã¼ãã¼ã§è¡ã£ã¦ãã¾ãããFirefoxãç»åé ä¿¡ãµã¼ãã¼ã®ã³ãã¯ã·ã§ã³ã«å¯¾ãã¦ãµã¼ãã¹ã®ãªã¯ã¨ã¹ããéã£ããããnginxã®default_serverã®è¨å®ãåãã¦403ãã¼ã¸ãã¦ã¼ã¶ã¼ã«è¦ãã¦ãã¾ããã
ãã®åé¡ã解決ããããã«443çªãã¼ãã®default_serverã§ã¹ãã¼ã¿ã¹ã³ã¼ã421ãè¿ãããã«ãã¾ããããã ãããããã¨æè§HTTP2ã使ã£ã¦ããã®ã«ã421ãåãåã度ã«ã³ãã¯ã·ã§ã³ãç¹ãç´ãããã«ãªãã®ã§HTTP2ã®æå³ãæ¸ãã¾ãã
HTTP2ã®ã¯ã©ã¤ã¢ã³ãã¯SNIã«å¯¾å¿ãã¦ããäºãä¿è¨¼ããã¦ãã¾ããHTTPSãå¿ é ãã¤ãåã証ææ¸ãªãã³ãã¯ã·ã§ã³ã使ãåããã¨ããHTTP2ã®ä»æ§çã«SNIã¯ã¡ãªããã大ãããããããåºã使ãããããã«ãªãã¨èãã¦ãã¾ãã
ã¾ã¨ã
ãããã常æSSLéä¿¡ãä¸è¬ã«ãªãã°ãªãã»ã©ãSNIãåºã使ãããããã«ãªãã§ããããç¾å¨ã¯ã¤ã«ãã«ã¼ã証ææ¸ãSANã使ç¨ãã¦ããã±ã¼ã¹ã§ããåã証ææ¸ã®ã³ãã¯ã·ã§ã³ã使ãåãã¦ãããã¨ããä»æ§ãããHTTP2ã§ã¯ããã¡ã¤ã³æ¯ã«è¨¼ææ¸ãç¨æãã¦SNIã使ç¨ãã¦é ä¿¡ããæ¹ã楽ã«ãªãå¯è½æ§ãããã¾ããSNIã®ãã¨ãè¦ãã¦ããã¦æã¯ãªãã§ãããã