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. Áغñ¹°
3. Certificate Server¶õ?
4. Certificate ServerÀÇ ¼³Ä¡
4.1 OpenSSLÀÇ ¼³Ä¡
4.2 rootCAÀÇ »ý¼º
4.3 Apache + mod_ssl/OpenSSL + PHP4/MySQLÀÇ ¼³Ä¡
4.4 Apache ServerÀÇ Å° »ý¼º°ú ÀÎÁõ
5. ClientÀÇ ÀÎÁõ
5.1 Netscape »ç¿ëÀÚÀÎÁõ
5.2 MS Internet Explorer »ç¿ëÀÚÀÎÁõ
5.3 JDK2 »ç¿ëÀÚÀÎÁõ
6. ±âŸ
6.1 Âü°íÀÚ·á
6.2 Çê¼Ò¸®..^^
6.3 °¨»çÀÇ ¸»
______________________________________________________________________
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¸¦ ÇÒ ¼ö ÀÖµµ·Ï
¼öÁ¤ ÇÏ¿©¾ß ÇÑ´Ù.
a. CA_default ºÎºÐ¿¡ "dir"À» ¿©·¯ºÐÀÌ »ç¿ëÇÒ µð·¢Å丮¸¦
Àû´Â´Ù.(º¸ÅëÀº "/path/to/openssldir/ÀÚ±âCA"ÀÇ ÇüÅÂ)
b. usr_certºÎºÐÀÇ nsCertTypeÀÌ ¸ðµÎ #À¸·Î ¸·ÇôÀÖÀ¸¹Ç·Î ÇÊ¿äÇÑ
³»¿ëÀ» °ñ¶ó¼ Ç®¾îÁØ´Ù.(Netscape ClientÀÇ ÀÎÁõÁ¾·ù¸¦ °áÁ¤ÇÏ´Â
ºÎºÐÀÎ°Í °°´Ù.)
c. 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
d. keyUsageºÎºÐÀÇ #À» Ç®¾îÁØ´Ù.
e. ÇÊ¿äÇÏ´Ù¸é 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ÀÇ ¿¹ÀÌ´Ù.
______________________________________________________________________
______________________________________________________________________
KEYGEN TAGÀÇ ±âº»¹®¹ýÀº ´ÙÀ½°ú °°´Ù.
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¿¡¼
»çÀιæ¹ýÀÌ Æ²·ÁÁø´Ù.)
______________________________________________________________________
______________________________________________________________________
Á¤»óÀûÀ¸·Î xenroll.dllÀÌ ºÒ·ÁÁ³À¸¸é DN½ºÆ®¸µÀ» ¸¸µé°í xenrollÀÇ cre
atePKCS10ÇÔ¼ö¸¦ ºÒ·¯¼ 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¿¡¼ »ç¿ëÇÒ¼ö ÀÖ´Â
¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.
o -certreq : CSRÈÀÏÀ» »ý¼ºÇÑ´Ù.
o -delete : keystore¿¡¼ ÇØ´çÅ°¸¦ »èÁ¦ÇÑ´Ù.
o -export : °ø°³Å°¸¦ ÃßÃâÇÑ´Ù.
o -genkey : keystore entry¸¦ »ý¼ºÇÑ´Ù.
o -import : CA¿¡¼ ÀÎÁõÇÑ ÀÎÁõ¼¸¦ importÇÑ´Ù.
o -list : keystoreÀÇ ³»¿ëÀ» º¸¿©ÁØ´Ù.
o -keypasswd: ºñ¹ÐÅ°¿¡ ¾ÏÈ£¸¦ ¼³Á¤ÇÑ´Ù.
o -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. °¨»çÀÇ ¸»
¾÷¹«¿Í °ü°è¾ø´Â ÀÏÀ» ÇÏ´Â Àú¸¦ ¿·¿¡¼ ÁöÄѺÁÁÖ°í ¿©·¯°¡Áö ½ÃÇèÀ»
ÇØÁÖ´Â ¹Ú»ó¼ö´Ô²² °¨»çÇϸç, º¼Ç°¾ø´Â Á¦±ÛÀ» ³¡±îÁö ÀоîÁֽŠ¿©·¯ºÐ²²
°¨»çµå¸³´Ï´Ù..^^;