· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/OpenSSL-KLDP

Certificate ServerÀÇ ¼³Ä¡ ¿Í ClientÀÎÁõ

Certificate ServerÀÇ ¼³Ä¡ ¿Í ClientÀÎÁõ

±¹½Â¼ö sskuk@sskuk.cataegu.ac.kr

V0.1 2000³â 11¿ù 11ÀÏ
ÀÌ ¹®¼­´Â Á¦°¡ applet»çÀΰú °ü·ÃÇÏ¿© ÀÌ°ÍÀú°Í Á¶»çÇÏ´Ù°¡, OpenSSLÀ̶ó´Â °ÍÀ» ¾Ë°ÔµÇ¼­, OpenSSLÀ» ÀÌ¿ëÇÑ Certificate Server(rootCA)¸¦ ¼³Ä¡Çϱ⠱îÁöÀÇ °úÁ¤À» Á¤¸®ÇÑ °ÍÀÌ´Ù. OpenSSLÀÇ ¼³Ä¡¿Í, apache, mod_ssl, php, mysqlµîÀ» ÀÌ¿ëÇÏ¿© Certificate Server¸¦ ¿î¿ëÇϱâ À§ÇÑ ¹æ¹ý·Ð°ú, Netscape, MS Internet Explorer, JDKµîÀÇ Client¿¡ ´ëÇÑ ÀÎÁõ¼­¸¦ ¹ßÇàÇÏ´Â ¹æ¹ý·ÐÀ» ´ã°í ÀÖ´Ù.

1. ÀúÀÛ±Ç

ÀÌ ¹®¼­¿¡ ³ª¿À´Â µî·Ï»óÇ¥ÀÇ ¼ÒÀ¯±ÇÀº °¢°¢ ±× ¼ÒÀ¯ÀÚ¿¡°Ô ÀÖ´Ù. ÀÌ ¹®¼­ÀÇ ³»¿ë¿¡ ´ëÇØ º»ÀÎÀº ¾î¶² º¸Áõµµ ÇÏÁö ¾ÊÀ¸¸ç (Ʋ¸®´Â ³»¿ëµµ ÀÖÀ¸´Ï±ñ..^^;), ¸ðµç»ç¶÷µéÀÌ °øÀ¯ÇÒ ¼ö ÀÖ°í, ¹èÆ÷ÇÒ ¼ö ÀÖÁö¸¸ ´Ù¸¥°÷¿¡ ¹èÆ÷ÇÒ ¶§¿¡´Â ¿ø¹®ÀÌ ¾îµð¿¡ ÀÖ´ÂÁö´Â ¾Ë·ÁÁֽðí, ¹®¼­ÀÇ ³»¿ëÀ» ¼öÁ¤ ÇÒ ¶§¿¡´Â º»Àο¡°Ô ¸ÞÀÏÀ» ÁÖ½Ã±æ ¹Ù¶õ´Ù. (ÀÌ·¸°Ô ¾²´Â°Å ¸Â¾Æ¿©?...^^;)

2. Áغñ¹°

  1. OpenSSL
  2. Apache
  3. Perl
  4. mod_ssl
  5. PHP
  6. Client Browser(Netscape³ª Explorer)
  7. Java2 SDK
  8. ...
  9. ´ã¹è Çѵΰ© °ú ÂðÇÑ Ä¿ÇÇ(Çʼö!)
  10. ´ã¹è¾ÈÇÇ¸é ²­À̳ª »çÅÁ(^^)
OpenSSL¸¸ À־ Certificate Service¸¦ ó¸®Çϴµ¥¿¡´Â ¹®Á¦°¡ ¾øÁö¸¸, Á»´õ »ç¿ëÀÚ¸¦ ÆíÇÏ°Ô ÇÒ·Á¸é ³ª¸ÓÁö µéµµ Àִ°ÍÀÌ ÁÁ´Ù.

3. Certificate Server¶õ?

Certificate Server´Â ÀÎÅͳݿ¡¼­ ¸ÞÀÏÀ̳ª ÇÁ·Î±×·¥(applet, script°°Àº°Í)µîÀÇ ¼Û½ÅÀÚ¸¦ ¹ÏÀ»¸¸ÇÑ »ç¶÷ÀÌ º¸³Â´ÂÁö ÀÎÁõÇØÁÖ´Â ¼­¹öÀÌ´Ù. ½±°Ô ¸»Çϸé ö¼ö°¡ ÀºÇà¿¡ °³ÀÎÀûÀÎ ¹®¼­¸¦ SignÀ» ÇÏ¿© º¸³Â´Ù°í Çϸé, ÀºÇàÀÇ ÀÔÀå¿¡¼­´Â ÀÌ ¸Þ¼¼Áö°¡ Á¤¸»·Î ö¼ö¿¡°Ô¼­ ¿Â°ÍÀÎÁö¸¦ È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. À̶§ PGP³ª GPGó·³ ºñ¹ÐÅ°¿Í °ø°³Å°¸¦ ÀÌ¿ëÇÏ¿© ö¼ö´Â ºñ¹ÐÅ°·Î »çÀÎÇÏ°í ÀºÇà¿¡¼­´Â ö¼öÀÇ °ø°³Å°¸¦ ÀÌ¿ëÇÏ¿©, ¼ö½ÅµÈ ¸Þ¼¼Áö°¡ ö¼ö°¡ º¸³½°ÍÀÌ ¸Â´ÂÁö È®ÀÎÇÒ¼ö ÀÖ´Ù. ¶ÇÇÑ ÀºÇà¿¡¼­ ö¼ö ÇÑÅ× º¸³»´Â ¸Þ¼¼ÁöÀÎ °æ¿ì¿¡µµ ¸¶Âù°¡Áö ÀÌÁö¸¸, ¼­·Î°£ÀÇ °ø°³Å°°¡ Á¤È®ÇÏ°Ô Àü´ÞÀÌ µÇ¾ú´ÂÁö È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. (º¸Åë ¸ÞÀÏÀ̳ª, ȨÆäÀÌÁöµîÀ» ÅëÇÏ¿© È®ÀÎÇÒ¼öµµ ÀÖ°í, Á÷Á¢ ¸¸³ª¼­ finger printµîÀ» Àû¾î¿Í¼­ ºñ±³Çغ¼¼öµµ ÀÖ´Ù.)

¸¸¾à ¼­·Î »ó´ë¹æÀÇ °ø°³Å°°¡ Á¤¸»·Î ¹ÏÀ»¸¸ÇÑ ÀÎÁõ±â°ü¿¡¼­ ÀÎÁõÇØÁØ°Í À̶ó¸é, »ó´ë¹æÀÇ °ø°³Å°°¡ ¸Â´Ù´Â°ÍÀ» È®ÀÎÇÏ´Â ¼ö°í¸¦ ´ú¼ö°¡ Àִµ¥, ÀÌ ÀÎÁõ±â°üÀ» Certificate Authority(CA)¶ó°í ºÎ¸£¸ç, CA¿¡ÀÇÇؼ­ »ó´ë¹æÀÇ °ø°³Å°°¡ ÀÎÁõµÇ¾î ÀÖÀ¸¸é, ¼­·Î°£¿¡ Á÷Á¢ È®ÀÎÇÒ ÇÊ¿ä¾øÀÌ °ø°³Å°¸¦ ¹ÏÀ» ¼ö ÀÖ°Ô µÇ´Â°ÍÀÌ´Ù.

