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

<!doctype linuxdoc system>

<!-- Catholic University of DAEGU Computer Center 
-->
<ARTICLE>
<title> Certificate ServerÀÇ ¼³Ä¡ ¿Í ClientÀÎÁõ
<author> ±¹½Â¼ö <htmlurl url="mailto:sskuk@sskuk.cataegu.ac.kr" 
name="sskuk@sskuk.cataegu.ac.kr">
<date> V0.1 2000³â 11¿ù 11ÀÏ

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

<!-- Â÷·Ê -->
<toc>

<!-- º»¹®ÀÇ ½ÃÀÛ -->

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

<sect> Áغñ¹°
<p>
<enum>
<item> <url url="http://www.openssl.org/" name="OpenSSL">
<item> <url url="http://www.apache.org/" name="Apache">
<item> <url url="http://www.perl.com/" name="Perl">
<item> <url url="http://www.modssl.org/" name="mod_ssl">
<item> <url url="http://www.php.net/" name="PHP">
<item> Client Browser(Netscape³ª Explorer)
<item> Java2 SDK
<item> ...
<item> ´ã¹è Çѵΰ© °ú ÂðÇÑ Ä¿ÇÇ(Çʼö!)
<item> ´ã¹è¾ÈÇÇ¸é ²­À̳ª »çÅÁ(^^)
</enum>
OpenSSL¸¸ À־ Certificate Service¸¦ ó¸®Çϴµ¥¿¡´Â ¹®Á¦°¡ ¾øÁö¸¸,
Á»´õ »ç¿ëÀÚ¸¦ ÆíÇÏ°Ô ÇÒ·Á¸é ³ª¸ÓÁö µéµµ Àִ°ÍÀÌ ÁÁ´Ù.
<p>

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

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

 À§¿¡¼­ ³ªÅ¸³­°Í ó·³, ÀÎÅͳݿ¡¼­ ƯÁ¤°³ÀÎÀ̳ª ±â°ü¿¡´ëÇÑ ÀÎÁõÀ» ÇØÁÖ´Â °÷ÀÌ 
CAÀ̸ç, ÀÌ·± ¿ªÈ°À» ¼öÇàÇÏ´Â ¼­¹ö°¡ Certificate ServerÀÌ´Ù. 
<url url="http://www.verisign.com/" name="VeriSign">À̳ª
<url url="http://www.thawte.com/" name="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µîÀÇ Ç÷§Æû¿¡¼­ ½ÇÇàµÈ´Ù.

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


<sect1> OpenSSLÀÇ ¼³Ä¡
<p>
OpenSSLÀ» ¼³Ä¡Çϱâ À§Çؼ­´Â 
<url url="http://www.perl.com" name="Perl 5">¿Í ANSI CÄÄÆÄÀÏ·¯°¡ ÇÊ¿äÇÏ´Ù.
±âº»ÀûÀÎ ¼³Ä¡ ¹æ¹ýÀº ÀÎÅͳݻóÀÇ ´Ù¸¥ ÆÐŰÁöµéó·³ ´ÙÀ½°ú °°ÀÌÇÏ¿© ¼³Ä¡ÇÒ¼ö ÀÖ´Ù.

<verb>
	$ ./config
	$ make
	$ make test
	$ make install
</verb>

