OPENSSL·þÎñ - °²È«ÐÅÏ¢´«Êä

¡¶OPENSSL·þÎñ - °²È«ÐÅÏ¢´«Êä¡·ÕªÒª£º Ëæ×żÆËã»úÍøÂç¼¼ÊõµÄ·¢Õ¹£¬·½±ã¿ì½ÝµÄ»¥Á¬ÍøÊ¹ÈËÃǽ¥½¥Ï°¹ßÁË´ÓWebÒ³ÉÏÊÕ·¢E-mail¡¢¹ºÎïºÍ½»Ò×£¬ÕâʱWebÒ³ÃæÉÏÐèÒª´«ÊäÖØÒª»òÃô¸ÐµÄÊý¾Ý£¬ÀýÈçÓû§µÄÒøÐÐÕÊ»§¡¢ÃÜÂëµÈ£¬ËùÒÔÍøÂ簲ȫ¾Í³ÉΪÏÖ´¡­
¡¡¡¡Ëæ×żÆËã»úÍøÂç¼¼ÊõµÄ·¢Õ¹£¬·½±ã¿ì½ÝµÄ»¥Á¬ÍøÊ¹ÈËÃǽ¥½¥Ï°¹ßÁË´ÓWebÒ³ÉÏÊÕ·¢E-mail¡¢¹ºÎïºÍ½»Ò×£¬ÕâʱWebÒ³ÃæÉÏÐèÒª´«ÊäÖØÒª»òÃô¸ÐµÄÊý¾Ý£¬ÀýÈçÓû§µÄÒøÐÐÕÊ»§¡¢ÃÜÂëµÈ£¬ËùÒÔÍøÂ簲ȫ¾Í³ÉΪÏÖ´ú¼ÆËã»úÍøÂçÓ¦Óü±Ðè½â¾öµÄÎÊÌâ¡£

¡¡¡¡ÏÖÐÐÍøÉÏÒøÐк͵ç×ÓÉÌÎñµÈ´óÐ͵ÄÍøÉϽ»Ò×ϵͳÆÕ±é²ÉÓÃHTTPºÍSSLÏà½áºÏµÄ·½Ê½¡£·þÎñÆ÷¶Ë²ÉÓÃÖ§³ÖSSLµÄWeb·þÎñÆ÷£¬Óû§¶Ë²ÉÓÃÖ§³ÖSSLµÄä¯ÀÀÆ÷ʵÏÖ°²È«Í¨ÐÅ¡£
¡¡¡¡SSLÊÇSecure Socket Layer£¨°²È«Ì×½Ó²ãЭÒ飩µÄËõд£¬¿ÉÒÔÔÚInternetÉÏÌá¹©ÃØÃÜÐÔ´«Êä¡£Netscape¹«Ë¾ÔÚÍÆ³öµÚÒ»¸öWebä¯ÀÀÆ÷µÄͬʱ£¬Ìá³öÁËSSLЭÒé±ê×¼,ĿǰÒÑÓÐ3.0°æ±¾¡£SSL²ÉÓù«¿ªÃÜÔ¿¼¼Êõ¡£ÆäÄ¿±êÊDZ£Ö¤Á½¸öÓ¦ÓüäͨÐŵı£ÃÜÐԺͿɿ¿ÐÔ,¿ÉÔÚ·þÎñÆ÷¶ËºÍÓû§¶ËͬʱʵÏÖÖ§³Ö¡£Ä¿Ç°£¬ÀûÓù«¿ªÃÜÔ¿¼¼ÊõµÄSSLЭÒ飬ÒѳÉΪInternetÉϱ£ÃÜͨѶµÄ¹¤Òµ±ê×¼¡£±¾ÎÄ×ÅÖØÔÚSSLЭÒéºÍSSL³ÌÐòÉè¼ÆÁ½·½ÃæÌ¸Ì¸×÷Õß¶ÔSSLµÄÀí½â¡£

Ò». SSLЭÒé³õ²½½éÉÜ