(OpenSSL¿¡´Â À̰ͻӸ¸ÀÌ ¾Æ´Ï°í »ó´çÈ÷ ¸¹Àº ±â´ÉÀ» °¡Áö°í ÀÖÀ¸³ª Á¦°¡ ¾Æ´Â°Ô º°·Î¾ø³×¿ä...^^;) ¶Ç AppletÀ» ÀÛ¼ºÇØ º¸½ÅºÐÀº ¾Æ½Ã°ÚÁö¸¸ ÀÎÁõ¼­¿¡ÀÇÇÑ »çÀÎÀÌ µÇ¾îÀÖ´Â °æ¿ì¿¡´Â ÀϺΠ½Ã½ºÅÛÀÇ Á¦ÇÑµÈ ÀÚ¿ø(ÇÁ¸°ÅÍ, µð½ºÅ©, »ç¿îµåµî)¿¡ Á¢±ÙÇÒ¼ö ÀÖ´Â AppletÀ» »ý¼ºÇÒ¼ö ÀÖ½À´Ï´Ù. (´ÙÀ̾óÆе带 »ç¿ëÇÒ ¶§¿¡ ³ªÅ¸³ª´Â âÀ» »ý°¢Çغ¸¼¼¿ä...^^)

À§¿¡¼­ ³ªÅ¸³­°Í ó·³, ÀÎÅͳݿ¡¼­ ƯÁ¤°³ÀÎÀ̳ª ±â°ü¿¡´ëÇÑ ÀÎÁõÀ» ÇØÁÖ´Â °÷ÀÌ CAÀ̸ç, ÀÌ·± ¿ªÈ°À» ¼öÇàÇÏ´Â ¼­¹ö°¡ Certificate ServerÀÌ´Ù. VeriSignÀ̳ª Thawte Consultingµî¿¡¼­ ÀÌ·± ¼­ºñ½º¸¦ ÇÏ°í ÀÖ°í, ±âº»ÀûÀ¸·Î Netscape³ª MS Internet ExplorerµîÀÇ ½Å·ÚµÈ ÀÎÁõ±â°ü¿¡ ³ªÅ¸³­´Ù. º» ¹®¼­´Â VeriSignÀ̳ª Thawte Consultingµî°ú °°Àº ¼­ºñ½º¸¦ OpenSSLÀ» ÀÌ¿ëÇÏ¿© ½ÇÇàÇÒ ¼ö ÀÖ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ±â¼úÇÏ°í ÀÖ´Ù.

OpenSSLÀº Secure Sockets Layer¿Í Transport Layer SecurityÇÁ·ÎÅäÄÝÀ» ¸¸Á·ÇÏ´Â Open Source ÅøŶÀÌ´Ù. OpenSSLÀº Eric A. Young°ú Tim J. Hudson¿¡ÀÇÇØ ¸¸µé¾îÁø SSLeay ¶óÀ̺귯¸®¸¦ ±âÃÊ·ÎÇÏ¿© ¸¸µé¾î Á³°í, ÇöÀç OpenSSL-0.9.6ÀÌ »ç¿ë°¡´ÉÇϸç, Unix¿Í Windows, OpenVMS, MacOSµîÀÇ Ç÷§Æû¿¡¼­ ½ÇÇàµÈ´Ù.

4. Certificate ServerÀÇ ¼³Ä¡

Certificate ServerÀÇ ±¸¼ºÀº OpenSSL°ú Apache°¡ ÇÊ¿äÇϸç, °³ÀÎÀÇ ½Å»óÁ¤º¸°¡ WebÀ» ÀÌ¿ëÇÏ¿© Àü¼ÛµÊÀ¸·Î Apache ¼­¹ö¿¡ mod_sslÀ» ¼³Ä¡Çϰųª Apache + SSLÀÇ ÇüÅ·ΠApache¼­¹ö¸¦ ¼³Ä¡ÇÏ¿© Browser¿ÍÀÇ Åë½Å½Ã sniffingµÇÁö ¾Êµµ·Ï ÇÏ¿©¾ß ÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ ÀÚµ¿È­µÈ ¼­ºñ½º¸¦ À§Çؼ­ PerlÀ̳ª phpµîÀÌ ÇÊ¿äÇÏ´Ù. (PerlÀ̳ª PHP´Â module·Î ¼³Ä¡Çصµ ÁÁÀ¸¸ç CGIÇüÅ·Π½ÇÇàÇصµ »ó°üÀÌ ¾øÀ¸³ª º¸¾ÈÀ» À§ÇÑ ºÎºÐÀ» »ý°¢Çغ¸°í ¼³Ä¡Çϴ°ÍÀÌ ÁÁÀ»°Í °°´Ù.) ÀÎÁõÀ» ¿ä±¸ÇÏ´Â ClientµîÀÇ °ü¸®¸¦ À§ÇÏ¿© MySQLµîÀ» ¼³Ä¡ÇÏ´Â °Íµµ ÁÁÀ»°Í °°´Ù. ±×¸®°í mod_sslÀÇ INSTALLÈ­ÀÏÀ» »ìÆ캸¸é ¼±ÅÃÀûÀ¸·Î ¼³Ä¡ÇÏ´Â È­ÀÏÀÌ Àִµ¥(mm°°Àº°Í) À̰͵鵵 ÇÊ¿äÇÏ¸é °°ÀÌ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù. PerlÀº 5.6¹öÁ¯À» ÇÊ¿ä·Î ÇÑ´Ù°í µÇ¾îÀÖ´Â°Í °°Àºµ¥, 5.6À» ±»ÀÌ ¼³Ä¡ÇÒ ÇÊ¿ä´Â ¾ø¾ú´ø°Í °°´Ù.

4.1 OpenSSLÀÇ ¼³Ä¡

OpenSSLÀ» ¼³Ä¡Çϱâ À§Çؼ­´Â Perl 5¿Í ANSI CÄÄÆÄÀÏ·¯°¡ ÇÊ¿äÇÏ´Ù. ±âº»ÀûÀÎ ¼³Ä¡ ¹æ¹ýÀº ÀÎÅͳݻóÀÇ ´Ù¸¥ ÆÐÅ°Áöµéó·³ ´ÙÀ½°ú °°ÀÌÇÏ¿© ¼³Ä¡ÇÒ¼ö ÀÖ´Ù.

        $ ./config
        $ make
        $ make test
        $ make install

config¿¡¼­ prefix¸¦ ÁÖÁö ¾Ê¾ÒÀ» ¶§¿¡´Â /usr/local/sslµð·¢Å丮¿¡ ¼³Ä¡°¡ µÇ´Ï ´Ù¸¥ µð·¢Å丮¿¡ ¼³Ä¡¸¦ ÇÏ°íÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. $ ./config --prefix=/usr/local --openssldir=/usr/local/openssl ÀÌ·¸°Ô Çϸé OpenSSLÀÇ ½ÇÇàÈ­ÀÏÀº /usr/local/bin¿¡ ¼³Ä¡µÇ°í Certificate Service¸¦ À§ÇÑ È­ÀϵéÀº /usr/local/openssl¾Æ·¡ÀÇ µð·¢Å丮¿¡ »ý¼ºµÈ´Ù. ¶ÇÇÑ rsaref¸¦ ¼±ÅûçÇ×À¸·Î ÁÙ¼ö°¡ Àִµ¥ ÀÌ°ÍÀº librsaref.a¶ó´Â ¶óÀ̺귯¸®°¡ ¶óÀ̺귯¸® Search°æ·Î¿¡ ÀÖ¾î¾ß ÇÑ´Ù. (¹ýÀûÀ¸·Î ¹®Á¦°¡ µÇ´ÂºÎºÐÀÌ ¾Æ´Ñ°¡ ¸ð¸£°Ú³×¿ä..¾îµð¼­ ÀÐÀº°Í °°¾Æ¼­..-.-; ftp search¿¡¼­ rsaref20À¸·Î °Ë»öÇϽøé ãÀ»¼ö ÀÖ½À´Ï´Ù...±×·±µ¥, ³Ö°í ÄÄÆÄÀÏÇÏ¸é ¿¡·¯°¡ ³ª´õ¶ó±¸¿ä..)