config¿¡¼­ prefix¸¦ ÁÖÁö ¾Ê¾ÒÀ» ¶§¿¡´Â /usr/local/sslµð·¢Å丮¿¡ ¼³Ä¡°¡ µÇ´Ï
´Ù¸¥ µð·¢Å丮¿¡ ¼³Ä¡¸¦ ÇϰíÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
<bf> $ ./config --prefix=/usr/local --openssldir=/usr/local/openssl </bf>
ÀÌ·¸°Ô Çϸé OpenSSLÀÇ ½ÇÇàÈ­ÀÏÀº /usr/local/bin¿¡ ¼³Ä¡µÇ°í Certificate Service¸¦
À§ÇÑ È­ÀϵéÀº /usr/local/openssl¾Æ·¡ÀÇ µð·¢Å丮¿¡ »ý¼ºµÈ´Ù.
¶ÇÇÑ rsaref¸¦ ¼±ÅûçÇ×À¸·Î ÁÙ¼ö°¡ Àִµ¥ À̰ÍÀº librsaref.a¶ó´Â ¶óÀ̺귯¸®°¡
¶óÀ̺귯¸® Search°æ·Î¿¡ ÀÖ¾î¾ß ÇÑ´Ù. (¹ýÀûÀ¸·Î ¹®Á¦°¡ µÇ´ÂºÎºÐÀÌ ¾Æ´Ñ°¡ 
¸ð¸£°Ú³×¿ä..¾îµð¼­ ÀÐÀº°Í °°¾Æ¼­..-.-; ftp search¿¡¼­ rsaref20À¸·Î 
°Ë»öÇϽøé ãÀ»¼ö ÀÖ½À´Ï´Ù...±×·±µ¥, ³Ö°í ÄÄÆÄÀÏÇÏ¸é ¿¡·¯°¡
³ª´õ¶ó±¸¿ä..)
<p>
<bf>make</bf>¸¦ ½ÇÇàÇϸé OpenSSL¶óÀ̺귯¸®(libcrypto.a¿Í libssl.a)¿Í ½ÇÇàÈ­ÀÏ
(openssl)ÀÌ »ý¼ºµÇ°í, ¶óÀ̺귯¸®´Â make¸¦ ½ÇÇàÇÑ µð·¢Å丮¿¡, OpenSSL½ÇÇàÈ­ÀÏÀº 
appsµð·¢Å丮¿¡ »ý¼ºµÈ´Ù. make¸¦ ½ÇÇàÇÏ´Â µµÁß ¿¡·¯°¡ »ý±â¸é, ¿¡·¯¸Þ¼¼Áö¸¦ 
»ìÆìº¸¾Æ¾ß ÇÑ´Ù. ´ëºÎºÐ OpenSSLÀÇ ¹®Á¦°¡ ¾Æ´Ï¶ó°í Çϸç, Á¤¸»·Î OpenSSLÀÇ 
¹®Á¦¶ó°í ÆÇ´ÜµÈ´Ù¸é make report¸í·ÉÀ» ÀÌ¿ëÇÏ¿© Ãâ·ÂµÈ ³»¿ëÀ» 
openssl-bugs@openssl.org¿¡ ¼Û½ÅÇÑ´Ù.
<p>
´ÙÀ½Àº <bf>make test</bf>¸¦ ½ÇÇàÇÏ¿© OpenSSLÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇÑ´Ù.
½ÇÆÐÇÑ ³»¿ëÀÌ ÀÖ´Ù¸é, CFLAGSµîÀ» ¼öÁ¤Çϰí "make clean; make"¸í·ÉÀ» ÀÌ¿ëÇÏ¿©
´Ù½Ã ÄÄÆÄÀÏÇÑÈÄ make test¸¦ ½ÇÇàÇØ º»´Ù.
<p>
¸ðµç ½ÃÇèÀÌ Á¤»óÀûÀ¸·Î ¼º°øÇÑ´Ù¸é, <bf>make install</bf>¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© 
¼³Ä¡µð·¢Å丮(/usr/local/sslÀ̳ª /usr/local/bin, /usr/local/opensslµî)¿¡ 
½ÇÇàÈ­Àϰú µµ¿ò¸» È­ÀÏ, ȯ°æ¼³Á¤È­ÀϵîÀ» ¼³Ä¡ÇÑ´Ù.
¿©±â±îÁö º° ¹®Á¦ ¾øÀÌ ½ÇÇàµÇ¾ú´Ù¸é, Certificate Server¸¦ ½ÇÇàÇϱâ À§ÇÑ 
±âº»ÀûÀÎ Áغñ´Â ¿Ï·áµÈ °ÍÀÌ´Ù. ´ÙÀ½Àº OpenSSLÀ» ÀÌ¿ëÇÑ Certificate
Server¿î¿ëÀ» À§ÇÑ Å°»ý¼º°ú ȯ°æ¼³Á¤À» ½Ç½ÃÇÑ´Ù.
<p>

<sect1> rootCAÀÇ »ý¼º
<p>
Certificate Server¸¦ ¿î¿ëÇÏ´Â °÷Àº Tree±¸Á¶ÀÇ ÇüÅ·ΠÀÌ·ç¾îÁ® ÀÖ´Ù.
Á¦ÀÏ Ã³À½¿¡ ³ªÅ¸³ª´Â CA¸¦ rootCA¶ó°í Çϰí ÀÚ±â ÀÚ½ÅÀÌ »ý¼ºÇÑ
ÀÎÁõ¿ä±¸¼­¸¦ ÀÚ±âÀÚ½ÅÀÌ signÇÏ¿© °³ÀÎÀ̳ª, ±â°ü¿¡°Ô ¹èÆ÷ÇÑ´Ù.
rootCA·ÎºÎÅÍ ÀÎÁõÀ» ¹ÞÀº ÀÎÁõ±â°üÀº Áß°èÀÎÁõ±â°üÀ̶ó°í Çϸç,
ÀÎÁõ¿ä±¸¼­¸¦ rootCA·Î ºÎÅÍ ÀÎÁõ¹Þ¾Æ¼­ ´Ù¸¥»ç¶÷À̳ª ±â°üÀÇ ÀÎÁõ¿ä±¸¼­¸¦
ÀÎÁõÇØÁÖ´Â ¿ªÈ°À» ÇÑ´Ù. Áö±ÝºÎÅÍ´Â ¾Õ¿¡¼­ »ý¼ºµÈ OpenSSLÀÇ
½ÇÇàÈ­ÀϵéÀ» ÀÌ¿ëÇØ¼­ ÀڽŸ¸ÀÇ rootCA¸¦ »ý¼ºÇÑ´Ù.
<p>
(¾Æ·¡¿¡¼­ ¼³¸íÇÏ´Â ³»¿ëÀº /path/to/openssldir/misc¿¡ º¸½Ã¸é CA.pl°ú 
CA.sh °¡ ÀÖ½À´Ï´Ù. CA.xx¸¦ ÀûÀýÈ÷ ¼öÁ¤Çϰí ./CA.xx -newca·Î ÇÏ¿© 
rootCA¸¦ »ý¼ºÇϼŵµ µË´Ï´Ù.  Perl°ú shellÀÇ scriptÀÓÀ¸·Î Å©°Ô 
¾î·Á¿î°ÍÀº ¾øÀ» °Ì´Ï´Ù...^^; "CATOP"º¯¼ö¸¦ ÀûÀýÈ÷ ¼öÁ¤ÇÏ½Ã¸é µË´Ï´Ù.  
¶ÇÇÑ ClientµéÀÇ Sign Request°¡ ÀÖÀ»¶§¿¡µµ »ç¿ëÇϽǼö ÀÖÀ¸¹Ç·Î ÀÚ¼¼È÷ 
»ìÆìº¸½Ã´Â°ÍÀÌ ÁÁ½À´Ï´Ù.)
<p>

