ÀÎÁõÀ» ¹Þ±âÀ§Çؼ´Â 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 ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù.
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ÇÒ¼ö ¾ø´Ù.
MS Internet Explorer´Â PKCS#10ÇüÅÂÀÇ ÀÎÁõ¿ä±¸¼¸¦ ¹ßÇàÇϸç, PKCS#7ÇüÅÂÀÇ ÀÎÁõ¼¸¦ ¼ö·ÉÇÒ¼ö ÀÖ´Ù. µû¶ó¼ ServerÃø ÀÔÀå¿¡¼ º¼¶§¿¡´Â ¾à°£ ±ÍÂúÀº ÀÛ¾÷À» Çϳª´õ ÇØÁà¾ß ÇÑ´Ù. ±×¸®°í Explorer¿¡¼´Â Netscapeó·³ KEYGEN TAG¸¦ »ç¿ëÇÏÁö ¾Ê°í Microsoft¿¡¼ Á¤ÀÇÇÑ CryptoAPI(CAPI)¸¦ ÀÌ¿ëÇÑ´Ù.(Á»´õ À¯¿¬ÇÏ´Ù°í Çϴµ¥...Á¤¸»Àϱî¿ä?..^^;) CAPI´Â ±âº»ÀûÀÎ ¾ÏÈ£È ÀÛ¾÷À» À§ÇÑ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.(Å° »ý¼º, ÀÚ·áÀÇ ¾ÏÈ£È, ¹®¼ÀÇ ¼¸í, ÀÎÁõ¼ÀÇ ¿ä±¸µî)
CAPI´Â ´ÙÀ½ÀÇ 4´Ü°è¸¦ ÀÌ¿ëÇÏ¿© ÀÎÁõ¿ä±¸¼¸¦ ¹ßÇàÇÏ°í ÀÎÁõ¼¸¦ ¼ö·ÉÇÑ´Ù.
<OBJECT classid="clsid:43F8F289-7A20-11D0-8F06-00C04FC295E1" codebase="xenroll.dll" id=Enroll> </OBJECT>
$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);
(¿©±â´Â 1³âÀüÀÇ ³»¿ëÀÔ´Ï´Ù..-.- µû¶ó¼ °£´ÜÇÑ °³³ä¸¸ Àû¾îº¸°Ú½À´Ï´Ù. ±×¸®°í ºü¸¥½Ã°£³»¿¡ ÀüÁ¦ÀûÀÎ ³»¿ëÀ» Á¤¸®ÇÏ°Ú½À´Ï´Ù.)
JDK2¿¡¼´Â appletÀ̳ª javascriptµîÀ» »çÀÎÇϱâ À§Çؼ ÀÎÁõ¼¸¦ »ç¿ëÇÑ´Ù. ºñ¹ÐÅ°¿Í °ø°³Å°ÀÇ »ý¼ºÀº keytoolÀ» ÅëÇؼ ÀÌ·ç¾îÁö¸ç keytoolÀ» ÅëÇÏ¿© import/export±â´ÉÀ» ¼öÇàÇÑ´Ù. keytoolÀ» ÀÌ¿ëÇÑ °ø°³Å°/ºñ¹ÐÅ°ÀÇ »ý¼ºÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
keytool -genkey -alias »ç¿ëÀÚ¸í -keypass ÇØ´çÅ°ÀǺñ¹Ð¹øÈ£
keytool¿¡¼ "-genkey"¸¦ ÀÌ¿ëÇϸé Distinguished-NameÀ» ¿ä±¸ÇÏ°í ½ÃÇè¿ëÀ¸·Î »ç¿ëÇÏ´Â Self-Signed Certificate¸¦ »ý¼ºÇÑ´Ù. ÀÌ°ÍÀº ³ªÁß¿¡ "import"¿¡ÀÇÇØ CA¿¡¼ ÀÎÁõÇÑ Å°·Î ´ëüµÈ´Ù. keytool¿¡¼ »ç¿ëÇÒ¼ö ÀÖ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.
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ÈÀÏ