make¸¦ ½ÇÇàÇϸé OpenSSL¶óÀ̺귯¸®(libcrypto.a¿Í libssl.a)¿Í ½ÇÇàÈ­ÀÏ (openssl)ÀÌ »ý¼ºµÇ°í, ¶óÀ̺귯¸®´Â make¸¦ ½ÇÇàÇÑ µð·¢Å丮¿¡, OpenSSL½ÇÇàÈ­ÀÏÀº appsµð·¢Å丮¿¡ »ý¼ºµÈ´Ù. make¸¦ ½ÇÇàÇÏ´Â µµÁß ¿¡·¯°¡ »ý±â¸é, ¿¡·¯¸Þ¼¼Áö¸¦ »ìÆ캸¾Æ¾ß ÇÑ´Ù. ´ëºÎºÐ OpenSSLÀÇ ¹®Á¦°¡ ¾Æ´Ï¶ó°í Çϸç, Á¤¸»·Î OpenSSLÀÇ ¹®Á¦¶ó°í ÆǴܵȴٸé make report¸í·ÉÀ» ÀÌ¿ëÇÏ¿© Ãâ·ÂµÈ ³»¿ëÀ» openssl-bugs@openssl.org¿¡ ¼Û½ÅÇÑ´Ù.

´ÙÀ½Àº make test¸¦ ½ÇÇàÇÏ¿© OpenSSLÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇÑ´Ù. ½ÇÆÐÇÑ ³»¿ëÀÌ ÀÖ´Ù¸é, CFLAGSµîÀ» ¼öÁ¤ÇÏ°í "make clean; make"¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ´Ù½Ã ÄÄÆÄÀÏÇÑÈÄ make test¸¦ ½ÇÇàÇØ º»´Ù.

¸ðµç ½ÃÇèÀÌ Á¤»óÀûÀ¸·Î ¼º°øÇÑ´Ù¸é, make install¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© ¼³Ä¡µð·¢Å丮(/usr/local/sslÀ̳ª /usr/local/bin, /usr/local/opensslµî)¿¡ ½ÇÇàÈ­ÀÏ°ú µµ¿ò¸» È­ÀÏ, ȯ°æ¼³Á¤È­ÀϵîÀ» ¼³Ä¡ÇÑ´Ù. ¿©±â±îÁö º° ¹®Á¦ ¾øÀÌ ½ÇÇàµÇ¾ú´Ù¸é, Certificate Server¸¦ ½ÇÇàÇϱâ À§ÇÑ ±âº»ÀûÀÎ Áغñ´Â ¿Ï·áµÈ °ÍÀÌ´Ù. ´ÙÀ½Àº OpenSSLÀ» ÀÌ¿ëÇÑ Certificate Server¿î¿ëÀ» À§ÇÑ Å°»ý¼º°ú ȯ°æ¼³Á¤À» ½Ç½ÃÇÑ´Ù.

4.2 rootCAÀÇ »ý¼º

Certificate Server¸¦ ¿î¿ëÇÏ´Â °÷Àº Tree±¸Á¶ÀÇ ÇüÅ·ΠÀÌ·ç¾îÁ® ÀÖ´Ù. Á¦ÀÏ Ã³À½¿¡ ³ªÅ¸³ª´Â CA¸¦ rootCA¶ó°í ÇÏ°í ÀÚ±â ÀÚ½ÅÀÌ »ý¼ºÇÑ ÀÎÁõ¿ä±¸¼­¸¦ ÀÚ±âÀÚ½ÅÀÌ signÇÏ¿© °³ÀÎÀ̳ª, ±â°ü¿¡°Ô ¹èÆ÷ÇÑ´Ù. rootCA·ÎºÎÅÍ ÀÎÁõÀ» ¹ÞÀº ÀÎÁõ±â°üÀº Áß°èÀÎÁõ±â°üÀ̶ó°í Çϸç, ÀÎÁõ¿ä±¸¼­¸¦ rootCA·Î ºÎÅÍ ÀÎÁõ¹Þ¾Æ¼­ ´Ù¸¥»ç¶÷À̳ª ±â°üÀÇ ÀÎÁõ¿ä±¸¼­¸¦ ÀÎÁõÇØÁÖ´Â ¿ªÈ°À» ÇÑ´Ù. Áö±ÝºÎÅÍ´Â ¾Õ¿¡¼­ »ý¼ºµÈ OpenSSLÀÇ ½ÇÇàÈ­ÀϵéÀ» ÀÌ¿ëÇؼ­ ÀڽŸ¸ÀÇ rootCA¸¦ »ý¼ºÇÑ´Ù.