<enum>
<item> ºñ¹ÐŰÀÇ »ý¼º<p>
	$ <bf> openssl genrsa -des3 -out ca.key 1024</bf><p>
	1024ºñÆ®ÀÇ º¸¾Èµµ¸¦ °¡Áö´Â RSA۸¦ »ý¼ºÇÑ´Ù.
	Certificate ServerÀÚüÀÇ ºñ¹Ð۰¡ µÊÀ¸·Î ¹Þµå½Ã ´Ù¸¥»ç¶÷ÀÌ
	º¼¼ö ¾ø´Â°÷¿¡ º¸°üÇÏ°í »ª¾÷À» ¹ÞÀºÈÄ¿¡ »ç¿ëÇϴ°ÍÀÌ ÁÁ´Ù.

<item> »ý¼ºµÈ ºñ¹Ð۸¦ ÀÌ¿ëÇÏ¿© Self SignµÈ ÀÎÁõ¼­ È­ÀÏÀ» »ý¼ºÇÑ´Ù.<p>
	$ <bf> openssl req -new -x509 -days 365 -key ca.key -out
	ca.crt</bf><p>
	À§ÀÇ ¸í·É¾î¸¦ ÀÌ¿ëÇϸé Certificate ServerÀÇ Distinguished
	NameÀ» ¹°¾î¿Â´Ù. Áú¹®¿¡ ´ëÇÑ ´äÀ» Á¤È®ÇÏ°Ô ÀÔ·ÂÇÏ°í³ª¸é  
	rootCAÀÇ Certificate ServerÀÇ ÀÎÁõ¼­°¡ »ý¼ºµÈ´Ù. ±×¸®°í Çʿ信
	µû¶ó days°°Àº Ç׸ñÀº ¼öÁ¤Çؼ­ »ç¿ëÇϵµ·Ï ÇÑ´Ù. (ºñ¹Ð¹øÈ£ 
	Àؾî¸ÔÁö ¾Êµµ·Ï ÁÖÀÇÇϼ¼¿ä..T.T)

<item> opensslµð·¢Å丮ÀÇ openssl.cnfÈ­ÀÏÀ» ¼öÁ¤ÇÑ´Ù.<p>
	openssl.cnfÈ­ÀÏÀº Certificate Service¸¦ ¿î¿ëÇϱâ À§ÇÑ
	ȯ°æ¼³Á¤À» ´ã°í ÀÖ´Â È­ÀÏ·Î make installÀ» ÇßÀ»¶§¿¡´Â sample
	ÀÚ·á°¡ µé¾îÀÖ´Ù. ÀÌ È­ÀÏÀº ÆíÁýÇÏ¿© ¿©·¯ºÐÀÇ  Certificate
	Service¸¦ ÇÒ ¼ö ÀÖµµ·Ï ¼öÁ¤ ÇÏ¿©¾ß ÇÑ´Ù.
	<p>
	<enum>
	<item> CA_default ºÎºÐ¿¡ "dir"À» ¿©·¯ºÐÀÌ »ç¿ëÇÒ µð·¢Å丮¸¦
	Àû´Â´Ù.(º¸ÅëÀº "/path/to/openssldir/ÀÚ±âCA"ÀÇ ÇüÅÂ)
	<item> usr_certºÎºÐÀÇ nsCertTypeÀÌ ¸ðµÎ #À¸·Î ¸·ÇôÀÖÀ¸¹Ç·Î
	ÇÊ¿äÇÑ ³»¿ëÀ» °ñ¶ó¼­ Ç®¾îÁØ´Ù.(Netscape ClientÀÇ ÀÎÁõÁ¾·ù¸¦
	°áÁ¤ÇÏ´Â ºÎºÐÀÎ°Í °°´Ù.)
	<item> Ca_defaultÀÇ dir¿¡ ÇÊ¿äÇÑ µð·¢Å丮¿Í È­ÀÏÀ» »ý¼ºÇÑ´Ù.
		µð·¢Å丮´Â certs, crl, newcerts, privateÀ̰í È­ÀÏÀº 
		"01"ÀÇ ³»¿ëÀ» ´ã°íÀÖ´Â serial°ú ³»¿ëÀÌ ¾ø´Â index.txtÀÌ´Ù.
		(CA.xxÀÇ ³»¿ë°ú openssl.cnf¸¦ Âü°íÇÏ½Ã¸é µË´Ï´Ù.)
