Microsoft Azure WebããŒã«ã§ã®Windows Serverã®ææžåãããŠããªãåäœã«çŽé¢ããŸããããããã¯é·å¹Žã«ããã£ãŠCloud OCR SDKãµãŒãã¹ã®èª€ã£ãæ§æãé ããŠãããããéåžžã«è¯ãç¬éã«åã ã®ãŠãŒã¶ãŒã«æ·±å»ãªåé¡ããããããŸããã
2016幎2æ-ãã®æç¹ã§ãµãŒãã¹ãæ°å¹Žé皌åããŠãã-äžéšã®ãŠãŒã¶ãŒã¯ãå®å šãªæ¥ç¶ã確ç«ããããšãããšãã«åé¡ãå ±åãå§ããŸããã ãããã®ãŠãŒã¶ãŒã®ããã°ã©ã ã¯ããµãŒãã¹èšŒææžã«é¢ããããã€ãã®åé¡ã«é¢ããã¡ãã»ãŒãžãçºè¡ããŸããã ã以åã¯æ©èœããŠããŸããããçŸåšã¯ç ŽæããŠãããããããŠãŒã¶ãŒãæåã«æ±ºå®ããã®ã¯ã蚌ææžã®æå¹æéãåããŠããã TMã«éåžžã«äžæºãããããšã§ãã å®éãæ°ãæåŸã«å€±å¹ããŸããã
åé¡ãåçŸããè©Šã¿ã¯ãã»ãšãã©ã®å Žå倱æããŸãã-ãŠãŒã¶ãŒãæå®ããæ£ç¢ºãªãã©ãããã©ãŒã äžã§ããã ãµãŒãããŒãã£ã®æ€èšŒããŒã«ïŒ 1ããã³2 ïŒã䜿çšããŠãäžé蚌ææžã®èª€ã£ãã€ã³ã¹ããŒã«ã«é¢ããã¡ãã»ãŒãžãååŸããããšãã§ããŸããã
ãã®æç¹ãããæè¡çãªè©³çŽ°ãå¿ èŠã«ãªããŸãã 蚌ææžã¯ç¹å¥ãªçµç¹ãã€ãŸã誰ããä¿¡é ŒããèªèšŒã»ã³ã¿ãŒã«ãã£ãŠçºè¡ãããŸãã çºè¡ãããå蚌ææžã¯ããžã¿ã«çœ²åãããã¯ã©ã€ã¢ã³ãããã°ã©ã ãæ€èšŒããŸãã
å蚌ææ©é¢ã«ã¯ãã¯ã©ã€ã¢ã³ãããã°ã©ã ã確å®ã«ä¿¡é Œãã1ã€ä»¥äžã®èªå·±çœ²åã«ãŒã蚌ææžããããŸãã 蚌ææžã»ã³ã¿ãŒã«ãã£ãŠçºè¡ããã蚌ææžã¯ãååãšããŠããã®ã»ã³ã¿ãŒã®ã«ãŒã蚌ææžã«ãã£ãŠçœ²åã§ããŸããããã®ãããæ°ãã蚌ææžãçºè¡ããããã³ã«èšŒææžã®ç§å¯ããŒãå¿ èŠã«ãªããããã«ãŒã蚌ææžã®ç§å¯ããŒãæŒæŽ©ãããªã¹ã¯ãé«ãŸããŸãã 確ãã«äœçŸäžãã®ã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠä¿¡é ŒãããŠããã«ãŒã蚌ææžã®ç§å¯ããŒã®æŒæŽ©ã¯åé¡ã§ãã
ãããã£ãŠãèªèšŒã»ã³ã¿ãŒã¯äžé蚌ææžã䜿çšããŸãã äžé蚌ææžã¯ã«ãŒã蚌ææžã«ãã£ãŠ1å眲åãããçºè¡ããããã¹ãŠã®èšŒææžã¯ãã§ã«äžé蚌ææžã«ãã£ãŠçœ²åãããŠããŸãã ãã§ãŒã³å ã«ããã€ãã®äžé蚌ææžããããªãã·ã§ã³ãå¯èœã§ãã ããžã¿ã«çœ²åã確èªããã«ã¯ãã¯ã©ã€ã¢ã³ãããã°ã©ã ã¯ãã§ãŒã³å ã®ãã¹ãŠã®èšŒææžãå¿ èŠãšããŸã-ããã°ã©ã ã¯ã«ãŒã蚌ææžãä¿åããç¡æ¡ä»¶ã«ä¿¡é ŒããŸãããã®å©ãã«ãããäžé蚌ææžã®çœ²åã®ã¿ãæ€èšŒã§ãããµãŒãã¹èšŒææžã®çœ²åãæ€èšŒããã«ã¯ãã®äžé蚌ææžã確å®ã«å¿ èŠã§ãã
眲åã®æ€èšŒã«ã¯ãã¯ã©ã€ã¢ã³ãããã°ã©ã ã«å¿ èŠãªã®ã¯ç§å¯ããŒãªãã®èšŒææžã®ã¿ã§ããç§å¯ããŒã¯ãèªèšŒã»ã³ã¿ãŒïŒã«ãŒãããã³äžé蚌ææžïŒããã³ãµãŒãã¹ææè ïŒãµãŒãã¹èšŒææžã®ç§å¯ããŒïŒã«ãã£ãŠç§å¯ã«ãããŸãã
ã¯ã©ã€ã¢ã³ãããã°ã©ã ã«ã¯ãäžé蚌ææžãååŸããæ¹æ³ãããã€ããããŸãã
æåã®ãªãã·ã§ã³ã¯ãããã°ã©ã ãå®è¡ãããŠãããã·ã³ã«äžé蚌ææžã以åã«ã€ã³ã¹ããŒã«ã§ããããšã§ãã ããã¯äžäŸ¿ã§ã;ãŠãŒã¶ãŒãäžé蚌ææžãã€ã³ã¹ããŒã«ããããšãæåŸ ãã䟡å€ã¯ãããŸããã
2çªç®ã®ãªãã·ã§ã³-ããã°ã©ã ã¯ãèªèšŒã»ã³ã¿ãŒã®ãµãŒããŒãããããã¯ãŒã¯çµç±ã§ããããããŠã³ããŒãããããšããããšãã§ããŸãã ããã¯äŸ¿å©ã§ããããã¹ãŠã®SSLã¯ã©ã€ã¢ã³ãå®è£ ã§ãµããŒããããŠããããã§ã¯ãããŸããã ãããä¿¡é Œæ§ããããŸãã-æ¥ç¶ã確ç«ãããšãã«ãèªèšŒã»ã³ã¿ãŒã®ãµãŒããŒãžã®ã¢ã¯ã»ã¹ãå¿ èŠã§ãã ãã®æ¹æ³ã§ã¯ãæåã®æ¥ç¶ãé ããªããŸãã
3çªç®ã®æ¹æ³ã¯ãæãä¿¡é Œæ§ãé«ãæ®éçãªæ¹æ³ã§ãã ãµãŒããŒèªäœã¯ãå®å šãªæ¥ç¶ã®ç¢ºç«ã®éå§æã«èšŒææžãéä¿¡ãããšåæã«ããã¹ãŠã®äžé蚌ææžãã¯ã©ã€ã¢ã³ãã«éä¿¡ããŸãã ãããïŒãç§ã®èšŒææžã¯ããããã®èšŒææžã«ãã£ãŠçœ²åãããŠããŸããæåŸã®èšŒææžã¯ãããªãã«ãšã£ãŠæã䟡å€ã®ããã¯ã©ã€ã¢ã³ãããã°ã©ã ã§ããã«ãŒãã«ãã£ãŠçœ²åãããŸããä¿¡é Œã§ãããã®ãšããŠããŒã¯ãããŸãããã¹ãŠã®çœ²åã確èªãã確èªããŠæ¥ç¶ã確ç«ããŠãã ããã
ãµãŒãããŒãã£ã®æ€èšŒããŒã«ã¯ãæ¥ç¶ã確ç«ãããšãã«ãµãŒãã¹ãäžé蚌ææžãæäŸããããšã瀺ãå ŽåããããŸãããããã§ãªãå ŽåããããŸãã 確èªåŸãå©çšå¯èœãªäŸã«åŸã£ãŠããµãŒãã¹ãå±éããããã»ã¹ã誀ã£ãŠæ§æããããšãå€æããŸããã
ããã¯ãWebããŒã«ãæã€å žåçãªãµãŒãã¹å®çŸ©ã®ããã§ãïŒ
<?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="CoolCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4" > <WebRole name="CoolRole"> <Sites> <Site name="Web" > <Bindings> <Binding name="HttpIn" endpointName="HttpIn" /> <Binding name="HttpsIn" endpointName="HttpsIn" /> </Bindings> </Site> </Sites> <Endpoints> <InputEndpoint name="HttpIn" protocol="http" port="80" /> <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="ProductionCert"/> </Endpoints> <Certificates> <!--!!! !!!--> <Certificate name="ProductionCert" storeLocation="LocalMachine" storeName="My"/> </Certificates> </WebRole> </ServiceDefinition>
éåžžã CertificatesèŠçŽ å ã§ã¯ãµãŒãã¹èšŒææžã®ã¿ãæå®ãããŸãã ããã¯ééã£ãŠããŸãã ãã§ãŒã³å ã®ãã¹ãŠã®äžé蚌ææžãåãå Žæã«ç€ºãã®ã¯æ£ããããšã§ãã ãšã³ããã€ã³ãã®ã»ã¯ã·ã§ã³ã«èšèŒãããŠããªããŠãæ§ããŸããã
ããã§ãïŒ
<Certificates> <!-- ! --> <Certificate name="IntermediateForProductionCert" storeLocation="LocalMachine" storeName="CA"/> <!-- , --> <Certificate name="ProductionCert" storeLocation="LocalMachine" storeName="My"/> </Certificates>
ãã¹ãŠã®äžé蚌ææžãåæãããšãã€ã³ã¹ã¿ã³ã¹ã®åæåäžã«ãããŒã«ã®åã€ã³ã¹ã¿ã³ã¹ã®ãªããžããªã«ã€ã³ã¹ããŒã«ãããŸãã ãã®åŸãIISã¯ãã»ãã¥ãªãã£ã§ä¿è·ãããæ¥ç¶ã確ç«ãããšãã«ãã¯ã©ã€ã¢ã³ãããã°ã©ã ã«äžé蚌ææžãéä¿¡ã§ããããã«ãªããŸãã
åã€ïŒ ããããããã»ã©éããããŸããã
èšå®ãä¿®æ£ããŠå€æŽãéä¿¡ããåŸãã¯ããŒãºã¿ã€ã ãŸãŒã³ã«ç¡äºã«å°çãããŠãŒã¶ãŒã«é£çµ¡ããŸãããã圌ã¯çããŸããã
次ã®èª²é¡ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã€ã¡ãŒãžã§ããã®äžã§ãµãŒãã¹ãæ©èœããŸããã 蚌ææžã®æ€èšŒã«åé¡ãçºçããå°ãåã«ããµãŒãã¹ã¯æ¬¡ã®äžé£ã®æŽæ°ã§æ¬¡ã®æ°ããã€ã¡ãŒãžã«è»¢éãããŸããã Microsoftãçºçããå¯èœæ§ã®ããåé¡ã«ã€ããŠäºåã«å ±åãããšãããŸããªäŸå€ãé€ããäœãç Žå£ããªãããã¥ãŒãã©ã«ãæŽæ°ã®ã¿ãéžæãããŸãã ä»åã¯ããªã¹ãã«2ã€ã®æŽæ°ãããããã®èª¬æã«ã¯èšŒææžã®ããã·ã¥ãšå®å šãªæ¥ç¶ã®æŽæ°ãèšèŒãããŠããŸããã
ãµãŒãã¹ã¯äžæçã«åã®ã€ã¡ãŒãžã«è»¢éãããŸãã...ãããŠåé¡ã¯è§£æ±ºããŸããã
åã€ïŒ ããããåã¡ç®ããããŸããã
ãŸãã2ã€ã®å€æŽã®ãã¡ã©ã¡ããåé¡ã解決ãããã¯æ確ã§ã¯ãããŸããã§ããã 以åã®ã€ã¡ãŒãžã«æ°žé ã«ãšã©ãŸãããšã¯ã§ããŸããã2ã3ãæåŸãAzureã€ã³ãã©ã¹ãã©ã¯ãã£ã«ãã£ãŠãµãŒãã¹ãæ°ããã€ã¡ãŒãžã«åŒ·å¶ãããåé¡ãåçºããå¯èœæ§ããããŸãã ãµãŒãã¹ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æ°ããã€ã¡ãŒãžã«è»¢éãããŠãŒã¶ãŒããã§ãã¯ãããªãã·ã§ã³ã¯ãã©ããããããé©åã§ã¯ãããŸããã§ããã
第äºã«ããã®æç¹ã§åé¡ãåçºããçç±ã¯æããã§ã¯ãªãããã以åã®ãã®ã§ã¯ãããŸããã§ãããèšå®ã¯å€æŽãããŸããã§ããããã以åã¯æ©èœãããã®åŸå£ããŸãããã
1ã€ã®èšŒææžã®ã¿ã瀺ã誀ã£ããåãèšå®ã®ãã¹ããµãŒãã¹ã§ã¯ããã¹ãŠã®ãµãŒãããŒãã£ã®èšºæããŒã«ã蚌ææžãæ£ããã€ã³ã¹ããŒã«ãããã¯ã©ã€ã¢ã³ãããã°ã©ã ããã®èŠæ±ã«å¿ããŠãµãŒãã¹ã«ãã£ãŠè¿ãããããšã瀺ããŸããã ãã¹ããµãŒãã¹ã«è¿œå ãããã€ã³ã¹ããŒã«æžã¿èšŒææžã衚瀺ããã³ãŒãã¯ããªããžããªã«äžé蚌ææžããªãããšã瀺ããŠããŸããã
ãªããžããªã«èšŒææžã¯ãããŸãããããµãŒãã¹ã¯ãŠãŒã¶ãŒã«èšŒææžãæäŸããŸãã ã©ããããã¬ããŒããŒã·ã§ã³ã ãã€ãã®ããšã
ãŠãŒã¶ãŒã¡ãã»ãŒãžããããŸããã ãã®äžã«ã¯ã次ã®ãããªèª¬æããããŸããããããã«PHPã³ãŒãããããŸããã«ãŒãã§å®è¡ããŸããäžåºŠæ£åžžã«åäœããåé¡ãæªåãããšã¯ã©ãã·ã¥ããŸãã倱æãã
ãŸãã蚌ææžã®æå¹æéãå®æçã«ãã§ãã¯ãã 念ã®ããã«X509Chain.BuildïŒïŒã¡ãœããã䜿çšããŠä¿¡é Œãã§ãŒã³ããã§ãã¯ããã³ãŒãããããŸãã 以åã¯æ£åžžã«æ©èœããŠããŸãããããŠãŒã¶ãŒãåé¡ã«ééããæéã«ããã®æ¹æ³ãããŸããããã次ã®äžé£ã®ã¡ãã»ãŒãžã衚瀺ãããããšããããŸããã
- PartialChain蚌ææžãã§ãŒã³ãä¿¡é Œã§ããã«ãŒãæ©é¢ã«æ§ç¯ã§ããŸããã§ããã
- RevocationStatusUnknown倱å¹é¢æ°ã¯ã蚌ææžã®å€±å¹ã確èªã§ããŸããã§ããã
- OfflineRevocation倱å¹ãµãŒããŒããªãã©ã€ã³ã§ãã£ãããã倱å¹é¢æ°ã¯å€±å¹ã確èªã§ããŸããã§ããã
çãããããšã«ãèªèšŒã»ã³ã¿ãŒã®ãµãŒããŒã«ã¢ã¯ã»ã¹ããããšã¯äžå¯èœã§ãã
ããããIISãã¯ã©ã€ã¢ã³ãã€ã³ã¹ã¿ã³ã¹ã«èšŒææžãæž¡ãããšãã§ããããã«ã圹å²ã€ã³ã¹ã¿ã³ã¹èªäœãèªèšŒã»ã³ã¿ãŒããäžè¶³ããŠããäžé蚌ææžãåãåããããããæ éã«é ãããšãã§ãããšãããã©ãã§ããããã å®è³ªçãªèšŒæ ãªãã«ãã®ãããªä»®å®ãç«ãŠãããšã¯éåžžã«è»œç
確èªããå¿ èŠããããŸããã ããŒã«roleã®ã€ã³ã¹ã¿ã³ã¹ã®hostsãã¡ã€ã«ãç·šéããŠããã¡ã€ã¢ãŠã©ãŒã«ãŸãã¯ãã¡ã€ã«å解決ãæ§æããããšããŠå€±æããŸããã ããã¯äºæ³ãããŠããŸãã-ãããã®ã¢ã¯ã·ã§ã³ãåããŠå®è¡ã§ããããã«ãªããŸã§ãããŒã«ã€ã³ã¹ã¿ã³ã¹ã¯æ°åéå®è¡ããããã®åŸã¯é ãããå¯èœæ§ããããŸã-蚌ææžãããŠã³ããŒããããæ éã«é衚瀺ã«ãªããŸãã
ãããã£ãŠãããŒã«ã€ã³ã¹ã¿ã³ã¹ãèªèšŒã»ã³ã¿ãŒã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã¢ã¯ã»ã¹ããããšãå®å šã«æé€ããæ¹æ³ãå¿ èŠã§ããã 䟿å©ãªããšã«ãAzureã¯ãããéåžžã«ç°¡åã«ããŸãã
ããããã¯ãŒã¯ã»ãã¥ãªãã£ã°ã«ãŒããïŒãããã¯ãŒã¯ã»ãã¥ãªãã£ã°ã«ãŒãïŒã§ãµããããïŒãµããããïŒãäœæããååãªãä»®æ³ãããã¯ãŒã¯ãïŒä»®æ³ãããã¯ãŒã¯ïŒãããããµãŒãã¹ããã®ä»®æ³ãããã¯ãŒã¯ã«å ¬éãããããã«ããµãŒãã¹èšå®ã«NetworkConfigurationèŠçŽ ãè¿œå ããŸããã ç°¡åã§ããã
ããããã¯ãŒã¯ã»ãã¥ãªãã£ã°ã«ãŒããã§ã¯ããããã¯ãŒã¯ã¢ã¯ã»ã¹å¶éãèšå®ãããŠããŸãã 圌ãã¯ãèªèšŒã»ã³ã¿ãŒã€ã³ãã©ã¹ãã©ã¯ãã£ãé 眮ãããŠããã¢ãã¬ã¹ç¯å²ãžã®çºä¿¡èŠæ±ãçŠæ¢ããã«ãŒã«ãè¿œå ããŸããã
ãã®åŸããã¹ããµãŒãã¹ãå ¬éãããšããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã€ã¡ãŒãžã®é®®åºŠã«é¢ä¿ãªãããŠãŒã¶ãŒãè¿°ã¹ãåé¡ã®åçŸãéå§ãããŸãã IISã¯äžé蚌ææžã®çºè¡ãåæ¢ããŸãã ãã»ãã¥ãªãã£ã°ã«ãŒãããèŠæ±ãå¶éããªãããã«ã«ãŒã«ãå€æŽãããµãŒãã¹ãååºŠå ¬éãããšãåé¡ã¯çºçããªããªããŸãã
ãã®ãã©ãã¯ããã¯ã¹ã培åºçã«ãã§ãã¯ããåŸãããŒã«ã€ã³ã¹ã¿ã³ã¹ã®åæåæåäžãåèµ·åæããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã€ã¡ãŒãžããååæåããããšããããã³ãµãŒãã¹ããã±ãŒãžãåå ¬éããããšãã«ãäžé蚌ææžãååŸããããšããããšãããããŸããã IISã§ã¢ããªã±ãŒã·ã§ã³ããŒã«ãåèµ·åããŠããäžè¶³ããŠãã蚌ææžãååŸããããšã¯ãããŸããã ãããã£ãŠãäžé蚌ææžãååŸããããšããè©Šã¿ã¯ããµã€ããIISã«å±éãããç¬éã«é¢é£ä»ããããŠããŸããããããããµã€ã蚌ææžãã€ã³ã¹ããŒã«ããããšãã«çºçããŸãã ãã®èšäº ïŒèšŒææžå€±å¹ã®ä»çµã¿ïŒã§ã¯ãCryptoAPI蚌ææžã®ç¹å®ã®ãã£ã¹ã¯ãã£ãã·ã¥ã«ã€ããŠèª¬æããŠããŸãã CryptoAPIã¯Windows Serverã®äžéšã§ãã
éåžžã®ç¶æ³ã§ã¯ãäžè¶³ããŠãã蚌ææžãååŸããè©Šã¿ã¯æåãã誀ã£ããµãŒãã¹æ§æã¯ãã¹ã¯ãããããŒã«ã€ã³ã¹ã¿ã³ã¹ãã°ã«ããã«é¢ããèŠåã¯ãããŸããã 誀ã£ãŠäžè¶³ããŠãã蚌ææžãååŸããããšããŠå€±æããå ŽåãããŒã«ã®ç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ãæé©ãªåœ¢åŒã§ã¯ãªãèµ·åããããã°ã«ãããã«é¢ããã¡ãã»ãŒãžã¯ãããŸããããäžéšã®ã¯ã©ã€ã¢ã³ãããã°ã©ã ã¯ãããšã®å®å šãªæ¥ç¶ã確ç«ã§ããŸããã
ããŒã«ã€ã³ã¹ã¿ã³ã¹éã§çä¿¡èŠæ±ãåæ£ããã«ã¯ãã¹ã±ãŒãªã³ã°ãšããŒããã©ã³ãµãŒãè¿œå ããå¿ èŠããããŸãã ç°ãªãããŒã«ã€ã³ã¹ã¿ã³ã¹ãç°ãªãã¿ã€ãã³ã°ã§èµ·åã§ãããããèªèšŒã»ã³ã¿ãŒã€ã³ãã©ã¹ãã©ã¯ãã£ã®å¯çšæ§ãç°ãªããããçµæãšããŠãäžéšã®ã€ã³ã¹ã¿ã³ã¹ã¯ä»ã®ã€ã³ã¹ã¿ã³ã¹ãããè¯å¥œãªç¶æ ã«ãªããŸãã ããŒããã©ã³ãµãŒã¯ããã®è£éã§ãç°ãªãã€ã³ã¹ã¿ã³ã¹ã«ç°ãªãèŠæ±ãéä¿¡ãããããç°ãªãèŠæ±ãå¿çã®ç°ãªã蚌ææžã»ããã«ã€ãªããå¯èœæ§ããããŸãã éã¢ã¯ãã£ããªãŠãŒã¶ãŒã¯ããåäœããŠãããåäœããŠããªãããéåžžã«ã¢ã¯ãã£ãã§ããããšã確èªããŸãããªã¯ãšã¹ãã®äžéšã¯æ£åžžã«å®äºããæ®ãã¯å€±æããŸãã
ããºã«ãéçºãããŸããã ä»åã¡ãŸãã
ããã¯ééããªãæè¯ã®ããã©ã«ãåäœã§ã¯ãããŸããã
ããã§ã蚌ææžã確èªãããšãã«ããã§ãŒã³å ã®ãã¹ãŠã®èšŒææžãããŒã«ã€ã³ã¹ã¿ã³ã¹ã®å¯Ÿå¿ãããªããžããªã«ããããšã確èªããã³ãŒããäœæãããŸããã æ°ããããŒã«ãªã¯ãšã¹ãã®åã®ãããã§ãMicrosoft Azureããã¥ã¡ã³ãã®äŸã¯ãŸããªãä¿®æ£ãããŸãã
ãŸããWebããŒã«ãæã€ãµãŒãã¹ãããå Žåãããã¯ãŸã æ£ããæ§æãããŠããªãå¯èœæ§ããããŸãã
ããããªãŒã»ã¡ãã·ã§ãªã£ã³ãã
éçºè 補åéšé