¡¡¡¡°²È«Ì×½Ó²ãЭÒéÄÜʹÓû§/·þÎñÆ÷Ó¦ÓÃÖ®¼äµÄͨÐŲ»±»¹¥»÷ÕßÇÔÌý£¬²¢ÇÒʼÖÕ¶Ô·þÎñÆ÷½øÐÐÈÏÖ¤£¬»¹¿ÉÑ¡Ôñ¶ÔÓû§½øÐÐÈÏÖ¤¡£SSLЭÒéÒªÇó½¨Á¢ÔÚ¿É¿¿µÄ´«Êä²ãЭÒé(TCP)Ö®ÉÏ¡£SSLЭÒéµÄÓÅÊÆÔÚÓÚËüÊÇÓëÓ¦ÓòãЭÒé¶ÀÁ¢Î޹ص쬏߲ãµÄÓ¦ÓòãЭÒé(ÀýÈ磺HTTP£¬FTP£¬TELNETµÈ)ÄÜ͸Ã÷µØ½¨Á¢ÓÚSSLЭÒéÖ®ÉÏ¡£SSLЭÒéÔÚÓ¦ÓòãЭÒéͨÐÅ֮ǰ¾ÍÒѾ­Íê³É¼ÓÃÜËã·¨¡¢Í¨ÐÅÃÜÔ¿µÄЭÉ̼°·þÎñÆ÷ÈÏÖ¤¹¤×÷¡£ÔÚ´ËÖ®ºóÓ¦ÓòãЭÒéËù´«Ë͵ÄÊý¾Ý¶¼»á±»¼ÓÃÜ£¬´Ó¶ø±£Ö¤Í¨ÐŵÄ˽ÃÜÐÔ¡£

¡¡¡¡Í¨¹ýÒÔÉÏÐðÊö£¬SSLЭÒéÌṩµÄ°²È«ÐŵÀÓÐÒÔÏÂÈý¸öÌØÐÔ£º

¡¡¡¡1) Êý¾ÝµÄ±£ÃÜÐÔ

¡¡¡¡ÐÅÏ¢¼ÓÃܾÍÊǰÑÃ÷ÂëµÄÊäÈëÎļþÓüÓÃÜË㷨ת»»³É¼ÓÃܵÄÎļþÒÔʵÏÖÊý¾ÝµÄ±£ÃÜ¡£¼ÓÃܵĹý³ÌÐèÒªÓõ½Ãܳ×À´¼ÓÃÜÊý¾ÝÈ»ºóÔÙ½âÃÜ¡£Ã»ÓÐÁËÃÜÔ¿£¬¾ÍÎÞ·¨½â¿ª¼ÓÃܵÄÊý¾Ý¡£Êý¾Ý¼ÓÃÜÖ®ºó£¬Ö»ÓÐÃܳ×ÒªÓÃÒ»¸ö°²È«µÄ·½·¨´«ËÍ¡£¼ÓÃܹýµÄÊý¾Ý¿ÉÒÔ¹«¿ªµØ´«ËÍ¡£

¡¡¡¡2) Êý¾ÝµÄÒ»ÖÂÐÔ

¡¡¡¡¼ÓÃÜÒ²Äܱ£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ¡£ÀýÈç:ÏûÏ¢ÑéÖ¤Â루MAC£©£¬Äܹ»Ð£ÑéÓû§ÌṩµÄ¼ÓÃÜÐÅÏ¢£¬½ÓÊÕÕß¿ÉÒÔÓÃMACÀ´Ð£Ñé¼ÓÃÜÊý¾Ý£¬±£Ö¤Êý¾ÝÔÚ´«Êä¹ý³ÌÖÐûÓб»´Û¸Ä¹ý¡£

¡¡¡¡3) °²È«ÑéÖ¤

¡¡¡¡¼ÓÃܵÄÁíÍâÒ»¸öÓÃ;ÊÇÓÃÀ´×÷Ϊ¸öÈ˵ıêʶ£¬Óû§µÄÃܳ׿ÉÒÔ×÷ΪËûµÄ°²È«ÑéÖ¤µÄ±êʶ¡£
SSLÊÇÀûÓù«¿ªÃÜÔ¿µÄ¼ÓÃܼ¼Êõ£¨RSA£©À´×÷ΪÓû§¶ËÓë·þÎñÆ÷¶ËÔÚ´«ËÍ»úÃÜ×ÊÁÏʱµÄ¼ÓÃÜͨѶЭ¶¨¡£Ä¿Ç°£¬´ó²¿·ÖµÄWeb ·þÎñÆ÷¼°ä¯ÀÀÆ÷¶¼¹ã·ºÖ§³ÖSSL ¼¼Êõ¡£µ±ä¯ÀÀÆ÷ÊÔͼÁ¬½ÓÒ»¸ö¾ßÓÐSSLÈÏÖ¤¼ÓÃܵķþÎñÆ÷ʱ,¾Í»á»½ÐÑÒ»¸öSSL»á»°,ä¯ÀÀÆ÷¼ì²éÈÏÖ¤,±ØÐë¾ß±¸ÏÂÃæÈý¸öÌõ¼þ:

¡¡¡¡1£©ÓÐÒ»¸öȨÍþ»ú¹¹·¢·ÅÖ¤Ê飬µ±È»¿ÉÒÔ´´½¨×ÔÎÒÇ©¶©µÄÖ¤Ê飨x509 ½á¹¹£©¡£

¡¡¡¡2£©Ö¤Êé²»ÄܹýÆÚ¡£

¡¡¡¡3£©Ö¤ÊéÊÇÊôÓÚËüËùÁ¬½ÓµÄ·þÎñÆ÷µÄ¡£

¡¡¡¡Ö»ÓÐÈ«²¿¾ß±¸ÁËÕâÈý¸öÌõ¼þ,ä¯ÀÀÆ÷²ÅÄܳɹ¦Íê³ÉÈÏÖ¤¡£Í¨¹ýÕâÈý¸öÌõ¼þ,Óû§ÄÜÈ·ÈÏÆää¯ÀÀÆ÷Á¬½Óµ½ÕýÈ·µÄ·þÎñÆ÷,¶ø²»ÊÇÁ¬½Óµ½Ò»Ð©ÏëµÁÈ¡Óû§ÃÜÂëµÈÖØÒªÐÅÏ¢µÄÐé¼ÙµÄ·þÎñÆ÷ÉÏ¡£

¡¡¡¡ÔÚµ±½ñµÄµç×ÓÉÌÎñÖл¹ÓÐÒ»Ïî±»¹ã·ºÊ¹Óõİ²È«Ð­ÒéÊÇSETЭÒé¡£SET(Secure Electronic Transaction£¬°²È«µç×Ó½»Ò×)ЭÒéÊÇÓÉVISAºÍMasterCardÁ½´óÐÅÓÿ¨¹«Ë¾ÓÚ1997Äê5ÔÂÁªºÏÍÆ³öµÄ¹æ·¶¡£SETÄÜÔÚµç×Ó½»Ò×»·½ÚÉÏÌṩ¸ü´óµÄÐÅÈζȡ¢¸üÍêÕûµÄ½»Ò×ÐÅÏ¢¡¢¸ü¸ßµÄ°²È«ÐԺ͸üÉÙÊÜÆÛÕ©µÄ¿ÉÄÜÐÔ¡£SET½»Ò×·ÖÈý¸ö½×¶Î½øÐÐ:Óû§ÏòÉ̼ҹºÎﲢȷ¶¨Ö§¸¶;É̼ÒÓëÒøÐкËʵ;ÒøÐÐÏòÉ̼ÒÖ§¸¶»õ¿î¡£Ã¿¸ö½×¶Î¶¼Éæ¼°µ½RSA¶ÔÊý¾Ý¼ÓÃÜ£¬ÒÔ¼°RSAÊý×ÖÇ©Ãû¡£Ê¹ÓÃSETЭÒ飬ÔÚÒ»´Î½»Ò×ÖУ¬ÒªÍê³É¶à´Î¼ÓÃÜÓë½âÃܲÙ×÷£¬¹ÊÓкܸߵݲȫÐÔ£¬µ«SETЭÒé±ÈSSLЭÒ鸴ÔÓ£¬É̼ҺÍÒøÐж¼ÐèÒª¸ÄÔìϵͳÒÔʵÏÖ»¥²Ù×÷¡£