<verb>
	$ 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
</verb>
	<item> keyUsageºÎºÐÀÇ #À» Ç®¾îÁØ´Ù.
	<item> ÇÊ¿äÇÏ´Ù¸é nsComment¸¦ ¿øÇϴ°ÍÀ¸·Î ¹Ù²Û´Ù.
	</enum>
	<p>
<item> »ý¼ºµÈ ºñ¹ÐŰ¿Í °ø°³Å°¸¦ openssl.cnf¿¡¼­ ÁöÁ¤ÇÑ µð·¢Å丮¿¡ º¹»çÇÑ´Ù.<p>
       ca.key´Â /path/to/openssldir/ÀÚ±âCA/private/cakey.pemÀ¸·Î
       º¹»çÇϰí ca.crt´Â /path/to/openssldir/ÀÚ±âCA/cacert.pemÁ¤µµ·Î
       º¹»çÇÏ¸é µË´Ï´Ù.
       <p>
<item> °ø°³Å°´Â application/x-x509-ca-certÀÇ MIMEÇüÅ·ΠClient Browser¿¡
	Àü¼ÛÇÒ ¼ö ÀÖÀ¸¸ç, Client¿¡¼­´Â "½Å·ÚµÈ ·çÆ®ÀÎÁõ±â°ü"À¸·Î 
	importÇÒ ¼ö ÀÖ´Ù.
</enum>
¿©±â±îÁö ÇϼÌÀ¸¸é, ºÒÆíÇÏÁö¸¸ ¼öµ¿(?)À¸·Î Certificate Service¸¦ ÇÒ ¼ö
ÀÖ½À´Ï´Ù. ´ÙÀ½Àº Á¶±ÝÀ̳ª¸¶ Æí¾ÈÇÏ°Ô Service¸¦ Çϱâ À§Çؼ­ Apache¿¡¼­ 
¸î°¡Áö ÀÛ¾÷À» ÇÕ´Ï´Ù.(³ªÁß¿¡ Client¿Í ¿¬°áÇØ¼­ CSRÀ» »ý¼ºÇÒ¶§
»ç¿ëÇÕ´Ï´Ù.)

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

<verb>
	$ 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
</verb>
ÄÄÆÄÀÏ °úÁ¤Áß ÁÖÀÇÇÒ Á¡Àº ¸¶Áö¸·ÀÇ ApacheÀÇ È¯°æ¼³Á¤À» ÇÒ¶§¿¡ SSL_BASE´Â
OpenSSLÀ» ¼³Ä¡ÇÒ¶§¿¡ prefix¿¡ ÁÖ¾îÁø µð·¢Å丮¸¦ ÁÖ¾î¾ß ÇÑ´Ù. 
(<bf>openssldirÀÌ ¾Æ´Ï´Ù.</bf>)

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

	
<sect1> Apache ServerÀÇ Å° »ý¼º°ú ÀÎÁõ
<p>
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¸¦ ¿î¿µÇÏ´Â µ¥¿¡´Â ºÎÀûÇÕ ÇÒ ¼öµµ ÀÖ´Ù.
<p>

<enum>
<item> openssl¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© Web ServerÀÇ RSA۸¦ »ý¼ºÇÑ´Ù.<p>
	$ <bf> openssl genrsa -des3 -out server.key 1024</bf><p>
	À̶§ »ý¼ºµÇ´Â Ű´Â Web Server¸¦ ¿î¿ëÇϱâÀ§ÇÑ ºñ¹Ð۰¡ µÊÀ¸·Î 
	¹Ýµå½Ã ¹é¾÷À» ¹Þ¾Æ³õ°í »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.
	»ý¼ºµÈ Ű´Â ´ÙÀ½ ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ³»¿ëÀ» È®ÀÎÇÒ¼ö ÀÖ´Ù.<p>

	$ <bf> openssl rsa -noout -text -in server.key </bf>