(¾Æ·¡¿¡¼­ ¼³¸íÇÏ´Â ³»¿ëÀº /path/to/openssldir/misc¿¡ º¸½Ã¸é CA.pl°ú CA.sh °¡ ÀÖ½À´Ï´Ù. CA.xx¸¦ ÀûÀýÈ÷ ¼öÁ¤ÇÏ°í ./CA.xx -newca·Î ÇÏ¿© rootCA¸¦ »ý¼ºÇϼŵµ µË´Ï´Ù. Perl°ú shellÀÇ scriptÀÓÀ¸·Î Å©°Ô ¾î·Á¿î°ÍÀº ¾øÀ» °Ì´Ï´Ù...^^; "CATOP"º¯¼ö¸¦ ÀûÀýÈ÷ ¼öÁ¤ÇÏ½Ã¸é µË´Ï´Ù. ¶ÇÇÑ ClientµéÀÇ Sign Request°¡ ÀÖÀ»¶§¿¡µµ »ç¿ëÇϽǼö ÀÖÀ¸¹Ç·Î ÀÚ¼¼È÷ »ìÆ캸½Ã´Â°ÍÀÌ ÁÁ½À´Ï´Ù.)

  1. ºñ¹ÐÅ°ÀÇ »ý¼º

    $ openssl genrsa -des3 -out ca.key 1024

    1024ºñÆ®ÀÇ º¸¾Èµµ¸¦ °¡Áö´Â RSAÅ°¸¦ »ý¼ºÇÑ´Ù. Certificate ServerÀÚüÀÇ ºñ¹ÐÅ°°¡ µÊÀ¸·Î ¹Þµå½Ã ´Ù¸¥»ç¶÷ÀÌ º¼¼ö ¾ø´Â°÷¿¡ º¸°üÇÏ°í »ª¾÷À» ¹ÞÀºÈÄ¿¡ »ç¿ëÇϴ°ÍÀÌ ÁÁ´Ù.

  2. »ý¼ºµÈ ºñ¹ÐÅ°¸¦ ÀÌ¿ëÇÏ¿© Self SignµÈ ÀÎÁõ¼­ È­ÀÏÀ» »ý¼ºÇÑ´Ù.

    $ openssl req -new -x509 -days 365 -key ca.key -out ca.crt

    À§ÀÇ ¸í·É¾î¸¦ ÀÌ¿ëÇϸé Certificate ServerÀÇ Distinguished NameÀ» ¹°¾î¿Â´Ù. Áú¹®¿¡ ´ëÇÑ ´äÀ» Á¤È®ÇÏ°Ô ÀÔ·ÂÇÏ°í³ª¸é rootCAÀÇ Certificate ServerÀÇ ÀÎÁõ¼­°¡ »ý¼ºµÈ´Ù. ±×¸®°í ÇÊ¿ä¿¡ µû¶ó days°°Àº Ç׸ñÀº ¼öÁ¤Çؼ­ »ç¿ëÇϵµ·Ï ÇÑ´Ù. (ºñ¹Ð¹øÈ£ Àؾî¸ÔÁö ¾Êµµ·Ï ÁÖÀÇÇϼ¼¿ä..T.T)

  3. opensslµð·¢Å丮ÀÇ openssl.cnfÈ­ÀÏÀ» ¼öÁ¤ÇÑ´Ù.

    openssl.cnfÈ­ÀÏÀº Certificate Service¸¦ ¿î¿ëÇϱâ À§ÇÑ È¯°æ¼³Á¤À» ´ã°í ÀÖ´Â È­ÀÏ·Î make installÀ» ÇßÀ»¶§¿¡´Â sample ÀÚ·á°¡ µé¾îÀÖ´Ù. ÀÌ È­ÀÏÀº ÆíÁýÇÏ¿© ¿©·¯ºÐÀÇ Certificate Service¸¦ ÇÒ ¼ö ÀÖµµ·Ï ¼öÁ¤ ÇÏ¿©¾ß ÇÑ´Ù.

    1. CA_default ºÎºÐ¿¡ "dir"À» ¿©·¯ºÐÀÌ »ç¿ëÇÒ µð·¢Å丮¸¦ Àû´Â´Ù.(º¸ÅëÀº "/path/to/openssldir/ÀÚ±âCA"ÀÇ ÇüÅÂ)
    2. usr_certºÎºÐÀÇ nsCertTypeÀÌ ¸ðµÎ #À¸·Î ¸·ÇôÀÖÀ¸¹Ç·Î ÇÊ¿äÇÑ ³»¿ëÀ» °ñ¶ó¼­ Ç®¾îÁØ´Ù.(Netscape ClientÀÇ ÀÎÁõÁ¾·ù¸¦ °áÁ¤ÇÏ´Â ºÎºÐÀÎ°Í °°´Ù.)
    3. Ca_defaultÀÇ dir¿¡ ÇÊ¿äÇÑ µð·¢Å丮¿Í È­ÀÏÀ» »ý¼ºÇÑ´Ù. µð·¢Å丮´Â certs, crl, newcerts, privateÀÌ°í È­ÀÏÀº "01"ÀÇ ³»¿ëÀ» ´ã°íÀÖ´Â serial°ú ³»¿ëÀÌ ¾ø´Â index.txtÀÌ´Ù. (CA.xxÀÇ ³»¿ë°ú openssl.cnf¸¦ Âü°íÇÏ½Ã¸é µË´Ï´Ù.)
              $ mkdir /usr/local/openssl/MyCA
              $ mkdir /usr/local/openssl/MyCA/certs
              $ mkdir /usr/local/openssl/MyCA/crl
              $ mkdir /usr/local/openssl/MyCA/newcerts
              $ mkdir /usr/local/openssl/MyCA/private
              $ echo "01" > /usr/local/openssl/MyCA/serial
              $ touch /usr/local/openssl/MyCA/index.txt
      
    4. keyUsageºÎºÐÀÇ #À» Ç®¾îÁØ´Ù.
    5. ÇÊ¿äÇÏ´Ù¸é nsComment¸¦ ¿øÇϴ°ÍÀ¸·Î ¹Ù²Û´Ù.

  4. »ý¼ºµÈ ºñ¹ÐÅ°¿Í °ø°³Å°¸¦ openssl.cnf¿¡¼­ ÁöÁ¤ÇÑ µð·¢Å丮¿¡ º¹»çÇÑ´Ù.

    ca.key´Â /path/to/openssldir/ÀÚ±âCA/private/cakey.pemÀ¸·Î º¹»çÇÏ°í ca.crt´Â /path/to/openssldir/ÀÚ±âCA/cacert.pemÁ¤µµ·Î º¹»çÇÏ¸é µË´Ï´Ù.

  5. °ø°³Å°´Â application/x-x509-ca-certÀÇ MIMEÇüÅ·ΠClient Browser¿¡ Àü¼ÛÇÒ ¼ö ÀÖÀ¸¸ç, Client¿¡¼­´Â "½Å·ÚµÈ ·çÆ®ÀÎÁõ±â°ü"À¸·Î importÇÒ ¼ö ÀÖ´Ù.
¿©±â±îÁö ÇϼÌÀ¸¸é, ºÒÆíÇÏÁö¸¸ ¼öµ¿(?)À¸·Î Certificate Service¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº Á¶±ÝÀ̳ª¸¶ Æí¾ÈÇÏ°Ô Service¸¦ Çϱâ À§Çؼ­ Apache¿¡¼­ ¸î°¡Áö ÀÛ¾÷À» ÇÕ´Ï´Ù.(³ªÁß¿¡ Client¿Í ¿¬°áÇؼ­ CSRÀ» »ý¼ºÇÒ¶§ »ç¿ëÇÕ´Ï´Ù.)

4.3 Apache + mod_ssl/OpenSSL + PHP4/MySQLÀÇ ¼³Ä¡

ÀϹÝÀûÀÎ Apache ¿Í phpÀÇ ¼³Ä¡ ¹æ¹ý¿¡ Å« Â÷ÀÌ´Â ¾øÀ¸´Ï, ¿©±â¿¡¼­´Â ¼ø¼­¸¸ ±â¼úÇÏ°í ³Ñ¾î °¡µµ·Ï ÇÑ´Ù. ¶ÇÇÑ ÀÌ ³»¿ëÀº mod_sslÀÇ INSTALLÈ­ÀÏ¿¡ ¼³¸íÀÌ µÇ¾î ÀÖÀ¸¹Ç·Î ±×°ÍÀ» Àо´Â °ÍÀÌ Á¤È®ÇÒ °ÍÀÌ´Ù. mod_sslÀº ¹öÁ¯º°·Î Apache¿Í ¿¬°áÀÌ µÊÀ¸·Î ÀÚ½ÅÀÌ ¼³Ä¡ÇÏ´Â Apache¹öÁ¯°ú ÀÏÄ¡ÇÏ´Â mod_sslÀ» ¼³Ä¡ÇÏ¿©¾ß ÇÑ´Ù. ÀÌ´Â mod_sslÀÇ È­ÀϸíÀ» º¸¸é ¾Ë ¼ö°¡ Àִµ¥, "mod_ssl-ÀڽŹöÁ¯-¾ÆÆÄÄ¡¹öÁ¯"ÀÇ ÇüÅ·ΠµÇ¾îÀÖ´Ù.

        $ tar xvfz apache_1.3.x.tar.gz
        $ tar xvfz mod_ssl-2.7.x-1.3.x.tar.gz
        $ tar xvfz php-4.0.x.tar.gz
        $ cd apache_1.3.x
        $ ./configure
        $ cd ../mod_ssl-2.7.x-1.3.x
        $ ./configure --with-apache=../apache_1.3.x
        $ cd ../apache_1.3.x
        $ .configure --prefix=/path/to/apache
        $ cd ../php-4.0.x
        $ CFLAGS='-O2 -I/path/to/openssl/include' \
          ./configure \
                --with-apache=../apache_1.3.x \
                --with-mysql \
                --enable-memory-limit=yes \
                --enable-debug=no
        $ make
        $ make install
        $ cd ../apache_1.3.x
        $ SSL_BASE=/path/to/openssl \
          ./configure \
                --prefix=/path/to/apache \
                --enable-module=ssl \
                --activate-module=src/modules/php4/libphp4.a \
                --enable-module=php4
        $ make
        $ make certificate
        $ make install
ÄÄÆÄÀÏ °úÁ¤Áß ÁÖÀÇÇÒ Á¡Àº ¸¶Áö¸·ÀÇ ApacheÀÇ È¯°æ¼³Á¤À» ÇÒ¶§¿¡ SSL_BASE´Â OpenSSLÀ» ¼³Ä¡ÇÒ¶§¿¡ prefix¿¡ ÁÖ¾îÁø µð·¢Å丮¸¦ ÁÖ¾î¾ß ÇÑ´Ù. (openssldirÀÌ ¾Æ´Ï´Ù.)