¡¡¡¡ÔÚLinux Ï£¬±È½ÏÁ÷ÐÐÖ§³ÖSSLÈÏÖ¤µÄÊÇOpenSSL·þÎñÆ÷¡£OpenSSLÏîÄ¿ÊÇÒ»¸öºÏ×÷µÄÏîÄ¿£¬¿ª·¢Ò»¸ö½¡×³µÄ¡¢ÉÌÒµµÈ¼¶µÄ¡¢ÍêÕûµÄ¿ª·ÅÔ´´úÂëµÄ¹¤¾ß°ü£¬ÓÃÇ¿´óµÄ¼ÓÃÜËã·¨À´ÊµÏÖ°²È«µÄSocket²ã£¨Secure Sockets Layer£¬SSL v2/v3£©ºÍ´«Êä²ãµÄ°²È«ÐÔ£¨Transport Layer Security£¬TLS v1£©¡£Õâ¸öÏîÄ¿ÊÇÓÉÈ«ÊÀ½çµÄÖ¾Ô¸Õß¹ÜÀíºÍ¿ª·¢OpenSSL¹¤¾ß°üºÍÏà¹ØÎĵµ¡£

¡¡¡¡ÈçºÎÔÚLinuxÏÂÅäÖÃOpenSSL·þÎñÆ÷£¬Ê×ÏÈ´ÓOpenSSLµÄÖ÷Ò³£¨http://www.openssl.org/£©ÉÏÏÂÔØopenssl-version.tar.gzÈí¼þ°üÀ´±àÒë°²×°£¬ÓëApache·þÎñÆ÷ÅäºÏ¿ÉÒÔ½¨Á¢Ö§³ÖSSLµÄWeb·þÎñÆ÷£¬²¢¿ÉÒÔʹÓÃ×ÔÎÒÇ©¶©µÄÖ¤Êé×öÈÏÖ¤£¬¹ØÓÚÈçºÎ±àÒë¡¢°²×°OpenSSL·þÎñÆ÷£¬¿ÉÒԲο¼Ò»ÏÂOpenSSL HOWTOÎĵµ¡£

¶þ. SSL ³ÌÐòÉè¼Æ³õ²½½éÉÜ

¡¡¡¡SSL ͨѶģÐÍΪ±ê×¼µÄC/S ½á¹¹£¬³ýÁËÔÚ TCP ²ãÖ®ÉϽøÐд«ÊäÖ®Í⣬ÓëÒ»°ãµÄͨѶûÓÐʲôÃ÷ÏÔµÄÇø±ð¡£ÔÚÕâÀÎÒÃÇÖ÷Òª½éÉÜÈçºÎʹÓÃOpenSSL½øÐа²È«Í¨Ñ¶µÄ³ÌÐòÉè¼Æ¡£¹ØÓÚOpenSSL µÄһЩÏêϸµÄÐÅÏ¢Çë²Î¿¼OpenSSLµÄ¹Ù·½Ö÷Ò³ http://www.openssl.org¡£

¡¡¡¡ÔÚʹÓÃOpenSSLǰ£¬±ØÐëÏȶÔOpenSSL ½øÐгõʼ»¯£¬ÒÔϵÄÈý¸öº¯ÊýÈÎÑ¡ÆäÒ»:

¡¡¡¡SSL_library_init(void);
¡¡¡¡OpenSSL_add_ssl_algorithms();
¡¡¡¡SSLeay_add_ssl_algorithms();


¡¡¡¡ÊÂʵÉÏ ºóÃæµÄÁ½¸öº¯ÊýÖ»ÊǵÚÒ»¸öº¯ÊýµÄºê¡£

¡¡¡¡Èç¹ûҪʹÓÃOpenSSLµÄ³ö´íÐÅÏ¢£¬Ê¹ÓÃSSL_load_error_strings (void)½øÐдíÎóÐÅÏ¢µÄ³õʼ»¯¡£ÒÔºó¿ÉÒÔʹÓÃvoid ERR_print_errors_fp(FILE *fp) ´òÓ¡SSLµÄ´íÎóÐÅÏ¢¡£
¡¡¡¡Ò»´ÎSSLÁ¬½Ó»á»°Ò»°ãÒªÏÈÉêÇëÒ»¸öSSL »·¾³£¬»ù±¾µÄ¹ý³ÌÊÇ£º

¡¡¡¡1. SSL_METHOD* meth = TLSv1_client_method(); ´´½¨±¾´Î»á»°Á¬½ÓËùʹÓõÄЭÒ飬Èç¹ûÊǿͻ§¶Ë¿ÉÒÔʹÓÃ