<item> »ý¼ºµÈ RSA۸¦ ÀÌ¿ëÇÏ¿© Certificate Signing Request(CSR)À»
	»ý¼ºÇÑ´Ù.<p>
	$ <bf> openssl req -new -days 365 -key server.key -out
	server.csr</bf><p>
	À§ÀÇ ¸í·É¾î¸¦ ¼öÇàÇÏ´Â µµÁß CommonNameÀ» ¹°¾îº¼¶§¿¡ ServerÀÇ
	FQDN(Fully Qualified Domain Name --> host.domain.comÀÇ ÇüÅÂ)·Î
	Àû¾î¾ß ÇÑ´Ù. »ý¼ºµÈ È­ÀÏÀº ´ÙÀ½ ¸í·ÉÀ¸·Î ³»¿ëÀ» È®ÀÎ ÇÒ ¼ö
	ÀÖ´Ù.

	$ <bf> openssl req -noout -text -in server.csr</bf><p>

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

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

<item> »ý¼ºµÈ server.crt¿Í server.keyÈ­ÀÏÀ» ÀûÀýÇÑ À§Ä¡¿¡ º¹»çÇÏ°í »ª¾÷ÇÑ´Ù.<p>
	ApacheÀÇ conf/httpd.conf¿¡ º¸¸é, SSLCertificateFile Ç׸ñÀÌ
	Áö½ÃÇϴ°÷ÀÌ server.crtÈ­ÀÏÀ» ³ªÅ¸³»´Â °÷À̰í
	SSLCertificateKeyFile Ç׸ñÀÌ server.keyÈ­ÀÏÀ» Áö½ÃÇÑ´Ù.
</enum>

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

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

<!-- È­¸é¿¡¼­ ±úÁ®¼­ ÀÌ·¸°Ô Çߴµ¥...±¦Âú°ÚÁö¿ä?...^^ -->
<code>
<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>
</code>

KEYGEN TAGÀÇ ±âº»¹®¹ýÀº ´ÙÀ½°ú °°´Ù.<p>
<bf> <KEYGEN NAME="name" CHALENGE="challenge string" KEYTYPE="type"
PQG="pqg-params" > </bf><p>
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ÁÙ·Î µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.)
<p>

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

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

<sect1> MS Internet Explorer »ç¿ëÀÚÀÎÁõ
<p>
MS Internet Explorer´Â PKCS#10ÇüÅÂÀÇ ÀÎÁõ¿ä±¸¼­¸¦ ¹ßÇàÇϸç,
PKCS#7ÇüÅÂÀÇ ÀÎÁõ¼­¸¦ ¼ö·ÉÇÒ¼ö ÀÖ´Ù. µû¶ó¼­ ServerÃø ÀÔÀå¿¡¼­ º¼¶§¿¡´Â
¾à°£ ±ÍÂúÀº ÀÛ¾÷À» Çϳª´õ ÇØÁà¾ß ÇÑ´Ù. ±×¸®°í Explorer¿¡¼­´Â
Netscapeó·³ KEYGEN TAG¸¦ »ç¿ëÇÏÁö ¾Ê°í Microsoft¿¡¼­ Á¤ÀÇÇÑ
CryptoAPI(CAPI)¸¦ ÀÌ¿ëÇÑ´Ù.(Á»´õ À¯¿¬ÇÏ´Ù°í Çϴµ¥...Á¤¸»Àϱî¿ä?..^^;)
CAPI´Â ±âº»ÀûÀÎ ¾Ïȣȭ ÀÛ¾÷À» À§ÇÑ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.(Ű »ý¼º, ÀÚ·áÀÇ
¾Ïȣȭ, ¹®¼­ÀÇ ¼­¸í, ÀÎÁõ¼­ÀÇ ¿ä±¸µî)
<p>
CAPI´Â ´ÙÀ½ÀÇ 4´Ü°è¸¦ ÀÌ¿ëÇÏ¿© ÀÎÁõ¿ä±¸¼­¸¦ ¹ßÇàÇϰí ÀÎÁõ¼­¸¦
¼ö·ÉÇÑ´Ù.
<enum>
<item> CAPIÇÔ¼ö°¡ ´ç½ÅÀ» À§ÇÑ Key Pair¸¦ »ý¼ºÇϰí ÀÎÁõ¼­ â°í¿¡
ÀúÀåÇÑ´Ù.
<item> DN(Distinguished Name)À» »ý¼ºÇÑ´Ù.(?)
<item> CA·Î Àü¼ÛÀ» ÇϱâÀ§ÇÑ PKCS#10ÇüÅÂÀÇ ÀڷḦ »ý¼ºÇÑ´Ù.
<item> CA¿¡¼­ ÀÎÁõÇÑ ÀڷḦ ÀÎÁõ¼­ â°í¿¡ ÀúÀåÇÑ´Ù.
</enum>
ExplorerÀÇ ÀÎÁõ¼­´Â
"HKEY_CURRENT_USER/Software/Microsoft/Cryptography/"¿¡ ÀúÀåµÈ´Ù.
CAPIÇÔ¼ö´Â OBJECT TAG¸¦ ÀÌ¿ëÇÏ¿© ·ÎÄõð½ºÅ©¿¡ ÀÖ´Â DLLÀ» ÀоîµéÀÎÈÄ¿¡
»ç¿ë ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº CAPI¸¦ À§ÇÑ xenroll.dllÀ» ÀоîµéÀÌ´Â ¿¹ÀÌ´Ù.
(¿¹Àü¿¡´Â certenr3.dllÀ̶ó´Â È­ÀÏ¿¡¼­ Áö¿øÇß¾ú´Âµ¥ Áö±ÝÀº »ç¿ëµÇÁö
¾Ê°í ÀÖ°í, »ç¿ëÇßÀ»°æ¿ì¿¡ OpenSSL¿¡¼­ »çÀιæ¹ýÀÌ Æ²·ÁÁø´Ù.)
<p>
<code>
<OBJECT classid="clsid:43F8F289-7A20-11D0-8F06-00C04FC295E1"
           codebase="xenroll.dll"
	   id=Enroll>