»ó±âÀÇ ÄÄÆÄÀÏ °úÁ¤À» °ÅÃļ­ »ý¼ºµÈ Apache¼­¹ö´Â apachectl start¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ½ÇÇàÀ» ÇÏ°Ô µÇ¸é ÀÏ¹Ý Apache¼­¹ö¿Í µ¿ÀÏÇÑ ±â´ÉÀ» ÇÏ°Ô µÇ°í apachectl startssl ¸í·ÉÀ» ÀÌ¿ëÇϸé mod_sslÀ» ÀÌ¿ëÇÑ httpsÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ¼ö ÀÖ°Ô µÈ´Ù. Client¿¡¼­ »ç¿ë¹ýÀº url¿¡ "https://server/path/"¶ó°í Àû°ÔµÇ¸ç, À̶§ Server¿Í Client°£ÀÇ ¾Ïȣȭ ¹æ¹ý¿¡ ´ëÇÑ Çù»óÀÌ ÀÌ·ç¾î Áö°Ô µÇ°í ÀÌÈÄ¿¡ Server¿Í Client°£ÀÇ ÀÚ·á´Â ¾Ïȣȭ µÇ¾î Àü¼ÛÀÌ µÊÀ¸·Î, sniffer¸¦ ÀÌ¿ëÇÑ ¹æ¹ýÀ¸·Î´Â ÀڷḦ ÈÉÃĺ¼¼ö ¾ø°Ô µÈ´Ù. ÀÚ¼¼ÇÑ°ÍÀº kldp.org¿¡¼­ mod_sslÀ» °Ë»ö¾î·Î ã¾Æº¸±æ ¹Ù¶õ´Ù.

4.4 Apache ServerÀÇ Å° »ý¼º°ú ÀÎÁõ

Apache + mod_sslÀ» ¼³Ä¡ÇÏ¸é ±âº»ÀûÀ¸·Î 30ÀÏ°£ »ç¿ëÇÒ¼ö ÀÖ´Â Certificate°¡ /path/to/apache/conf/ssl.crt µð·¢Å丮¿¡ ¼³Ä¡µÇ¾î ÀÖ´Ù. ÀÌ°ÍÀ» ¿©·¯ºÐÀÇ CA¿¡¼­ ÀÎÁõÇÑ´Ù¸é ¿©·¯ºÐÀÌ ¿øÇÏ´Â ±â°£µ¿¾È »ç¿ëÇÒ¼ö ÀÖ´Â Certificate°¡ »ý¼ºµÈ´Ù.(1³âÀ̵ç 10³âÀ̵ç...^^;) (¾Æ·¡ÀÇ °úÁ¤À» ÁøÇàÇÏ´Ù º¸¸é ±âÁ¸¿¡ ¼³Ä¡µÈ OpenSSL°ú Ãæµ¹ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. À̶§¿¡´Â ±âÁ¸¿¡ ¼³Ä¡µÈ OpenSSLÀ» Á¦°Å ÇϽðųª, "-config /path/to/openssldir/openssl.cnf"¸¦ Ãß°¡·Î ÀÔ·ÂÇؼ­ »ç¿ëÇϽʽÿä.) ¼³Ä¡°úÁ¤Áß make certificate TYPE=customÀ¸·Î ½ÇÇàÇÏ´Â °æ¿ì¿¡´Â openssl¿¡¼­ »ý¼º½ÃŲ rootCAÀÇ key¿Í certificateÈ­ÀÏÀ» ´Ù½Ã ¼³Ä¡ÇØ¾ß ÇÑ´Ù. À̶§ »ý¼ºµÈ rootCA¿¡´Â object sign(S/W¿¡ »çÀÎÇϴ°Í(?))ÀÌ ºüÁ® ÀÖÀ¸¹Ç·Î rootCA¸¦ ¿î¿µÇÏ´Â µ¥¿¡´Â ºÎÀûÇÕ ÇÒ ¼öµµ ÀÖ´Ù.

  1. openssl¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© Web ServerÀÇ RSAÅ°¸¦ »ý¼ºÇÑ´Ù.

    $ openssl genrsa -des3 -out server.key 1024

    À̶§ »ý¼ºµÇ´Â Å°´Â Web Server¸¦ ¿î¿ëÇϱâÀ§ÇÑ ºñ¹ÐÅ°°¡ µÊÀ¸·Î ¹Ýµå½Ã ¹é¾÷À» ¹Þ¾Æ³õ°í »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. »ý¼ºµÈ Å°´Â ´ÙÀ½ ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ³»¿ëÀ» È®ÀÎÇÒ¼ö ÀÖ´Ù.

    $ openssl rsa -noout -text -in server.key

  2. »ý¼ºµÈ RSAÅ°¸¦ ÀÌ¿ëÇÏ¿© Certificate Signing Request(CSR)À» »ý¼ºÇÑ´Ù.

    $ openssl req -new -days 365 -key server.key -out server.csr

    À§ÀÇ ¸í·É¾î¸¦ ¼öÇàÇÏ´Â µµÁß CommonNameÀ» ¹°¾îº¼¶§¿¡ ServerÀÇ FQDN(Fully Qualified Domain Name --> host.domain.comÀÇ ÇüÅÂ)·Î Àû¾î¾ß ÇÑ´Ù. »ý¼ºµÈ È­ÀÏÀº ´ÙÀ½ ¸í·ÉÀ¸·Î ³»¿ëÀ» È®ÀÎ ÇÒ ¼ö ÀÖ´Ù.

    $ openssl req -noout -text -in server.csr

  3. »ý¼ºµÈ CSRÈ­ÀÏÀº À¯·á¼­ºñ½º¸¦ ÇÏ´Â VeriSignÀ̳ª ThawteµîÀÇ rootCA·Î º¸³»¸é server.crtÈ­ÀÏÀ» ¹ÞÀ»¼ö ÀÖ´Ù. OpenSSLÀ» ÀÌ¿ëÇÒ ¶§¿¡´Â À§¿¡¼­ Self SignÇÒ ¶§Ã³·³ "openssl ca"¸í·ÉÀ» ÀÌ¿ëÇÑ´Ù. À̶§ ¹Ýµå½Ã /path/to/openssldir/openssl.cnfÀÇ ³»¿ëÁß nsCertTypeÀ» Server·Î Çسõ¾Æ¾ß ÇÑ´Ù.( nsCertType = Server) (¿ä°Å »©¸ÔÀ¸¸é Netscape¿¡¼­ https·Î Á¢¼Ó ÇÒ ¼ö°¡ ¾ø¾î¿ä.. -.-)

    $ openssl ca -in server.csr -out server.crt

    (CA.plÀ̳ª CA.sh¸¦ ÀûÀýÈ÷ ¼öÁ¤ÇÏ¿´´Ù¸é "CA.xx -sign"À» ÀÌ¿ëÇصµ µË´Ï´Ù. ±×¸®°í ±âÁ¸ÀÇ OpenSSL°ú Ãæµ¹ÇÏÁö ¾Ê´ÂÁö È®ÀÎÇÏ½Ã°í »ç¿ëÇϽʽÿä.)

  4. »ý¼ºµÈ server.crt¿Í server.keyÈ­ÀÏÀ» ÀûÀýÇÑ À§Ä¡¿¡ º¹»çÇÏ°í »ª¾÷ÇÑ´Ù.

    ApacheÀÇ conf/httpd.conf¿¡ º¸¸é, SSLCertificateFile Ç׸ñÀÌ Áö½ÃÇϴ°÷ÀÌ server.crtÈ­ÀÏÀ» ³ªÅ¸³»´Â °÷ÀÌ°í SSLCertificateKeyFile Ç׸ñÀÌ server.keyÈ­ÀÏÀ» Áö½ÃÇÑ´Ù.

5. ClientÀÇ ÀÎÁõ

