ÔÚÓ¦ÓüÆËã»ú²Ù×÷Êý¾ÝµÄÀú³ÌÖУ¬¼ÙÈçµ£ÐÄÊý¾Ý·¢Éúй©ºÍ°²È«Òþ»¼¿ÉÒÔ¸ù¾ÝÎÒÌṩµÄÕâÒ»¿îOpenSSL32λ/64λ×é×°×îаæÊÖ»úÈí¼þÍê³É¼ÓÃܽâ¾ö£¬´ËÈí¼þ¸ù¾ÝCÊÓƵÓïÒô׫дÖÆ×ö£¬ÊÊÓø÷ÖÖÐÒéÊ飬¿ÉÒÔÐÖú¿Í»§Äܹ»¸üºÃµØÈ·±£Êý¾Ý°²È«ÐÔ£¬·ÀÖ¹ÔâÊܼàÌý£¬ÊÖ»úÈí¼þ¾ß±¸·Ç³£ºÃµÄ¼æÈÝģʽ£¬ÄÜÔËÓÃÔÚ²»Ò»ÑùϵͳÈí¼þ¡£
1.ÄãÄÜѸËÙ¼ÓÃÜÄãÐèÒªµÄÊý¾Ý¡£
2.»¹¿ÉÒÔѸËٱ任ҪӦÓõÄÐÅÏ¢ÄÚÈݼÓÃܵÄÃ÷Âë¡£
3.¿ÉÒÔÇáÇáËÉËÉÐÅÏ¢±£ÃÜÊý¾Ý£¬Ê¹ÄãµÄÊý¾Ý¸ü°²È«ÐÔ¡£
4.»¹¿ÉÒÔÊÊÓÃÊý¾ÝµÄÍêºÃÐÔ¡£
5.°üº¬¼ÓÃܺÍÊý¾ÝµÄÒ»ÖÂÐÔʵ¼Ê²Ù×÷¡£
6.Êý¾ÝÔÚ´«ËÍÁ÷³ÌÖзdz£°²È«ÐÔ¡£
7.²»±ØαÔìÄãµÄÊý¾Ý¡£
8.»¹ÊÊÓÃѸËÙÈÏÖ¤°²È«ÐÔ¡£
Êý¾Ý°²È«ÐÔ
ÐÅÏ¢ÄÚÈݼÓÃܱãÊÇ°ÑÃ÷ÂëµÄ¼üÈëÎĵµÓüÓÃÜÓÅ»¯Ë㷨ת»¯³É¼ÓÃܵÄÎĵµÒÔÍê³ÉÊý¾ÝµÄÐÅÏ¢±£ÃÜ¡£¼ÓÃÜ
µÄÁ÷³Ì±ØÐëʹÓÃÃܳ×À´¼ÓÃÜÊý¾ÝËæºóÔÙÆÆÒ롣ûÁËÃܳף¬¾Í²»Äܽâ³ý¼ÓÃܵÄÊý¾Ý¡£Êý¾Ý¼ÓÃÜÒԺ󣬽öÓÐÃܳ×ÒªÓÃÒ»¸ö°²È«ÐԵķ½Ê½ ´«Êä¡£¼ÓÃܹýµÄÊý¾Ý¿ÉÒÔ¹«²¼µØ´«Êä¡£
Êý¾ÝÍêºÃÐÔ
¼ÓÃÜÒ²¿ÉÒÔÈ·±£Êý¾ÝµÄÒ»ÖÂÐÔ¡£ÀýÈ磺ÐÅÏ¢¶ÌÐÅÑéÖ¤Â루MAC£©£¬¿ÉÒÔУ¼ì¿Í»§´øÀ´µÄ¼ÓÃÜÐÅÏ¢ÄÚÈÝ£¬½ÓÊÜÕß¿ÉÒÔÓÃMACÀ´Ð£¼ì¼ÓÃÜÊý¾Ý£¬È·±£Êý¾ÝÔÚ´«ËÍÁ÷³ÌÖЛ]Óб»Î±Ôì¹ý¡£
Éí·ÝÑéÖ¤
¼ÓÃܵĴËÍâÒ»¸öÖ÷ÒªÓÃ;ÊÇÄÃÀ´×öΪ±¾È˵ıêÖ¾£¬¿Í»§µÄÃܳ׿ÉÒÔ×öΪËûµÄÉí·ÝÑéÖ¤µÄ±êÖ¾¡£SSLÊÇÔËÓù«¿ªÃÜÔ¿µÄ¼ÓÃܼ¼ÊõÐÔ£¨RSA£©À´×öΪ¾Ö¶ËÓë·þÎñ¶ËÔÚ´«ÊäÉÌÒµÃØÃܲÄÁÏʱµÄ¼ÓÃÜͨÐÅÐÔ¼¡£
OpenSSL°üÀ¨Ò»¸öÃüÁîÐй¤¾ßÓÃÓÚ½øÐÐOpenSSL¿âÎļþµÄÈ«²¿×÷Ó㬸üÇ¿µÄÊÇ£¬ËüÓпÉÄÜÒѾ×é×°µ½ÄãµÄϵͳÈí¼þÖÐÁË¡£
OpenSSLÊÇÒ»¸öÇ¿¾¢µÄ°²È«ÐÔtcpÐÒé²ãÃÜÂë¿â£¬ApacheÓ¦ÓÃËü¼ÓÃÜHTTPS£¬OpenSSHʹÓÃËü¼ÓÃÜSSH£¬¿ÉÊÇ£¬ÄãûӦµ±Ö»½«Æäµ±×÷Ò»¸ö¿âÀ´Ó¦Óã¬ËüÒ²ÊÇÒ»¸ö¶à¹¦Äܵġ¢»ìºÏ¿ª·¢µÄµÇ½ÃÜÂëרÓù¤¾ß¡£[1]
¿ªÔ´ÏµÍ³ÌØÐÔ
Eric A. YoungºÍTim J. Hudson×Ô1995ÄêÖð½¥×«Ð´Ö®ºó¾ß±¸¼«´óΣº¦µÄOpenSSL³ÌÐò°ü£¬ÕâÊÇÒ»¸ö›]ÓкܶàÏÞ¶¨µÄ¿ª·ÅʽԴÂëµÄ³ÌÐò°ü¡£Eric A. Young ºÍTim J. HudsonÊÇÃÀ¹úÈË£¬Ö®ºóÒòΪдOpenSSLÊÂÒµÓгÉÒÔºó¾Íµ½´óÆóÒµÀïÕõ´óÇ®À´µ½¡£1998Ä꣬OpenSSLÍŶӽÓÊÖÁËOpenSSLµÄ¿ª·¢Éè¼Æ¹¤×÷ÖУ¬²¢ÍÆÐÐÁËOpenSSLµÄ0.9.1°æ£¬µ½ÏÖÔÚΪֹ£¬OpenSSLµÄÓÅ»¯Ëã·¨ÒѾʮ·Ö½¡È«£¬¶ÔSSL2.0¡¢SSL3.0¼°ÆäTLS1.0¶¼ÊÊÓá£
ÆÕ±é֪ʶÎÊ´ð
1¡¢Ãâ·ÑÏÂÔØopensslרÓù¤¾ßµ½µ±µØ¼ÆËã»ú£¬Ëæºó»º½âѹÁ¦£¬½øÈëbinÎļþĿ¼
ÔÚµ±Ç°Ä¿Â¼£¬°´×Åshift¼üÓÒ¼ü£¬ÌôÑ¡"ÔÚÕâÀ↑ÆôÃüÁî´°¿Ú"
2¡¢´ò¿ªcmdÃüÁî´°¿ÚÒÔºó£¬Äܹ»¿´¼û£¬ÒѾȫ×Ô¶¯×ª»»µ½Ä¿Ç°µÄbinÎļþĿ¼²¿Î»
¼üÈëopensslÖ¸Á½øµ½openssl
3¡¢´ÓÏÖÔÚÆðÉú³ÉCAÖ¤Êé
´´½¨¹«Ô¿£ºgenrsa -out ca-key.pem 1024
´´½¨Ö¤ÊéÒªÇó£ºreq -new -out ca-req.csr -key ca-key.pem -config openssl.cnf
ʵÐÐÒԺ󣬻áÔÚÎļþĿ¼ÏÂÉú³Éca-key.pemºÍca-req.csrÎļþ
4¡¢×ÔÇ©¶¨Ö¤Ê飺
x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 365
ʵÐнáÊøºó»áÉú³Éca-cert.pemÎļþ
5¡¢Éú³ÉserverÖ¤Êé
´´½¨¹«Ô¿:
genrsa -out server-key.pem 1024
´´½¨Ö¤ÊéÒªÇó£º
req -new -out server-req.csr -key server-key.pem -config openssl.cnf
ʵÐнøÐÐÉú³Éserver-key.pemºÍserver-req.csrÎļþ
6¡¢×ÔÇ©¶¨Ö¤Ê飺
x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365
ʵÐнøÐÐÉú³Éserver-cert.pemÎļþ
7¡¢Éú³ÉclientÖ¤Ê飬ÓëÍøÂç·þÎñÆ÷Éú³ÉÖ¤ÊéÀàËÆ
´´½¨¹«Ô¿£º
genrsa -out client-key.pem 1024
´´½¨Ö¤ÊéÒªÇó£º
req -new -out client-req.csr -key client-key.pem -config openssl.cnf
×ÔÇ©¶¨Ö¤Ê飺
x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365
8¡¢µ½´ËCAÖ¤Êé¡¢serverÖ¤Êé¡¢clientÖ¤ÊéËùÓÐÉú³É½øÐУ¬µ¼½øÏàÓ¦µÄÍøÂç·þÎñÆ÷»òÊÖ»ú¿Í»§¶ËÔò¿ÉÒÔ³£¹æÔËÓÃÁË
Èí¼þ²âÆÀ
ÊÖ»úÈí¼þΪ¿Í»§´øÀ´ÁËÊý¾Ý¼ÓÃܺÍÔËά°²È«µÄ×÷Óã¬ÍêÈ«Ãâ·Ñ¿ªÔª£¬¿ÉÒÔÓÃÓÚά»¤Í¨Ñ¶Á÷³ÌÖÐÐγɵÄÊý¾Ý£¬ºÜÊÊÒËÔËÓÃÔÚÒƶ¯»¥ÁªÍøµÄÍøÒ³·þÎñÆ÷ÖУ¬ÊÊÓÃWindowsºÍUnixµçÄÔ²Ù×÷ϵͳ¡£
¶àÌØÈí¼þרÌâΪÄúÌṩ¼ÓÃÜÈí¼þ,µçÄÔ¼ÓÃÜÈí¼þ,ÊÖ»ú¼ÓÃÜÈí¼þ£¬°²×¿Æ»¹û°æÈí¼þappÒ»Ó¦¾ãÈ«¡£
¶àÌØÈí¼þרÌâΪÄúÌṩ¼ÓÃܹ¤¾ß,lua¼ÓÃܹ¤¾ß,apk¼ÓÃܹ¤¾ß°²×¿°æ;°²×¿Æ»¹û°æÈí¼þappÒ»Ó¦¾ãÈ«¡£¶àÌØÈí¼þÕ¾Ö»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢ÎÞľÂíµÄ´¿ÂÌÉ«¹¤¾ßÏÂÔØ
¶àÌØÈí¼þרÌâΪÄúÌṩÊý¾Ý¼ÓÃÜÈí¼þ,ÊÖ»úÊý¾Ý¼ÓÃÜÈí¼þ,ÆóÒµÊý¾Ý¼ÓÃÜÈí¼þ;°²×¿Æ»¹û°æÈí¼þappÒ»Ó¦¾ãÈ«¡£¶àÌØÈí¼þÕ¾Ö»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢ÎÞľÂíµÄ´¿ÂÌÉ«¹¤¾ßÏÂÔØ
¶àÌØÊÖÓÎרÌâΪÄúÌṩ¸÷ÖÖÖ¤Ê鿼ÊÔµÄapp,Ê®´óûÓõÄÖ¤Êé¡£°²×¿Æ»¹û°æÒ»Ó¦¾ãÈ«,ÕÒ¸÷ÖÖÖ¤Ê鿼ÊÔµÄapp¾ÍÀ´¶àÌØÈí¼þÕ¾ÏÂÔØ!
¶àÌØÈí¼þ԰ΪÄúÕûÀíÁ˶à¿îÊʺÏQQÀúÊ·ËùÓа汾°²×°ÏÂÔغϼ¯£¬ÔÚ¶àÌØÄúÄÜÏÂÔضà¿îÕý¹æµÄ¡¢ÎÞ¶¾Èí¼þ,ÔÚÕâÀﰲ׿°æÆ»¹û°æµÈÓ¦ÓÃÓ¦Óо¡ÓÐ,ÕÒÊʺÏQQÀúÊ·ËùÓа汾°²×°ÏÂÔغϼ¯¾ÍÀ´¶àÌØÈí¼þÕ¾°É¡£