</OBJECT>
</code>
Á¤»óÀûÀ¸·Î xenroll.dllÀÌ ºÒ·ÁÁ³À¸¸é DN½ºÆ®¸µÀ» ¸¸µé°í xenrollÀÇ
createPKCS10ÇÔ¼ö¸¦ ºÒ·¯¼­ PKCS#10ÇüÅÂÀÇ ÀÎÁõ ¿ä±¸¼­¸¦ ¸¸µç´Ù.
DN½ºÆ®¸µÀÇ ¹®ÀÚ¿­ÀÇ ±¸¼º°ú createPKCS10ÇÔ¼öÄÝÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
<p>
<bf>$szStr="CN=SeungSu KUK; C=KR; ST=KyungBook; L=Kyungsan; O=Catholic
University of DAEGU; OU=Computer Center";</bf><p>
<bf>$result=Enroll.createPKCS10(szStr, "1.3.6.1.4.1.311.2.1.21");</bf>
<p>
»ý¼ºµÈ $result¿¡´Â PKCS#10ÇüÅÂÀÇ ¹®ÀÚ¿­ÀÌ µé¾î ÀÖ°í À̰ÍÀ» CA·Î
Àü¼ÛÇÑ´Ù. CAÃø¿¡¼­´Â À̰Ϳ¡ »çÀÎÇϰí PKCS#7ÀÇ ÇüÅ·ΠÀÎÁõ¼­¸¦
µ¹·ÁÁØ´Ù.
<p>
OpenSSL¿¡¼­´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© »çÀÎÇϰí ÀÎÁõ¼­¸¦ »ý¼ºÇÑ´Ù.
¸ÕÀú $result¿¡¼­ µé¾î¿À´Â ÀÚ·á¿¡´Â "BEGIN CERTIFICATE REQUEST"¶ó´Â
¹®ÀÚ¿­ÀÌ ¾ø´Â »óÅÂÀÓÀ¸·Î $result¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ È­ÀÏÀ»
»ý¼ºÇÑ´Ù.
<p>
<bf>-----BEGIN CERTIFICATE REQUEST-----</bf><p>
<bf>$result¿¡¼­ ^MÀ» »èÁ¦ÇÑ ³»¿ë</bf><p>
<bf>-----END CERTIFICATE REQUEST-----</bf><p>

»ý¼ºµÈ È­ÀÏÀº ´ÙÀ½°ú °°ÀÌ »çÀÎÇϰí PKCS#7ÇüÅÂÀÇ È­ÀÏÀ» »ý¼ºÇÑ´Ù.
<p>
<bf>openssl ca -in »ý¼ºµÈÈ­ÀÏ -out cert°á°úÈ­ÀÏ</bf><p>
<bf>openssl crl2pkcs7 -certfile cert°á°úÈ­ÀÏ -in /path/to/crl.pem -out
pkcs7È­ÀÏ</bf><p>
(crl.pemÈ­ÀÏÀº ¹Ì¸® »ý¼ºµÇ¾î ÀÖ¾î¾ß Çϴµ¥ "openssl ca -gencrl"¸í·ÉÀ» 
ÀÌ¿ëÇÏ¿© »ý¼ºÇÑ´Ù.) pkcs7È­ÀÏÀ» Explorer·Î Àü¼ÛÇÒ ¶§¿¡´Â "BEGIN PKCS7"¿Í 
"END PKCS7"À̶ó´Â ¹®ÀÚ¿­(ùÁÙ°ú ³¡ÁÙ)À» Áö¿î»óÅ·ΠÀü¼ÛÇØ¾ß ÇÑ´Ù.
(¾Ê±×·¯¸é ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.)  Àü¼ÛµÈ PKCS7È­ÀÏ(VBScript³ª JavaScriptÀÇ 
º¯¼ö·Î Àü¼Û)Àº AcceptPKCS7ÇÔ¼ö¿¡ ÀÇÇØ¼­ importµÇ¸ç ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
<p>
<bf>$szStr="Àü¼ÛµÈ PKCS7È­ÀÏÀÇ ³»¿ë"</bf><p>
<bf>$result=Enroll.AcceptPKCS7(szStr);</bf><p>
<P>