ÀÎÁõÀ» ¹Þ±âÀ§Çؼ­´Â DN(Distinguished Name)À» Æ÷ÇÔÇÏ°í ÀÖ´Â ÀÎÁõ¿ä±¸¼­(CSR)¸¦ »ý¼ºÇÏ¿© CA¿¡ ¼Û½ÅÇØ¾ß ÇÑ´Ù. DNÀº °³ÀÎÀ̳ª, ±â°ü, ¼­¹öµîÀ» ±¸ºÐÇϱâÀ§ÇÑ °ÍÀ¸·Î À̸§, ºÎ¼­, Á÷Àå, ÁÖ¼Ò, ³ª¶óµîÀÇ Çʵå·Î ÀÌ·ç¾îÁ® ÀÖ°í, CN, OU, O, L, ST, CµîÀÇ Çʵå·Î Ç¥ÇöµÈ´Ù. ÀÎÁõÀ» ¹Þ±âÀ§ÇÑ ClientµéÀÇ ÀÎÁõ¿ä±¸¼­(CSR)È­ÀÏÀÌ °¢°¢ ´Ù¸¥ÇüÅ·Π»ý¼ºÀÌ µÇ°í, ClientµéÀÌ ÀÎÁõ¼­¸¦ ¼ö·ÉÇÏ´Â ¹æ¹ýÀÌ Á¦°¢±â ´Ù¸§À¸·Î Clientº°·Î °¢°¢ÀÇ »ç¿ë¹æ¹ýÀ» ¼³¸íÇÑ´Ù.

ClientµéÀÌ ÀÚ½ÅÀÇ ÀÎÁõ¼­¸¦ ¼ö·ÉÇÒ ¶§³ª, ´Ù¸¥»ç¶÷ÀÌ »çÀÎÇÑ Äڵ带 ½ÇÇàÇÒ ¶§¿¡´Â rootCAÀÇ ÀÎÁõ¼­°¡ ¹Ì¸® ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. µû¶ó¼­ ¾Õ¿¡¼­ »ý¼ºÇÑ rootCAÀÇ Certificate¸¦ ¹Ì¸® ¼ö½ÅÇؼ­ ¼³Ä¡ÇØ¾ß ÇÑ´Ù. Netscape¿Í MS Explorer´Â application/x-x509-ca-cert MIMEÀ» ÀÌ¿ëÇؼ­ ¼­¹ö¿¡¼­ ¼­ºñ½ºÇϴ°÷¿¡ Á¢¼ÓÇÏ¸é ¼³Ä¡ÇÒ¼ö ÀÖ°í, JAVAÀÇ SDKÀÎ °æ¿ì¿¡´Â ¹Ì¸® ´Ù¿î·Îµå ÇÑ´ÙÀ½ "keytool -import"¸í·ÉÀ» ÀÌ¿ëÇؼ­ ¼³Ä¡ÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ ´ÙÀ½ÀÇ Netscape³ª MS Interne Explorer¿¡¼­ ÀÎÁõ¿ä±¸¼­(Certificate Signing Request:CSR)À» »ý¼ºÇÒ ¶§¿¡´Â °³ÀÎÀÇ Á¤º¸°¡ NetworkÀ» ÀÌ¿ëÇÏ¿© Àü¼ÛµÊÀ¸·Î ¹Ýµå½Ã https ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù.

5.1 Netscape »ç¿ëÀÚÀÎÁõ

Netscape¿¡¼­´Â CSRÈ­ÀÏÀ» À§Çؼ­ SPKACÇüÅÂÀÇ ÀڷḦ »ý¼ºÇÑ´Ù. CSRÈ­ÀÏÀ» »ý¼ºÇϱâ À§Çؼ­´Â Web Server¿¡¼­ KEYGEN TAG¸¦ »ç¿ëÇÑ FormÀ» »ý¼ºÇÏ¿©¾ß ÇÑ´Ù. ´ÙÀ½Àº KEYGEN TAG¸¦ »ç¿ëÇÑ FORMÀÇ ¿¹ÀÌ´Ù.


<FORM name="CSR_request" method="post" action="user_cert.cgi"> 
<table border=1>
<tr><td> ¼º¸í   </td><td><input name="CN" type=input></td>
<tr><td> E-mail </td><td><input name="Email" type=input></td>
<tr><td> ºÎ¼­   </td><td><input name="OU" type=input></td>
<tr><td> ȸ»ç   </td><td><input name="O" type=input></td>
<tr><td> ½Ã     </td><td><input name="L" type=input></td>
<tr><td> µµ     </td><td><input name="ST" type=input></td>
<tr><td> ±¹°¡   </td><td><input name="C" type=input></td>
<tr><td> Å°»ý¼º </td><td><keygen name="SPKAC" type="RSA"></td>
</table>
</FORM>

KEYGEN TAGÀÇ ±âº»¹®¹ýÀº ´ÙÀ½°ú °°´Ù.

<KEYGEN NAME="name" CHALENGE="challenge string" KEYTYPE="type" PQG="pqg-params" >

NAMEÇ׸ñÀº ÇʼöÀÌ°í(cgi¿¡¼­ ó¸®ÇÏ¿©¾ß ÇÔ) KEYTYPEÀº RSA¿Í DSAÁß¿¡ Çϳª¸¦ ¼±ÅÃÇÒ¼ö ÀÖ´Ù. PQG´Â DSA¿¡¼­¸¸ »ç¿ëÇÑ´Ù. keygen tag´Â form tag¾È¿¡¼­¸¸ À¯È¿Çϸç, ƯÁ¤ÇÑ ±æÀÌÀÇ keyÅ©±â¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ¹Ì±¹³»¿¡¼­´Â 512, 768, 1024ºñÆ®ÀÇ Å°¸¦ »ç¿ëÇÒ ¼ö ÀÖ°í, ±×¿Ü ±¹°¡¿¡¼­´Â 512ºñÆ®ÀÇ Å°¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. FormÀ» Àü¼ÛÇϸé 512ºñÆ®ÀÇ º¸¾Èµµ¸¦ °¡Áö´Â Key Pair°¡ »ý¼ºµÇ¸é ºñ¹ÐÅ°´Â ·ÎÄÃDB¿¡ ¾Ïȣȭ µÇ¾î¼­ ÀúÀåµÇ°í °ø°³Å°¿Í challenge½ºÆ®¸µÀº DER encodeµÇ°í ºñ¹ÐÅ°·Î signµÈ´ÙÀ½ base64·Î encodeµÇ°í ¼­¹ö·Î Àü¼ÛµÈ´Ù. ¼­¹öÃø¿¡¼­´Â DN°ú SPKAC½ºÆ®¸µÀ» cgi¸¦ ÀÌ¿ëÇÏ¿© È­ÀÏ·Î ¸¸µé°í ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© SignÇÑ´Ù. (À̶§ SPKAC½ºÆ®¸µÀº 1ÁÙ·Î µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.)

openssl ca -spkac »ý¼ºÇÑÈ­ÀÏ -out ÀÎÁõ¼­.crt

»ý¼ºµÈ ÀÎÁõ¼­´Â application/x-x509-user-certÀÇ MIMEÇüÅ·ΠNetscape Browser·Î Àü¼ÛÇÏ¿© importÇÒ¼ö ÀÖµµ·Ï ÇÑ´Ù. À̶§ NetscapeÀÇ ·ÎÄÃDB¿¡ ÀÎÁõ¼­¿¡ ÇØ´çÇÏ´Â ºñ¹ÐÅ°°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é importÇÒ¼ö ¾ø´Ù.

5.2 MS Internet Explorer »ç¿ëÀÚÀÎÁõ