¡¡¡¡SSL_METHOD* TLSv1_client_method(void); TLSv1.0 ЭÒé
¡¡¡¡SSL_METHOD* SSLv2_client_method(void); SSLv2 ЭÒé
¡¡¡¡SSL_METHOD* SSLv3_client_method(void); SSLv3 ЭÒé
¡¡¡¡SSL_METHOD* SSLv23_client_method(void); SSLv2/v3 ЭÒé

¡¡¡¡·þÎñÆ÷ͬÑùÐèÒª´´½¨±¾´Î»á»°ËùʹÓõÄЭÒé:

¡¡¡¡SSL_METHOD *TLSv1_server_method(void);
¡¡¡¡SSL_METHOD *SSLv2_server_method(void);
¡¡¡¡SSL_METHOD *SSLv3_server_method(void);
¡¡¡¡SSL_METHOD *SSLv23_server_method(void);

¡¡¡¡ÐèҪעÒâµÄÊǿͻ§¶ËºÍ·þÎñÆ÷ÐèҪʹÓÃÏàͬµÄЭÒé¡£

¡¡¡¡2£®ÉêÇëSSL»á»°µÄ»·¾³ CTX£¬Ê¹Óò»Í¬µÄЭÒé½øÐлỰ£¬Æä»·¾³Ò²ÊDz»Í¬µÄ¡£ÉêÇëSSL»á»°»·¾³µÄOpenSSLº¯ÊýÊÇ

¡¡¡¡SSLK_CTX* SSL_CTX_new (SSL_METHOD*); ²ÎÊý¾ÍÊÇÇ°ÃæÎÒÃÇÉêÇëµÄ SSLͨѶ·½Ê½¡£·µ»Øµ±Ç°µÄSSL Á¬½Ó»·¾³µÄÖ¸Õë¡£

¡¡¡¡È»ºó¸ù¾Ý×Ô¼ºµÄÐèÒªÉèÖÃCTXµÄÊôÐÔ£¬µäÐ͵ÄÊÇÉèÖÃSSL ÎÕÊÖ½×¶ÎÖ¤ÊéµÄÑéÖ¤·½Ê½ºÍ¼ÓÔØ×Ô¼ºµÄÖ¤Êé¡£
void SSL_CTX_set_verify (SSL_CTX* , int , int* (int, X509_STORE_CTX*) )
ÉèÖÃÖ¤ÊéÑéÖ¤µÄ·½Ê½¡£

¡¡¡¡µÚÒ»¸ö²ÎÊýÊǵ±Ç°µÄCTX Ö¸Õ룬µÚ¶þ¸öÊÇÑéÖ¤·½Ê½£¬Èç¹ûÊÇÒªÑéÖ¤¶Ô·½µÄ»°£¬¾ÍʹÓà SSL_VERIFY_PEER¡£²»ÐèÒªµÄ»°£¬Ê¹ÓÃSSL_VERIFY_NONE.Ò»°ãÇé¿öÏ£¬¿Í»§¶ËÐèÒªÑéÖ¤¶Ô·½£¬¶ø·þÎñÆ÷²»ÐèÒª¡£µÚÈý¸ö²ÎÊýÊÇ´¦ÀíÑéÖ¤µÄ»Øµ÷º¯Êý£¬Èç¹ûûÓÐÌØÊâµÄÐèÒª£¬Ê¹ÓÿÕÖ¸Õë¾Í¿ÉÒÔÁË¡£

¡¡¡¡void SSL_CTX_load_verify_locations(SSL_CTX*, const char* , const char*);

¡¡¡¡¼ÓÔØÖ¤Êé:

¡¡¡¡
µÚÒ»¸ö²ÎÊýͬÉÏ£¬²ÎÊý¶þÊÇÖ¤ÊéÎļþµÄÃû³Æ£¬²ÎÊýÈýÊÇÖ¤ÊéÎļþµÄ·¾¶;

¡¡¡¡int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);

¡¡¡¡¼ÓÔØ±¾µØµÄÖ¤Êé;type Ö¸Ã÷Ö¤ÊéÎļþµÄ½á¹¹ÀàÐÍ;ʧ°Ü·µ»Ø-1

¡¡¡¡int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);

¡¡¡¡¼ÓÔØ×Ô¼ºµÄ˽Կ£»type ²ÎÊýÖ¸Ã÷˽ԿÎļþµÄ½á¹¹ÀàÐÍ£»Ê§°Ü·µ»Ø-1