<sect1> JDK2 »ç¿ëÀÚÀÎÁõ
<p>
<!-- ¾ÆÁ÷ ¿ÏÀüÈ÷ ÇØº»°ÍÀÌ ¾Æ´Ñµ¥.....
1³âÀü¿¡ RSA SignÀ» À§Çؼ­ ½ÃÇèÇØºÃ¾ú´Âµ¥, Àß ¾ÊµÌ¾ú°Åµç¿ä...
Çѹø´õ ½ÃÇèÇØº¸±¸ µÇµç¾ÊµÇ´Â  Á¤¸®Çؼ­ ¿Ã¸®°Ú½À´Ï´Ù..
-->
(¿©±â´Â 1³âÀüÀÇ ³»¿ëÀÔ´Ï´Ù..-.- µû¶ó¼­ °£´ÜÇÑ °³³ä¸¸ Àû¾îº¸°Ú½À´Ï´Ù.
±×¸®°í ºü¸¥½Ã°£³»¿¡ ÀüÁ¦ÀûÀÎ ³»¿ëÀ» Á¤¸®ÇϰڽÀ´Ï´Ù.)
<p>
JDK2¿¡¼­´Â appletÀ̳ª javascriptµîÀ» »çÀÎÇϱâ À§Çؼ­ ÀÎÁõ¼­¸¦ »ç¿ëÇÑ´Ù.
ºñ¹ÐŰ¿Í °ø°³Å°ÀÇ »ý¼ºÀº keytoolÀ» ÅëÇØ¼­ ÀÌ·ç¾îÁö¸ç keytoolÀ» ÅëÇÏ¿©
import/export±â´ÉÀ» ¼öÇàÇÑ´Ù. keytoolÀ» ÀÌ¿ëÇÑ °ø°³Å°/ºñ¹ÐŰÀÇ »ý¼ºÀº
´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
<p>
<bf> keytool -genkey -alias »ç¿ëÀÚ¸í -keypass ÇØ´çŰÀǺñ¹Ð¹øÈ£</bf>
<p>
keytool¿¡¼­ "-genkey"¸¦ ÀÌ¿ëÇϸé Distinguished-NameÀ» ¿ä±¸Çϰí
½ÃÇè¿ëÀ¸·Î »ç¿ëÇÏ´Â Self-Signed Certificate¸¦ »ý¼ºÇÑ´Ù. À̰ÍÀº ³ªÁß¿¡
"import"¿¡ÀÇÇØ CA¿¡¼­ ÀÎÁõÇÑ Å°·Î ´ëüµÈ´Ù.
keytool¿¡¼­ »ç¿ëÇÒ¼ö ÀÖ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.
<p>
<itemize>
<item> -certreq : CSRÈ­ÀÏÀ» »ý¼ºÇÑ´Ù.
<item> -delete  : keystore¿¡¼­ ÇØ´ç۸¦ »èÁ¦ÇÑ´Ù.
<item> -export  : °ø°³Å°¸¦ ÃßÃâÇÑ´Ù.
<item> -genkey  : keystore entry¸¦ »ý¼ºÇÑ´Ù.
<item> -import  : CA¿¡¼­ ÀÎÁõÇÑ ÀÎÁõ¼­¸¦ importÇÑ´Ù.
<item> -list    : keystoreÀÇ ³»¿ëÀ» º¸¿©ÁØ´Ù.
<item> -keypasswd: ºñ¹ÐŰ¿¡ ¾ÏÈ£¸¦ ¼³Á¤ÇÑ´Ù.
<item> -storepasswd: (¿ä°Ç¸ðÁö?)
</itemize>
ÀÎÁõ¿ä±¸¼­¸¦ ¸¸µé±â À§Çؼ­´Â "-certreq"¸¦ »ç¿ëÇÑ´Ù.  (À̶§ genkey¿¡¼­
ÀÔ·ÂÇÑ ºñ¹Ð¹øÈ£¸¦ ³Ö¾î¾ß ÇÑ´Ù.)
<p>
<bf>keytool -certreq -keystore keystoreÀ̸§ -alias »ç¿ëÀÚ¸í -file
CSRÈ­Àϸí</bf>
<p>
»ý¼ºµÈ CSRÈ­ÀÏÀº CA¿¡¼­ ÀÎÁõÇϰí "-import"¸¦ ÀÌ¿ëÇØ¼­ keystore¿¡
ÀúÀåÇÑ´Ù.
<p>
<bf>keytool -import -alias »ç¿ëÀÚ¸í -file CERTÈ­Àϸí -keystore
keystore¸í </bf>
<p>
³»¿ëÀ» È®ÀÎÇÏ°í ½ÍÀ¸¸é <bf> keytool -printcert -file
CERTÈ­Àϸí</bf>ÀÌ·¸°Ô ÀÔ·ÂÇÑ´Ù.
<p>
OpenSSL¿¡¼­ J2sdk¿¡¼­ ¿ä±¸ÇÑ ÀÎÁõ¼­¸¦ ó¸®ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌÇÏ¿©
ÀÎÁõ¼­¸¦ »ý¼ºÇϰí E-mailµîÀ» ÀÌ¿ëÇÏ¿© µ¹·ÁÁÖ¸é µÈ´Ù.
<p>
<bf> openssl ca -in certreqÈ­ÀÏ -out °á°úcertÈ­ÀÏ</bf>
<p>