MS Internet Explorer´Â PKCS#10ÇüÅÂÀÇ ÀÎÁõ¿ä±¸¼­¸¦ ¹ßÇàÇϸç, PKCS#7ÇüÅÂÀÇ ÀÎÁõ¼­¸¦ ¼ö·ÉÇÒ¼ö ÀÖ´Ù. µû¶ó¼­ ServerÃø ÀÔÀå¿¡¼­ º¼¶§¿¡´Â ¾à°£ ±ÍÂúÀº ÀÛ¾÷À» Çϳª´õ ÇØÁà¾ß ÇÑ´Ù. ±×¸®°í Explorer¿¡¼­´Â Netscapeó·³ KEYGEN TAG¸¦ »ç¿ëÇÏÁö ¾Ê°í Microsoft¿¡¼­ Á¤ÀÇÇÑ CryptoAPI(CAPI)¸¦ ÀÌ¿ëÇÑ´Ù.(Á»´õ À¯¿¬ÇÏ´Ù°í Çϴµ¥...Á¤¸»Àϱî¿ä?..^^;) CAPI´Â ±âº»ÀûÀÎ ¾Ïȣȭ ÀÛ¾÷À» À§ÇÑ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.(Å° »ý¼º, ÀÚ·áÀÇ ¾Ïȣȭ, ¹®¼­ÀÇ ¼­¸í, ÀÎÁõ¼­ÀÇ ¿ä±¸µî)

CAPI´Â ´ÙÀ½ÀÇ 4´Ü°è¸¦ ÀÌ¿ëÇÏ¿© ÀÎÁõ¿ä±¸¼­¸¦ ¹ßÇàÇÏ°í ÀÎÁõ¼­¸¦ ¼ö·ÉÇÑ´Ù.

  1. CAPIÇÔ¼ö°¡ ´ç½ÅÀ» À§ÇÑ Key Pair¸¦ »ý¼ºÇÏ°í ÀÎÁõ¼­ â°í¿¡ ÀúÀåÇÑ´Ù.
  2. DN(Distinguished Name)À» »ý¼ºÇÑ´Ù.(?)
  3. CA·Î Àü¼ÛÀ» ÇϱâÀ§ÇÑ PKCS#10ÇüÅÂÀÇ ÀڷḦ »ý¼ºÇÑ´Ù.
  4. CA¿¡¼­ ÀÎÁõÇÑ ÀڷḦ ÀÎÁõ¼­ â°í¿¡ ÀúÀåÇÑ´Ù.
ExplorerÀÇ ÀÎÁõ¼­´Â "HKEY_CURRENT_USER/Software/Microsoft/Cryptography/"¿¡ ÀúÀåµÈ´Ù. CAPIÇÔ¼ö´Â OBJECT TAG¸¦ ÀÌ¿ëÇÏ¿© ·ÎÄõð½ºÅ©¿¡ ÀÖ´Â DLLÀ» ÀоîµéÀÎÈÄ¿¡ »ç¿ë ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº CAPI¸¦ À§ÇÑ xenroll.dllÀ» ÀоîµéÀÌ´Â ¿¹ÀÌ´Ù. (¿¹Àü¿¡´Â certenr3.dllÀ̶ó´Â È­ÀÏ¿¡¼­ Áö¿øÇß¾ú´Âµ¥ Áö±ÝÀº »ç¿ëµÇÁö ¾Ê°í ÀÖ°í, »ç¿ëÇßÀ»°æ¿ì¿¡ OpenSSL¿¡¼­ »çÀιæ¹ýÀÌ Æ²·ÁÁø´Ù.)


<OBJECT classid="clsid:43F8F289-7A20-11D0-8F06-00C04FC295E1"
           codebase="xenroll.dll"
           id=Enroll>
</OBJECT>

Á¤»óÀûÀ¸·Î xenroll.dllÀÌ ºÒ·ÁÁ³À¸¸é DN½ºÆ®¸µÀ» ¸¸µé°í xenrollÀÇ createPKCS10ÇÔ¼ö¸¦ ºÒ·¯¼­ PKCS#10ÇüÅÂÀÇ ÀÎÁõ ¿ä±¸¼­¸¦ ¸¸µç´Ù. DN½ºÆ®¸µÀÇ ¹®ÀÚ¿­ÀÇ ±¸¼º°ú createPKCS10ÇÔ¼öÄÝÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

$szStr="CN=SeungSu KUK; C=KR; ST=KyungBook; L=Kyungsan; O=Catholic University of DAEGU; OU=Computer Center";

$result=Enroll.createPKCS10(szStr, "1.3.6.1.4.1.311.2.1.21");

»ý¼ºµÈ $result¿¡´Â PKCS#10ÇüÅÂÀÇ ¹®ÀÚ¿­ÀÌ µé¾î ÀÖ°í ÀÌ°ÍÀ» CA·Î Àü¼ÛÇÑ´Ù. CAÃø¿¡¼­´Â ÀÌ°Í¿¡ »çÀÎÇÏ°í PKCS#7ÀÇ ÇüÅ·ΠÀÎÁõ¼­¸¦ µ¹·ÁÁØ´Ù.

OpenSSL¿¡¼­´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© »çÀÎÇÏ°í ÀÎÁõ¼­¸¦ »ý¼ºÇÑ´Ù. ¸ÕÀú $result¿¡¼­ µé¾î¿À´Â ÀÚ·á¿¡´Â "BEGIN CERTIFICATE REQUEST"¶ó´Â ¹®ÀÚ¿­ÀÌ ¾ø´Â »óÅÂÀÓÀ¸·Î $result¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ È­ÀÏÀ» »ý¼ºÇÑ´Ù.

-----BEGIN CERTIFICATE REQUEST-----

$result¿¡¼­ ^MÀ» »èÁ¦ÇÑ ³»¿ë

-----END CERTIFICATE REQUEST-----

»ý¼ºµÈ È­ÀÏÀº ´ÙÀ½°ú °°ÀÌ »çÀÎÇÏ°í PKCS#7ÇüÅÂÀÇ È­ÀÏÀ» »ý¼ºÇÑ´Ù.

openssl ca -in »ý¼ºµÈÈ­ÀÏ -out cert°á°úÈ­ÀÏ

openssl crl2pkcs7 -certfile cert°á°úÈ­ÀÏ -in /path/to/crl.pem -out pkcs7È­ÀÏ

(crl.pemÈ­ÀÏÀº ¹Ì¸® »ý¼ºµÇ¾î ÀÖ¾î¾ß Çϴµ¥ "openssl ca -gencrl"¸í·ÉÀ» ÀÌ¿ëÇÏ¿© »ý¼ºÇÑ´Ù.) pkcs7È­ÀÏÀ» Explorer·Î Àü¼ÛÇÒ ¶§¿¡´Â "BEGIN PKCS7"¿Í "END PKCS7"À̶ó´Â ¹®ÀÚ¿­(ùÁÙ°ú ³¡ÁÙ)À» Áö¿î»óÅ·ΠÀü¼ÛÇØ¾ß ÇÑ´Ù. (¾Ê±×·¯¸é ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.) Àü¼ÛµÈ PKCS7È­ÀÏ(VBScript³ª JavaScriptÀÇ º¯¼ö·Î Àü¼Û)Àº AcceptPKCS7ÇÔ¼ö¿¡ ÀÇÇؼ­ importµÇ¸ç ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

$szStr="Àü¼ÛµÈ PKCS7È­ÀÏÀÇ ³»¿ë"

$result=Enroll.AcceptPKCS7(szStr);

5.3 JDK2 »ç¿ëÀÚÀÎÁõ

(¿©±â´Â 1³âÀüÀÇ ³»¿ëÀÔ´Ï´Ù..-.- µû¶ó¼­ °£´ÜÇÑ °³³ä¸¸ Àû¾îº¸°Ú½À´Ï´Ù. ±×¸®°í ºü¸¥½Ã°£³»¿¡ ÀüÁ¦ÀûÀÎ ³»¿ëÀ» Á¤¸®ÇÏ°Ú½À´Ï´Ù.)