¡¡¡¡¼ÓÔØÁËÖ¤ÊéºÍÎļþÖ®ºó£¬¾Í¿ÉÒÔÑé֤˽ԿºÍÖ¤ÊéÊÇ·ñÏà·û£º

¡¡¡¡BOOl SSL_CTX_check_private_key (SSL_CTX*);

¡¡¡¡3£®¼ÈÈ»SSL ʹÓÃTCP ЭÒ飬µ±È»ÐèÒª°ÑSSL attach µ½ÒѾ­Á¬½ÓµÄÌ×½Ó×ÖÉÏÁË£º

¡¡¡¡SSL* SSL_new (SSL_CTX*); ÉêÇëÒ»¸öSSL Ì×½Ú×Ö£»
¡¡¡¡int SSL_set_rfd (SSL*); °ó¶¨Ö»¶ÁÌ×½Ó×Ö
¡¡¡¡int SSL_set_wfd (SSL*); °ó¶¨Ö»Ð´Ì×½Ó×Ö
¡¡¡¡int SSL_set_fd ( SSL*); °ó¶¨¶ÁдÌ×½Ó×Ö
¡¡¡¡°ó¶¨³É¹¦·µ»Ø 1£¬ ʧ°Ü·µ»Ø0;

¡¡¡¡4£®½ÓÏÂÀ´¾ÍÊÇSSL ÎÕÊֵ͝×÷ÁË

¡¡¡¡int SSL_connect (SSL*); ʧ°Ü·µ»Ø -1

¡¡¡¡5. ÎÕÊֳɹ¦Ö®ºó£¬¾Í¿ÉÒÔ½øÐÐͨѶÁË£¬Ê¹ÓÃSSL_read ºÍSS_write ¶ÁдSSL Ì×½Ó×Ö´úÌæ´«Í³µÄread ¡¢write:

¡¡¡¡int SSL_read (SSL *ssl, char *buf, int num );
¡¡¡¡int SSL_write (SSL *ssl, char *buf, int num);
¡¡¡¡Èç¹ûÊÇ·þÎñÆ÷£¬ÔòʹÓà SSL_accept ´úÌæ´«Í³µÄ accept µ÷ÓÃ
¡¡¡¡int SSL_accept(SSL *ssl);

¡¡¡¡6. ͨѶ½áÊø£¬ÐèÒªÊÍ·ÅÇ°ÃæÉêÇëµÄSSL×ÊÔ´

¡¡¡¡int SSL_shutdown(SSL *ssl); ¹Ø±ÕSSLÌ×½Ó×Ö;
¡¡¡¡void SSL_free (ssl); ÊÍ·ÅSSLÌ×½Ó×Ö;
¡¡¡¡void SSL_CTX_free (ctx); ÊÍ·ÅSSL»·¾³;

¡¡¡¡OpenSSL ËäÈ»ÒѾ­·¢Õ¹µ½ÁË0.9.96°æ±¾£¬µ«ÊÇËüµÄÎĵµ»¹ºÜÉÙ£¬ÉõÖÁÁ¬×î»ù±¾µÄman º¯ÊýÊֲᶼûÓÐÍê³É¡£ËùÒÔ£¬±¾ÎĽô½ôÊǽ²ÊöÁËʹÓÃOpenSSL ½øÐгÌÐòÉè¼ÆµÄ¿ò¼Ü¡£¸ü¼ÓÏêϸµÄ×ÊÁÏ¿ÉÒԲο¼OpenSSL µÄÎĵµ»òÕß Apache mod_ssl µÄÎĵµ¡£

¡¡¡¡Í¨¹ýÒÔÉϵĽéÉÜ£¬ÎÒÏë¶ÁÕß¶ÔSSLЭÒéÒѾ­ÓÐÁËÒ»¶¨µÄÁ˽⣬×÷ÕßÓлú»á½«»á¼ÌÐø¸ø´ó¼Ò½éÉÜSSLЭÒéµÄÆäËû·½ÃæµÄÄÚÈÝ¡£
ÄãµÄλÖ㺵çÄÔ¹ÊÕÏÍø >> ·þÎñÆ÷ >> ÍøÕ¾·þÎñÆ÷ >> OPENSSL·þÎñ - °²È«ÐÅÏ¢´«Êä