<sect> ±âŸ
<p>
<sect1> Âü°íÀÚ·á
<p>

<enum>
<item> <url url="http://www.openssl.org/" name="www.openssl.org">
<item> <url url="http://www.modssl.org/" name="www.modssl.org">
<item> <url url="http://www.apache.org/" name="www.apache.org">
<item> Frederick J. HirschÀÇ <url 
url="http://www.ultranet.com/~fhirsch/Papers/cook/ssl_cook.html" 
name="cookbook">
(cookbookÀº <url url="http://www.ssleay.org/" name="SSLeay">¿¡
°üÇѳ»¿ëÀÌ ¸¹½À´Ï´Ù¸¸ OpenSSLÀÌ ssleay¸¦ ±âÃÊ·ÎÇϱ⠶§¹®¿¡ 
Âü°í°¡ ¸¹ÀÌ µÉ°Í °°½À´Ï´Ù. Àú´Â ÀÌ·±°Ô ÀÖ´ÂÁöµµ ¸ð¸£°í ¸Ç¶¥¿¡ 
ÇØµùÇÔ¼­ ¸¸µé¾ú´Âµð...Á¤¸®Çϸ鼭 ã¾Æº¸´Ï ÁÁÀºÀÚ·á°¡ Àֳ׿ä..)
</enum>
<p>

<sect1> Çê¼Ò¸®..^^
<p>
¿¾³¯¿¡(1³âÀüÂë..^^) ÀڷḦ ¿©±âÀú±â¼­ Âü°íÇØ¼­ ¸¸µé¾ú´ø °ÍÀε¥...
Âü°í ÀڷḦ ãÀ»·Á´Ï, ¾îµð¿¡ ÀÖ´ÂÁö Àß ¸ð¸£°Ú±º¿ä.
¿ø°í ¸¶°¨ÇÒ¶§±îÁö ã¾Æ³ö¾ß ÇÒ ÅÙµ¥...-.-;
<p>
Àúµµ ¾ÆÁ÷ OpenSSLÀ» ÀÌ¿ëÇÑ Certificate Server¿î¿ë¹æ¹ý¿¡´Â Àͼ÷ÇÏÁö
¾Ê½À´Ï´Ù. CRL(Certificate Revoke List(?))³ª »ç¿ëÀÚÀÇ CSRÈ­ÀÏÀ»
ÀÚµ¿È­ÇÏ¿© ó¸®ÇÏ´Â ¹æ¹ý·Ðµî ¿©·¯°¡Áö¸¦ ¾ÆÁ÷ Á¦´ë·Î ÇÏÁö ¸øÇϰí
ÀÖ½À´Ï´Ù.  ÀÌ ±ÛÀ» ¾²°ÔµÇ¸é¼­ ´õÀÌ»ó ½âÈ÷Áö¸»°í ½á¸Ô¾î¾ß µÇ°Ú´Ù´Â
»ý°¢ÀÌ µå´Â±º¿ä...¾ÆÁ÷ ´ú µÈ ºÎºÐµé(Clientµî¿¡¼­ÀÇ »ç¿ë¹ý)Àº Á¦°¡  
½ÃÇèÇØº¸±¸ Á¤¸®°¡ µÇ¸é À̹®¼­¸¦ ¹öÁ¯¾÷(^^) ÇØ¼­ ´Ù½Ã ¿Ã¸®µµ·Ï 
ÇϰڽÀ´Ï´Ù.  º»¹®¿¡ Ʋ¸°³»¿ëÀÌ Àְųª °ÇÀÇ»çÇ×ÀÌ ÀÖÀ¸¸é ¾ðÁ¦µçÁö 
ȯ¿µÇÕ´Ï´Ù.  ¸ÞÀÏÁֽøé Âø½ÇÈ÷ ´äÀº ¸øÇصå·Áµµ ¹Þµå½Ã ¼öÁ¤Çϵµ·Ï 
ÇϰڽÀ´Ï´Ù.
<p>
<sect1> °¨»çÀÇ ¸»
<p>
¾÷¹«¿Í °ü°è¾ø´Â ÀÏÀ» ÇÏ´Â Àú¸¦ ¿·¿¡¼­ ÁöÄѺÁÁÖ°í ¿©·¯°¡Áö ½ÃÇèÀ»
ÇØÁÖ´Â ¹Ú»ó¼ö´Ô²² °¨»çÇϸç, º¼Ç°¾ø´Â Á¦±ÛÀ» ³¡±îÁö ÀоîÁֽŠ¿©·¯ºÐ²²
°¨»çµå¸³´Ï´Ù..^^
</ARTICLE>




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.0071 sec