JDK2¿¡¼­´Â appletÀ̳ª javascriptµîÀ» »çÀÎÇϱâ À§Çؼ­ ÀÎÁõ¼­¸¦ »ç¿ëÇÑ´Ù. ºñ¹ÐÅ°¿Í °ø°³Å°ÀÇ »ý¼ºÀº keytoolÀ» ÅëÇؼ­ ÀÌ·ç¾îÁö¸ç keytoolÀ» ÅëÇÏ¿© import/export±â´ÉÀ» ¼öÇàÇÑ´Ù. keytoolÀ» ÀÌ¿ëÇÑ °ø°³Å°/ºñ¹ÐÅ°ÀÇ »ý¼ºÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

keytool -genkey -alias »ç¿ëÀÚ¸í -keypass ÇØ´çÅ°ÀǺñ¹Ð¹øÈ£

keytool¿¡¼­ "-genkey"¸¦ ÀÌ¿ëÇϸé Distinguished-NameÀ» ¿ä±¸ÇÏ°í ½ÃÇè¿ëÀ¸·Î »ç¿ëÇÏ´Â Self-Signed Certificate¸¦ »ý¼ºÇÑ´Ù. ÀÌ°ÍÀº ³ªÁß¿¡ "import"¿¡ÀÇÇØ CA¿¡¼­ ÀÎÁõÇÑ Å°·Î ´ëüµÈ´Ù. keytool¿¡¼­ »ç¿ëÇÒ¼ö ÀÖ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.

  • -certreq : CSRÈ­ÀÏÀ» »ý¼ºÇÑ´Ù.
  • -delete : keystore¿¡¼­ ÇØ´çÅ°¸¦ »èÁ¦ÇÑ´Ù.
  • -export : °ø°³Å°¸¦ ÃßÃâÇÑ´Ù.
  • -genkey : keystore entry¸¦ »ý¼ºÇÑ´Ù.
  • -import : CA¿¡¼­ ÀÎÁõÇÑ ÀÎÁõ¼­¸¦ importÇÑ´Ù.
  • -list : keystoreÀÇ ³»¿ëÀ» º¸¿©ÁØ´Ù.
  • -keypasswd: ºñ¹ÐÅ°¿¡ ¾ÏÈ£¸¦ ¼³Á¤ÇÑ´Ù.
  • -storepasswd: (¿ä°Ç¸ðÁö?)
ÀÎÁõ¿ä±¸¼­¸¦ ¸¸µé±â À§Çؼ­´Â "-certreq"¸¦ »ç¿ëÇÑ´Ù. (À̶§ genkey¿¡¼­ ÀÔ·ÂÇÑ ºñ¹Ð¹øÈ£¸¦ ³Ö¾î¾ß ÇÑ´Ù.)

keytool -certreq -keystore keystoreÀ̸§ -alias »ç¿ëÀÚ¸í -file CSRÈ­Àϸí

»ý¼ºµÈ CSRÈ­ÀÏÀº CA¿¡¼­ ÀÎÁõÇÏ°í "-import"¸¦ ÀÌ¿ëÇؼ­ keystore¿¡ ÀúÀåÇÑ´Ù.

keytool -import -alias »ç¿ëÀÚ¸í -file CERTÈ­Àϸí -keystore keystore¸í

³»¿ëÀ» È®ÀÎÇÏ°í ½ÍÀ¸¸é keytool -printcert -file CERTÈ­ÀϸíÀÌ·¸°Ô ÀÔ·ÂÇÑ´Ù.

OpenSSL¿¡¼­ J2sdk¿¡¼­ ¿ä±¸ÇÑ ÀÎÁõ¼­¸¦ ó¸®ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌÇÏ¿© ÀÎÁõ¼­¸¦ »ý¼ºÇÏ°í E-mailµîÀ» ÀÌ¿ëÇÏ¿© µ¹·ÁÁÖ¸é µÈ´Ù.

openssl ca -in certreqÈ­ÀÏ -out °á°úcertÈ­ÀÏ

6. ±âŸ

6.1 Âü°íÀÚ·á

  1. www.openssl.org
  2. www.modssl.org
  3. www.apache.org
  4. Frederick J. HirschÀÇ cookbook (cookbookÀº SSLeay¿¡ °üÇѳ»¿ëÀÌ ¸¹½À´Ï´Ù¸¸ OpenSSLÀÌ ssleay¸¦ ±âÃÊ·ÎÇϱ⠶§¹®¿¡ Âü°í°¡ ¸¹ÀÌ µÉ°Í °°½À´Ï´Ù. Àú´Â ÀÌ·±°Ô ÀÖ´ÂÁöµµ ¸ð¸£°í ¸Ç¶¥¿¡ ÇصùÇÔ¼­ ¸¸µé¾ú´Âµð...Á¤¸®Çϸ鼭 ã¾Æº¸´Ï ÁÁÀºÀÚ·á°¡ Àֳ׿ä..)

6.2 Çê¼Ò¸®..^^

¿¾³¯¿¡(1³âÀüÂë..^^) ÀڷḦ ¿©±âÀú±â¼­ Âü°íÇؼ­ ¸¸µé¾ú´ø °ÍÀε¥... Âü°í ÀڷḦ ãÀ»·Á´Ï, ¾îµð¿¡ ÀÖ´ÂÁö Àß ¸ð¸£°Ú±º¿ä. ¿ø°í ¸¶°¨ÇÒ¶§±îÁö ã¾Æ³ö¾ß ÇÒ ÅÙµ¥...-.-;

Àúµµ ¾ÆÁ÷ OpenSSLÀ» ÀÌ¿ëÇÑ Certificate Server¿î¿ë¹æ¹ý¿¡´Â Àͼ÷ÇÏÁö ¾Ê½À´Ï´Ù. CRL(Certificate Revoke List(?))³ª »ç¿ëÀÚÀÇ CSRÈ­ÀÏÀ» ÀÚµ¿È­ÇÏ¿© ó¸®ÇÏ´Â ¹æ¹ý·Ðµî ¿©·¯°¡Áö¸¦ ¾ÆÁ÷ Á¦´ë·Î ÇÏÁö ¸øÇÏ°í ÀÖ½À´Ï´Ù. ÀÌ ±ÛÀ» ¾²°ÔµÇ¸é¼­ ´õÀÌ»ó ½âÈ÷Áö¸»°í ½á¸Ô¾î¾ß µÇ°Ú´Ù´Â »ý°¢ÀÌ µå´Â±º¿ä...¾ÆÁ÷ ´ú µÈ ºÎºÐµé(Clientµî¿¡¼­ÀÇ »ç¿ë¹ý)Àº Á¦°¡ ½ÃÇèÇغ¸±¸ Á¤¸®°¡ µÇ¸é À̹®¼­¸¦ ¹öÁ¯¾÷(^^) Çؼ­ ´Ù½Ã ¿Ã¸®µµ·Ï ÇÏ°Ú½À´Ï´Ù. º»¹®¿¡ Ʋ¸°³»¿ëÀÌ Àְųª °ÇÀÇ»çÇ×ÀÌ ÀÖÀ¸¸é ¾ðÁ¦µçÁö ȯ¿µÇÕ´Ï´Ù. ¸ÞÀÏÁֽøé Âø½ÇÈ÷ ´äÀº ¸øÇصå·Áµµ ¹Þµå½Ã ¼öÁ¤Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

6.3 °¨»çÀÇ ¸»

¾÷¹«¿Í °ü°è¾ø´Â ÀÏÀ» ÇÏ´Â Àú¸¦ ¿·¿¡¼­ ÁöÄѺÁÁÖ°í ¿©·¯°¡Áö ½ÃÇèÀ» ÇØÁÖ´Â ¹Ú»ó¼ö´Ô²² °¨»çÇϸç, º¼Ç°¾ø´Â Á¦±ÛÀ» ³¡±îÁö ÀоîÁֽŠ¿©·¯ºÐ²² °¨»çµå¸³´Ï´Ù..^^


ID
Password
Join
Try to divide your time evenly to keep others happy.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-11-28 14:33:06
Processing time 0.0024 sec