ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÓÃSSL¹¹½¨Ò»¸ö°²È«µÄApache

·¢²¼Ê±¼ä:2006-10-11 01:02:05À´Ô´:ºìÁª×÷Õß:lgms2008
¡¡¡¡Ò»¡¢¼ò½é

¡¡¡¡ÕâƪÎÄÕÂҪ˵Ã÷µÄÊÇÈçºÎ½«°¢ÅÁÆæÓëSSL(Secure Socket Layer)½áºÏÆðÀ´°²×°ÅäÖá£ÖÚËùÖÜÖª£¬ÔÚÍøÂçÉÏÒÔÃ÷ÎÄ´«µÝÃô¸ÐÐÅÏ¢ÊÇÏ൱²»°²È«µÄ£¬Òò´ËSSLÌṩÁËÒ»ÖÖ¼ÓÃÜÊֶΣ¬ÔڵײãÉÏΪÉϲãЭÒéÌṩ·þÎñºÍ¼ÓÃÜ·½°¸£¬Òò´Ëµ±Óû§ÔÚÒÔHTTPЭÒé´«ÊäÊý¾Ýʱ£¬¿ú̽Õß½«ÄÑÒÔ»ñÈ¡Êý¾ÝµÄÐÅÏ¢¡£µ±È»¼ÓÃÜÖ»ÊÇÔÚ´«Êä¹ý³ÌÖеģ¬¶ÔÓû§ÊÇÍêȫ͸Ã÷µÄ¡£
¡¡¡¡
¡¡¡¡ÄÇô¾Í¿ªÊ¼°É¡­¡­
¡¡¡¡
¡¡¡¡¶þ¡¢×¼±¸¹¤×÷
¡¡¡¡
¡¡¡¡Èç¹ûÄãµÄϵͳÊÇ´ÓÍ·×°ÆðµÄ»°£¬½¨ÒéÄãÁô³öÒ»¸ö½Ð/chrootµÄ·ÖÇøÓÃÀ´ÔËÐÐApache¡£ÖÁÓÚÕâ¸ö·ÖÇøµÄ´óС£¬È¡¾öÓÚÄã×ÔÒÑ£¬Ò»°ãÀ´Ëµ£¬Ò»¸öÆÕͨµÄÍøÕ¾ÓÐ40MÒ²¾Í¹»ÁË¡£µ«ÄãµÄϵͳÈç¹ûÔç¾ÍÔËÐÐÁËApache£¬Äã¿ÉÒÔÁíÍ⿪±ÙÒ»¸ö·ÖÇø£¬»òÕßÑ¡Ôñ²»ÓöÀÁ¢·ÖÇøÀ´°²×°£¬½ö½öÔÚ¸ùÏÂÃ濪һ¸öĿ¼¡£
¡¡¡¡
¡¡¡¡ÁíÍâÎÒ¼Ù¶¨ÄãµÄϵͳÒѾ­Í¨¹ýÁËÒ»¶¨µÄ°²È«¼ì²â----ÔÚ°²×°Apache֮ǰ(Èç¹ûÓÐÆäËü©¶´´æÔڵĻ°£¬ÄãÈÏΪÔËÐÐÔÚÆäÉϵÄApache»áÔõÑù£¬Ëùν¸²³²Ö®Ï£¬ÑÉÓÐÍêÂÑ,¼ì²âÖÁÉÙÒª°üÀ¨(µ«²»½öÏÞÓÚ)----ÒƳý²»°²È«µÄSUID³ÌÐò¡¢Éý¼¶Ä³Ð©ÊØ»¤½ø³Ì£¬È¥µô²»±ØÒªµÄ·þÎñ¡£»¹¼Ù¶¨ÄãÊǵÄWEB SERVERÊÇÔËÐÐTCP/IP¶øÇÒÓÐ×Ô¼ºµÄµØÖ·¡£
¡¡¡¡
¡¡¡¡Èý¡¢Æ½Ì¨
¡¡¡¡
¡¡¡¡ÒÔϲâÊÔ¶¼ÔÚÏÂÁÐƽ̨ÏÂͨ¹ý:
¡¡¡¡
¡¡¡¡1¡¢Slackware 4.x distribution using gcc 2.7.2.3 and Perl v5.005_02
¡¡¡¡
¡¡¡¡2¡¢Solaris 7 on Sparc using gcc v2.8.1 and Perl v5.005_03
¡¡¡¡
¡¡¡¡ËÄ¡¢»ñÈ¡ËùÐèÒªµÄÈí¼þ
¡¡¡¡
¡¡¡¡ÒòΪ°¢ÅÁÆ沢ûÓÐÔÚËýµÄ°üÀï×Ô¼ºSSL£¬Òò´ËÎÒÃDZØÐëÏÈÏÂÔص½ÕâЩ¼ÓÃÜÍøÒ³Ëù±ØÐèµÄ²¿·Ý:
¡¡¡¡
¡¡¡¡1¡¢Apache Web Server - http://www.apache.org/dist/
¡¡¡¡
¡¡¡¡²»±Ø¶à˵£¬ÎÒÃǵ±È»ÐèÒª»ñµÃÕâ¸öweb server£¬ÏÖÔڵİ汾ÊÇ1.3.11£¬°¢ÅÁÆæÊÇÏÖÔÚÊÀ½çÉÏʹÓÃ×î¹ã·ºµÄweb server¡£
¡¡¡¡
¡¡¡¡2¡¢mod_ssl - http://www.modssl.org
¡¡¡¡
¡¡¡¡ÕâÊÇÒ»¸öΪApache1.3.x web serverÌṩǿÁ¦¼ÓÃܵĵÄÈí¼þÄ£¿é£¬ËüʹÓõÄÊÇSSL v2ºÍv3ÒÔ¼°TLS(Transport Layer Security)v1 ЭÒé¡£¸ÃÈí¼þ°üÊÇÔÚBSDµÄlicenseÏ¿ª·¢µÄ£¬ÔÚ·ÇÉÌÒµµÄÇé¿öÏ£¬Äã¿ÉÒÔ×ÔÓɵØʹÓÃËü£¬ÒªÅжϸÃʹÓÃÄÄÒ»¸ö°æ±¾µÄmod_sslºÜ¼òµ¥£¬ËüµÄ°æ±¾ºÅÊÇ-¸ñʽµÄ£¬Ò²¾ÍÊÇ˵£¬ÄãÈç¹ûÓõÄÊÇ1.3.11µÄApache,ÄÇô¾Í¸ÃÓÃ2.50-1.3.11µÄmod_ssl¡£
¡¡¡¡
¡¡¡¡3¡¢mod_perl - http://perl.apache.org/dist/
¡¡¡¡
¡¡¡¡4¡¢Open SSL - http://www.openssl.org
¡¡¡¡
¡¡¡¡ÕâÒ»Èí¼þ°üÌṩÁËSSL v2/v3(Secure Sockets Layer)¼°TLS v1(Transport Layer Security)ЭÒéµÄ¼ÓÃܱ£»¤¡£
¡¡¡¡
¡¡¡¡5¡¢RSAref - ÓÃËÑË÷ÒýÇæ²éÕÒÒ»ÏÂ"rsaref20.tar.Z"Ó¦¸Ã¾ÍÄÜÕÒµ½ÁË
¡¡¡¡
¡¡¡¡ÎÒÃǽ«°ÑÕâЩ³ÌÐò°²×°ÓÚ/usr/localĿ¼ÏÂÔö¼Ó¹¦ÄÜÄ£¿é¿ÉÒÔ¸ø°¢ÅÁÆæ¸üÇ¿´óµÄ¹¦ÄÜ£¬Èç¹ûÄãÐèÒª¸ü¶àµÄÄ£¿éµÄ»°£¬×Ô¼ºÈ¥»ñµÃËü²¢ÇÒ¼ÓÔØ£¬±ÈÈçmod_phpÕâһģ¿éÒ²ÊÇÏÖÔÚÁ÷Ðеģ¬¿ÉÒÔʹ°¢ÅÁÆæÌṩphp½Å±¾Ö§³Ö¡­¡­
¡¡¡¡
¡¡¡¡Îå¡¢Èí¼þ°üµÄ°²×°
¡¡¡¡
¡¡¡¡ÔÚʵ¼Ê°²×°Ç°ÎÒÃÇÒª¾ö¶¨ÎÒÃǽ«°Ñweb server°²×°ÔÚʲô»·¾³Ï£¬¶ÔÓÚÒ»¸ö¶Ô°²È«ÓÐÏ൱¸ßÒªÇóµÄÈËÀ´Ëµ£¬¿ÉÒÔ½«·þÎñÆ÷ºÍÈí¼þ°²×°ÓÚchroot»·¾³£¬chroot¸Ä±äroot Ŀ¼²¢ÇÒ½öÔÚÕâһĿ¼ÖÐÖ´ÐгÌÐò£¬ÕâÌṩÁËÒ»¸öÄÚ½¨µÄС»·¾³£¬¼´Ê¹ÈëÇÖÕßÒѾ­Í¨¹ýcgi³ÌÐò»òÕßÆäËü°ì·¨Í¨¹ý80¶Ë¿Ú»ñµÃÁËϵͳµÄ½øÈëȨÏÞ£¬ËüÒ²Ö»Äܹ»ÔÚÕâÒ»ÊÜÏ޵Ļ·¾³Öл£¬´Ó°²È«½Ç¶È¿¼Á¿£¬Õ⵱ȻÊÇ×îºÃµÄ£¬µ«¶Ôϵͳ¹ÜÀíÔ±À´Ëµ£¬ÕâÑù°²×°Ïà¶ÔÂ鷳һЩ£¬»¹±ØÐë°ÑһЩ±ØÒªµÄ¿â£¬perlÒÔ¼°Ïà¹Ø¹¤¾ßÒ²°áµ½chrootÖУ¬ËùÒÔ----Äã×Ô¼º¾ö¶¨°É£¬ÕâÀïÎÒÃǽéÉܵÄÊÇÔÚchrootÏ°²×°¡£
¡¡¡¡
¡¡¡¡Õ¹¿ªÕâЩÈí¼þ°ü:
¡¡¡¡
¡¡¡¡#gzip -d -c apache_1.3.11.tar.gz | tar xvf -
¡¡¡¡
¡¡¡¡#gzip -d -c mod_ssl-2.5.0-1.3.11.tar.gz | tar xvf -
¡¡¡¡
¡¡¡¡#gzip -d -c openssl-0.9.4.tar.gz | tar xvf -
¡¡¡¡
¡¡¡¡#gzip -d -c mod_perl-1.21.tar.gz | tar xvf -
¡¡¡¡
¡¡¡¡Õ¹¿ª²¢ÇÒ±àÒërsaref
¡¡¡¡
¡¡¡¡#mkdir rsaref
¡¡¡¡
¡¡¡¡#cd rsaref
¡¡¡¡
¡¡¡¡#gzip -d -c ../rsaref20.tar.Z | tar xvf -
¡¡¡¡
¡¡¡¡#tar xvf rsaref.tar
¡¡¡¡
¡¡¡¡#cp -rp install/unix temp
¡¡¡¡
¡¡¡¡#cd temp
¡¡¡¡
¡¡¡¡#make
¡¡¡¡
¡¡¡¡#mv rsaref.a librsaref.a
¡¡¡¡
¡¡¡¡#cd ../../
¡¡¡¡
¡¡¡¡±àÒëOpenSSL
¡¡¡¡
¡¡¡¡#cd openssl-0.9.4
¡¡¡¡
¡¡¡¡#perl util/perlpath.pl /usr/bin/perl (Path to Perl)
¡¡¡¡
¡¡¡¡#./config -L`pwd`/../rsaref/temp/
¡¡¡¡
¡¡¡¡#make
¡¡¡¡
¡¡¡¡#make test
¡¡¡¡
¡¡¡¡#cd ..
¡¡¡¡
¡¡¡¡½«mod_perl¼Óµ½ApacheµÄ±àÒëÑ¡ÏîÀï
¡¡¡¡
¡¡¡¡#cd mod_perl-1.21
¡¡¡¡
¡¡¡¡#perl Makefile.PL APACHE_PREFIX=/usr/local/apache
¡¡¡¡APACHE_SRC=../apache_1.3.11/src
¡¡¡¡USE_APACI=1
¡¡¡¡
¡¡¡¡Äã»áµÃµ½ÏÂÃæµÄÌáʾ:
¡¡¡¡
¡¡¡¡Configure mod_perl with ../apache_1.3.11/src ? [y]
¡¡¡¡
¡¡¡¡Ö±½Ó°´enter¾ÍÊÇĬÈϵÄyes
¡¡¡¡
¡¡¡¡È»ºóMakefile»áÎÊÄãÊÇ·ñ½¨Á¢httpd£¬¿ÉÒÔÓÃnÑ¡Ôñ²»¡£
¡¡¡¡
¡¡¡¡#make
¡¡¡¡
¡¡¡¡#make install
¡¡¡¡
¡¡¡¡#cd ..
¡¡¡¡
¡¡¡¡½«mod_ssl¼Óµ½ApacheÖÐ
¡¡¡¡
¡¡¡¡#cd mod_ssl-2.5.0-1.3.11
¡¡¡¡
¡¡¡¡#./configure --with-apache=../apache_1.3.11
¡¡¡¡--prefix=/usr/local/apache
¡¡¡¡--with-ssl=../openssl-0.9.4
¡¡¡¡--with-rsa=../rsaref/temp
¡¡¡¡--activate-module=src/modules/perl/libperl.a
¡¡¡¡
¡¡¡¡#cd ..
¡¡¡¡
¡¡¡¡±àÒëApache:
¡¡¡¡
¡¡¡¡#cd apache_1.3.11
¡¡¡¡
¡¡¡¡ÔÚ±àÒëÒÔÇ°ÎÒÃÇ¿ÉÒÔÔÙ×öÒ»¼þÊÂ----±à¼­°üº¬http server°æ±¾ºÅµÄÎļþ£¬Ê¹ÏëµÃµ½ËüµÄÈëÇÖÕßÃþ²»×ÅÄÔ´ü³¤ÄĶù
¡¡¡¡
¡¡¡¡# src/include/httpd.h
¡¡¡¡
¡¡¡¡Ñ°ÕÒÏÂÃæµÄÐÐ (approx. 454)²¢ÇҸıäserverµÄÃû×Ö¼°°æ±¾ºÅ----¿ÉÒÔËæ±ãÓÃÄãÏë¸Ä³ÉµÄ¶«Î÷¡£
¡¡¡¡
¡¡¡¡define SERVER_BASEVERSION "Apache/1.3.11"
¡¡¡¡
¡¡¡¡ÏÖÔÚÄã¿ÉÒÔ±àÒë°¢ÅÁÆæÁË
¡¡¡¡
¡¡¡¡#make
¡¡¡¡
¡¡¡¡ÏÖÔÚÄã¿ÉÒÔÉú³ÉÒ»¸öCAÁË(actual certificate).
¡¡¡¡
¡¡¡¡#make certificate
¡¡¡¡
¡¡¡¡°´ÕÕ¸ÃÊÚȨÊéµÄ°²×°½éÉÜ×ö¡£
¡¡¡¡
¡¡¡¡#make install
¡¡¡¡
¡¡¡¡Õ⽫»á°Ñ°¢ÅÁÆæ×°ÔÚ/usr/local/apache¡£
¡¡¡¡
¡¡¡¡²âÊÔweb server (»¹Ã»×°SSL)ÊÇ·ñÔËÐÐÕý³£ ----µ÷ÓÃweb server:
¡¡¡¡
¡¡¡¡/usr/local/apache/bin/apachectl start
¡¡¡¡
¡¡¡¡µ±WEB·þÎñÆ÷ÔËÐÐÆðÀ´ºó£¬Äã¿ÉÒÔÓà lynx»òÕßÈÎÒâʲôä¯ÀÀÆ÷Á¬½ÓÄãµÄ80¶Ë¿Ú£¬Èç¹ûÄÜ¿´µ½apacheµÄ»¶Ó­Ò³£¬¾ÍOKÁË¡£
¡¡¡¡
¡¡¡¡Í£Ö¹server:
¡¡¡¡
¡¡¡¡/usr/local/apache/bin/apachectl stop
¡¡¡¡
¡¡¡¡²âÊÔweb server (ͬʱÆðSSL) - µ÷ÓôøSSLµÄWEB·þÎñÆ÷
¡¡¡¡
¡¡¡¡/usr/local/apache/bin/apachectl startssl
¡¡¡¡
¡¡¡¡·þÎñÆ÷ÔËÐÐʱÄãÓÃNetscape»òÕßÆäËüÖ§³ÖSSLµÄä¯ÀÀÆ÷À´¿´http://your.ip.here£¬¿´µ½»¶Ó­Ò³ÁËô?
¡¡¡¡
¡¡¡¡ÒªÍ£Ö¹SERVER:
¡¡¡¡
¡¡¡¡/usr/local/apache/bin/apachectl stop
¡¡¡¡
¡¡¡¡Áù¡¢°¢ÅÁÆæµÄÅäÖÃ
¡¡¡¡
¡¡¡¡ÏÖÔÚÎÒÃÇ¿ÉÒÔÀ´¿´¿´°¢ÅÁÆæµÄÅäÖÃÎļþÁË----ÐèÒª¼ÇסµÄÊÇÈç¹ûÄã¶ÔËü×öÁ˸ü¸Ä£¬ÔÚδÖØÐÂÆô¶¯httpdÊØ»¤½ø³ÌÇ°£¬ËüÊDz»»á·¢Éú×÷Óõġ£ºÃ£¬ÏÖÔÚÎÒÃÇ¿ÉÒÔ½øĿ¼/usr/local/apache/conf¿´¿´ÁË¡£
¡¡¡¡
¡¡¡¡httpd.conf -
¡¡¡¡
¡¡¡¡ÕâÊÇ°¢ÅÁÆæµÄÖ÷ÒªÅäÖÃÎļþ£¬Äã¿ÉÒÔÔÚÕâÀïÉ趨·þÎñÆ÷Æô¶¯Ê±µÄ»ù±¾»·¾³£¬±ÈÈç·þÎñÆ÷µÄÆô¶¯·½Ê½¡¢¶Ë¿ÚºÅ¡¢ÔÊÐíµÄ×î¶àÁ¬½ÓÊýµÈµÈ£¬ÕâÒ»ÎļþµÄ×¢Êͷdz£Ïêϸ£¬Òª¿´Ã÷°×Ó¦¸ÃûʲôÎÊÌâ¡£
¡¡¡¡
¡¡¡¡access.conf -
¡¡¡¡
¡¡¡¡ÕâÒ»ÎļþÊÇÉ趨ϵͳÖеĴæÈ¡·½Ê½ºÍ»·¾³µÄ£¬µ«ÏÖÔÚÒѾ­¿ÉÒÔÔÚhttpd.confÖÐÉ趨ÁË£¬ËùÒÔÍƼöÄã±ð¶¯Ëü£¬·Å¿ÕºÃÁË¡£
¡¡¡¡
¡¡¡¡srm.conf -
¡¡¡¡
¡¡¡¡Õâ¼Ò»ïÖ÷Òª×öµÄÊÇ×ÊÔ´ÉϵÄÉ趨£¬ÄãÒ²¿ÉÒÔ·Å¿Õ£¬½ö½öÉ趨httpd.confÖеÄÏà¹ØÏî¡£
¡¡¡¡
¡¡¡¡ÏÖÔÚÖØÆôweb serverÀ´Ê¹¸Ä¶¯ÉúЧ:
¡¡¡¡
¡¡¡¡#/usr/local/apache/bin/apachectl restart
¡¡¡¡
¡¡¡¡Æß¡¢½«°¢ÅÁÆæÉ趨ÔÚchroot»·¾³ÏÂ
¡¡¡¡
¡¡¡¡ÏÖÔÚÎÒÃÇ¿ªÊ¼°Ñ¸Õ²Å½¨Á¢µÄ¶«Î÷ÒƵ½chroot»·¾³ÏÂ----°üÀ¨°¢ÅÁÆæ·þÎñÆ÷ÒÔ¼°ËùÓÐÐèÒªµÄ¿âÎļþ¡£µ±È»ÈçÇ°ÃæËù˵µÄ£¬Õⲿ·ÝÊÇ¿ÉÑ¡µÄ£¬Èç¹ûÄãÅÂÂé·³µÄ»°¾ÍËãÁË£¬µ«×ªÒƺó¿ÉÒÔ¶ÔÄãµÄweb server¶àÒ»¸ö¿É¿¿µÄ±£»¤¡£
¡¡¡¡
¡¡¡¡½¨Á¢/chrootĿ¼
¡¡¡¡
¡¡¡¡#mkdir /chroot
¡¡¡¡
¡¡¡¡½¨Á¢Ò»Ð©±ØÐèµÄ×ÓĿ¼
¡¡¡¡
¡¡¡¡#mkdir /chroot/dev
¡¡¡¡
¡¡¡¡#mkdir /chroot/lib
¡¡¡¡
¡¡¡¡#mkdir /chroot/etc
¡¡¡¡
¡¡¡¡#mkdir /chroot/bin
¡¡¡¡
¡¡¡¡#mkdir /chroot/usr
¡¡¡¡
¡¡¡¡#mkdir /chroot/usr/local
¡¡¡¡
¡¡¡¡ÔÚÎÒÃǵÄchroot½¨Á¢/dev/null
¡¡¡¡
¡¡¡¡#mknod -m 666 /chroot/dev/null c 1 3
¡¡¡¡
¡¡¡¡½«°¢ÅÁÆ濽±´µ½/chrootĿ¼ÖÐ
¡¡¡¡
¡¡¡¡#cp -rp /usr/local/apache/ /chroot/usr/local
¡¡¡¡
¡¡¡¡¿½±´±ØÐèµÄ¶þ½øÖÆÎļþ
¡¡¡¡
¡¡¡¡#cp /bin/sh /chroot/bin
¡¡¡¡
¡¡¡¡È·¶¨ÄÄЩ¿âÊDZØÐèµÄ----ÕâÈ¡¾öÓÚÄã±àÒëʱÄÚ½¨ÁËÄÄЩģ¿é
¡¡¡¡
¡¡¡¡#ldd /usr/local/apache/bin/httpd
¡¡¡¡
¡¡¡¡½«ÐèÒªµÄ¿â¿½±´µ½chrootĿ¼
¡¡¡¡
¡¡¡¡#cp /lib/libm.* /chroot/lib/
¡¡¡¡
¡¡¡¡#cp /lib/libgdbm.* /chroot/lib
¡¡¡¡
¡¡¡¡#cp /lib/libdb.* /chroot/lib
¡¡¡¡
¡¡¡¡#cp /lib/libdl.* /chroot/lib
¡¡¡¡
¡¡¡¡#cp /lib/libc.* /chroot/lib
¡¡¡¡
¡¡¡¡¿½±´ÍøÂçÁ¬½ÓËùÐèÒªµÄº¯Êý¿â
¡¡¡¡
¡¡¡¡#cp /lib/libnss* /chroot
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