OpenSSL ·Î ROOT CA »ý¼º ¹× SSL ÀÎÁõ¼ ¹ß±Þ
°³¿ä
À¥¼ºñ½º¿¡ https ¸¦ Àû¿ëÇÒ °æ¿ì SSL ÀÎÁõ¼¸¦ VeriSign À̳ª Thawte, GeoTrust µî¿¡¼ ÀÎÁõ¼¸¦ ¹ß±Þ¹Þ¾Æ¾ß ÇÏÁö¸¸ ºñ¿ëÀÌ ¹ß»ýÇϹǷΠ½ÇÁ¦ ¿î¿µ ¼¹ö°¡ ¾Æ´Ï¸é ¹ß±Þ ¹Þ´Âµ¥ ºÎ´ãÀÌ µÉ ¼ö ÀÖ´Ù.
ÀÌ·²¶§ OpenSSL À» ÀÌ¿ëÇÏ¿© ÀÎÁõ±â°üÀ» ¸¸µé°í Self signed certificate ¸¦ »ý¼ºÇÏ°í SSL ÀÎÁõ¼¸¦ ¹ß±ÞÇÏ´Â ¹ýÀ» Á¤¸®ÇØ º»´Ù.
¹ß±ÞµÈ SSL ÀÎÁõ¼´Â apache httpd µîÀÇ Web Server ¿¡ ¼³Ä¡ÇÏ¿© ¼Õ½±°Ô https ¼ºñ½º¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù.
Self Signed Certificate(SSC)¶õ ?
ÀÎÁõ¼(digital certificate)´Â °³ÀÎÅ° ¼ÒÀ¯ÀÚÀÇ °ø°³Å°(public key)¿¡ ÀÎÁõ±â°üÀÇ °³ÀÎÅ°·Î ÀüÀÚ¼¸íÇÑ µ¥ÀÌŸ´Ù. ¸ðµç ÀÎÁõ¼´Â ¹ß±Þ±â°ü(CA) ÀÌ ÀÖ¾î¾ß Çϳª ÃÖ»óÀ§¿¡ ÀÖ´Â ÀÎÁõ±â°ü(root ca)Àº ¼¸íÇØÁÙ »óÀ§ ÀÎÁõ±â°üÀÌ ¾øÀ¸¹Ç·Î root caÀÇ °³ÀÎÅ°·Î ½º½º·ÎÀÇ ÀÎÁõ¼¿¡ ¼¸íÇÏ¿© ÃÖ»óÀ§ ÀÎÁõ±â°ü ÀÎÁõ¼¸¦ ¸¸µç´Ù. ÀÌ·¸°Ô ½º½º·Î ¼¸íÇÑ ROOT CA ÀÎÁõ¼¸¦ Self Signed Certificate ¶ó°í ºÎ¸¥´Ù.
IE, FireFox, Chrome µîÀÇ Web Browser Á¦ÀÛ»ç´Â VeriSign À̳ª comodo °°Àº À¯¸í ROOT CA µéÀÇ ÀÎÁõ¼¸¦ ½Å·ÚÇÏ´Â CA·Î ¹Ì¸® µî·ÏÇØ ³õÀ¸¹Ç·Î Àú·± ±â°ü¿¡¼ ¹ß±ÞµÈ SSL ÀÎÁõ¼¸¦ »ç¿ëÇØ¾ß browser ¿¡¼´Â ÇØ´ç SSL ÀÎÁõ¼¸¦ ½Å·ÚÇÒ¼ö Àִµ¥
OpenSSL ·Î ¸¸µç ROOT CA¿Í SSL ÀÎÁõ¼´Â Browser°¡ ¸ð¸£´Â ±â°üÀÌ ¹ß±ÞÇÑ ÀÎÁõ¼À̹ǷΠº¸¾È °æ°í¸¦ ¹ß»ý½Ãų °ÍÀ̳ª Å×½ºÆ® »ç¿ë¿¡´Â ÁöÀåÀÌ ¾ø´Ù.
ROOT CA ÀÎÁõ¼¸¦ Browser¿¡ Ãß°¡ÇÏ¿© º¸¾È °æ°í¸¦ ¹ß»ý½ÃÅ°Áö ¾ÊÀ¸·Á¸é Browser ¿¡ SSL ÀÎÁõ¼ ¹ß±Þ±â°ü Ãß°¡Çϱ⠸¦ Âü°íÇÏÀÚ.
CSR(Certificate Signing Request)˼?
°ø°³Å° ±â¹Ý(PKI)Àº private key(°³ÀÎÅ°)¿Í public key(°ø°³Å°)·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ÀÎÁõ¼¶ó°í ÇÏ´Â °ÍÀº ³» °ø°³Å°°¡ ¸Â´Ù°í ÀÎÁõ±â°ü(CA)ÀÌ ÀüÀÚ¼¸íÇÏ¿© ÁÖ´Â °ÍÀÌ¸ç ³ª¿Í º¸¾È Åë½ÅÀ» ÇÏ·Á´Â ´ç»çÀÚ´Â ³» ÀÎÁõ¼¸¦ ±¸Çؼ ±× ¾È¿¡ ÀÖ´Â °ø°³Å°¸¦ ÀÌ¿ëÇÏ¿© º¸¾È Åë½ÅÀ» ÇÒ ¼ö ÀÖ´Ù.
CSR Àº ÀÎÁõ±â°ü¿¡ ÀÎÁõ¼ ¹ß±Þ ¿äûÀ» Çϴ Ưº°ÇÑ ASN.1 Çü½ÄÀÇ ÆÄÀÏÀ̸ç(PKCS#10 - RFC2986) ±× ¾È¿¡´Â ³» °ø°³Å° Á¤º¸¿Í »ç¿ëÇÏ´Â ¾Ë°í¸®Áò Á¤º¸µîÀÌ µé¾î ÀÖ´Ù. °³ÀÎÅ°´Â ¿ÜºÎ¿¡ À¯ÃâµÇ¸é ¾È µÇ¹Ç·Î Àú·± Ưº°ÇÑ Çü½ÄÀÇ ÆÄÀÏÀ» ¸¸µé¾î¼ ÀÎÁõ±â°ü¿¡ Àü´ÞÇÏ¿© ÀÎÁõ¼¸¦ ¹ß±Þ ¹Þ´Â´Ù.
SSL ÀÎÁõ¼ ¹ß±Þ½Ã CSR »ý¼ºÀº Web Server ¿¡¼ ÀÌ·ç¾îÁö´Âµ¥ Web Server ¸¶´Ù ¹æ½ÄÀÌ »óÀÌÇÏ¿© »ç¿ëÀÚµéÀÌ CSR »ý¼ºµîÀ» ¾î·Á¿öÇÏ´Ï ÀÎÁõ¼ ¹ß±Þ ´ëÇà ±â°ü¿¡¼ °³ÀÎÅ°±îÁö »ý¼ºÇؼ º¸³»ÁÖ°í´Â ÇÑ´Ù.
ROOT CA ÀÎÁõ¼ »ý¼º
openssl ·Î root ca ÀÇ °³ÀÎÅ°¿Í ÀÎÁõ¼¸¦ ¸¸µé¾î º¸ÀÚ
CA °¡ »ç¿ëÇÒ RSA key pair(public, private key) »ý¼º
°³ÀÎÅ° ºÐ½Ç¿¡ ´ëºñÇØ AES 256bit ·Î ¾ÏÈ£ÈÇÑ´Ù. AES À̹ǷΠ¾ÏÈ£(pass phrase)¸¦ ºÐ½ÇÇÏ¸é °³ÀÎÅ°¸¦ ¾òÀ»¼ö ¾øÀ¸´Ï ²À ±â¾ïÇØ¾ß ÇÑ´Ù.
°³ÀÎÅ° ±ÇÇÑ ¼³Á¤
º¸¾È °æ°í
°³ÀÎÅ°ÀÇ À¯Ãâ ¹æÁö¸¦ À§ÇØ group °ú otherÀÇ permission À» ¸ðµÎ Á¦°ÅÇÑ´Ù.
chmod 600 /etc/pki/tls/private/lesstif-rootca.key
CSR(Certificate Signing Request) »ý¼ºÀ» À§ÇÑ rootca_openssl.conf ·Î ÀúÀå
10³âÂ¥¸® self-signed ÀÎÁõ¼ »ý¼º
-extensions v3_ca ¿É¼ÇÀ» Ãß°¡ÇØ¾ß ÇÑ´Ù.
¼¸í¿¡ »ç¿ëÇÒ Çؽà ¾Ë°í¸®ÁòÀ» º¯°æÇÏ·Á¸é -sha256, -sha384, -sha512 ó·³ Çؽø¦ ÁöÁ¤ÇÏ´Â ¿É¼ÇÀ» Àü´ÞÇØ ÁØ´Ù.
±âº»°ªÀº -sha256 À̸ç openssl 1.0.2 ÀÌ»óÀÌ ÇÊ¿ä
Á¦´ë·Î »ý¼ºµÇ¾ú´ÂÁö È®ÀÎÀ» À§ÇØ ÀÎÁõ¼ÀÇ Á¤º¸¸¦ Ãâ·ÂÇØ º»´Ù.
SSL ÀÎÁõ¼ »ý¼º
À§¿¡¼ »ý¼ºÇÑ root ca ¼¸íÅ°·Î SSL ÀÎÁõ¼¸¦ ¹ß±ÞÇØ º¸ÀÚ
SSL È£½ºÆ®¿¡¼ »ç¿ëÇÒ RSA key pair(public, private key) »ý¼º
Remove Passphrase from key
°³ÀÎÅ°¸¦ º¸È£Çϱâ À§ÇØ Key-Derived Function À¸·Î °³ÀÎÅ° ÀÚü°¡ ¾ÏȣȵǾî ÀÖ´Ù. ÀÎÅÍ³Ý ¹ðÅ·µî¿¡ »ç¿ëµÇ´Â °³Àοë ÀÎÁõ¼´Â ´ç¿¬È÷ Àú·¸°Ô º¸È£µÇ¾î¾ß ÇÏÁö¸¸ SSL ¿¡ »ç¿ëÇÏ·Á´Â Å°°¡ ¾ÏÈ£°¡ °É·ÁÀÖÀ¸¸é httpd ±¸µ¿¶§¸¶´Ù pass phrase ¸¦ ÀÔ·ÂÇØ¾ß ÇϹǷΠ¾ÏÈ£¸¦ Á¦°ÅÇÑ´Ù.
º¸¾È °æ°í
°³ÀÎÅ°ÀÇ À¯Ãâ ¹æÁö¸¦ À§ÇØ group °ú otherÀÇ permission À» ¸ðµÎ Á¦°ÅÇÑ´Ù.
chmod 600 /etc/pki/tls/private/lesstif.com.key*
CSR(Certificate Signing Request) »ý¼ºÀ» À§ÇÑ host_openssl.conf ·Î ÀúÀå
5³âÂ¥¸® lesstif.com ¿ë SSL ÀÎÁõ¼ ¹ß±Þ (¼¸í½Ã ROOT CA °³ÀÎÅ°·Î ¼¸í)
Á¦´ë·Î »ý¼ºµÇ¾ú´ÂÁö È®ÀÎÀ» À§ÇØ ÀÎÁõ¼ÀÇ Á¤º¸¸¦ Ãâ·ÂÇØ º»´Ù.
apache httpd ¿¡ SSL Àû¿ë
apache httpd ¿¡ SSL/HTTPS Àû¿ë ¹× VirtualHost ¿¡ SNI(Server Name Indication) ¹®Á¦ ÇØ°á Âü°í