Class
  • Tip&Tech
[¼³Ä¡/¼³Á¤] Apache2 & OpenSSL on Linux - A Quick Install Guide
±Û¾´ÀÌ ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§xµô¸¶ ³¯ Â¥ 06-02-21 21:49 Á¶ ȸ 5961
°£ÆíURL http://www.phpschool.com/link/tipntech/44942 º¹»ç

SyntaxHighlight·Î º¸±â

Link1 http://www.loblolly.net/%7Erddecker/helppages/install-apache2-mod_ssl.¡¦ (371)
¿À´Ã ¼³Ä¡!! ¾Æ·¡ ¼³Ä¡ °¡À̵忡 µû¶ó ¼³Ä¡ µÇ¾ú½À´Ï´Ù.
¿À´Ã ÇÏ·ç Á¾ÀÏ °ü·Ã ¼³Ä¡ ¹®¼­¸¦ ã¾Ò´Âµ¥ ã±â¾î·Æ ´õ±º¿ä. ¾î·Æ°Ô ãÀº ¹®¼­ ÀÔ´Ï´Ù.
ÁÁÀº ÀÚ·á°¡ µÇ¾úÀ¸¸é ÇÕ´Ï´Ù.

Quick Install Guide
A Reminder, not a Tutorial
for Apache 2.0.xx with mod_perl, mod_SSL and OpenSSL..
Assumes use of x86 processors either Slackware or Redhat
This quick guide will remind/show how to setup Apache2 for a domain with a secure SSL web site and a regular web site. The cgi-bin for the SSL web site is seperate from the common cgi-bin.
NOTE: My preference is to run Apache 2.0 in /usr/local/apache2 (this is apache default location)
Slackware uses /var/lib/apache or /var/lib/httpd - use pkgtool to remove any existinig version
Redhat uses /etc/httpd -- sorry, I am a Slackware slack now.
1 - download new Apache source http://www.apache.org/httpd.html , the mod_perl source code from http://perl.apache.org/download/index.html Be sure to get the mod_perl for Apache 2.

2 - mv the apache and mod_perl source file to /usr/src/apache (My preference, but it can be unpacked anywhere)

3 -unpack the new Apache 2.0.XX and mod_perl with:

tar zxvf httpd-2.0.XX.tar.gz -- if the file ends in tar.gz(where XXX is the version) for the Apache 2.0.XX

tar zxvf mod_perl.XXXX.tar.gz -- if the file ends in tar.gz(where XXX is the version) for the mod_perl version.. Note that the lastest version may be mod_perl-2.0-current.tar.gz but when unpacked give mod_perl-1.99_XX or something like it..

4 - cd httpd-2.0.XX directory

5 - Read the README and INSTALL files etc...

6 - Edit the configure file in the main directory to select modules to be compiled in the new Apache. This starts after Optional Features. --enable will enable the feature, --disable will disable it.. Note that there appears to be a bug/glitch in that not all modules are controlled from configure..

7 - Create a file named configthese to enable/disable needed modules:

cat configthese

./configure --prefix=/usr/local/apache2 \
--enable--ssl \
--enabel-info \
--enable-status \
--enable-rewrite

8 - chmod 744 configthese to make it executable.

9 - Now to compile and install it.

./configthese
make

10 - To install it either cp httpd /usr/local/apache2/bin/httpd to replace existing httpd (Slackware and Redhat may have it in sbin instead of bin)
or make install to install all Apache files and subdirectories -- may replace existing httpd.conf--Yikes!!
Often there are changes made in the httpd.conf file in new versions to reflect the server changes/additions.

If you have a previous version of apache that is running, first stop it by

/usr/local/apache2/bin/apachectl stop

11 - edit apachectl in apache2/bin or apache2/sbin. You may need to edit it, but it should work as is.
PIDFILE=where the pid file is
HTTPD=where the httpd file is
STATUSURL="http://localhost/server-status" (should work ok as is)

12 - Now to compile and install mod_perl.

cd /usr/src/apache/mod_perl-1.99_XX .......or whatever the current version is..

Read the INSTALL and README files. The Simple Install should work ok.

perl Makefile.PL MP_AP_PREFIX=/usr/local/apache2
make && make test
make install

The install should copy mod_perl.so into /usr/local/apache2/modules. Check to make sure it is there.

Now to edit the Apache configuration file.

13 -Edit your /usr/local/apache2/conf/httpd.conf file to check the following

ServerRoot "/usr/local/apache2" or wherever
PidFile /usr/local/apache2/logs/httpd.pid should be the same as the above PIDFILE in step 11
ServerAdmin who@domain (maybe correct/useable as installed)
ServerName new.host.name:80 replace with either your IP or domain name..
DocumentRoot "/usr/local/apache2/htdocs"
UserDir public_html (public_html is the default. Just make sure each user has one.)
Remove the # from infront of the example control access to UserDir directories. Should follow the UserDir public_html section.
DirectoryIndex index.html index.htm index.html.var index.shtml default.html default.htm
DirectoryIndex is the starting page name and the search order.(index.html is the default)

for cgi 
uncomment and edit: AddHandler cgi-script .cgi
for serverside includes 
uncomment and edit  AddType text/html .shtml .htm .html
 AddHandler server-parsed .shtml .htm .html 

Also for the serverside includes to work, you will need to have either a Options Includes or Options IncludesNoExec within the <Directory> ...</Directory> sections.

Under the Dynamic Shared Oject (DSO) Support you will need to make sure the following two lines are there, otherwise your mod_perl might not be loaded into Apache.

# now to load the perl module
LoadModule perl_module modules/mod_perl.so

Uncomment the <Location /server-status> section
and edit the Allow from .your_domain.com with one or more IPs or domain names.. let these and only these be able to http://servername-or-IP/server-status. All this info would be usefull to a cracker/hacker to attack your Apache server. You can use either the 192.168.1 or 192.168.1.0/24 notation for IPs.

Uncomment the ExtendedStatus On line -- do be sure you have restricted the Allow from in the <Location /server-status> section.

Uncomment the <Location /server-info> section
and edit the Allow from .your_domain.com with one or more IPs or domain names.. let these and only these be able to http://servername-or-IP/server-info. All this info would be usefull to a cracker/hacker to attack your Apache server. You can use either the 192.168.1 or 192.168.1.0/24 notation for IPs.

Uncomment or add in a NameVirtualHost with the servers IP
Add any <VirtualHost section>

14 - edit the startup files as needed.
Slackware is /etc/rc.d/rc.httpd
Redhat is /etc/rc.d/init.d/httpd.org

15 - start it up either using the startup file or cd to the apache2/bin directory and using

./apachectl start without mod_SSL support
./apachectl startssl with mod_SSL support

The SSL support is not yet complete as we have not yet installed a SSL Certificate.

Note that you may need to vi apachectl to edit the PIDFILE and HTTPD to where they really are.

16 - watch for errors then use a web browser on a pc to try it out... try a virtual host domain and a users directory. http://xx.yy.zz.aa/server-info (where xx.yy.zz.aa is an IP that your Apache Server will respond to) will tell you what modules your Apache has loaded.

http://xx.yy.zz.aa/server-status (where xx.yy.zz.aa is an IP that your Apache Server will respond to) for server status info.

17 run apachectl graceful after any changes to the httpd.conf file

Now for the SSL part...

18 - Download a current copy of OpenSSL from http://www.openssl.org/source/ . You may see openssl and openssl-engine. Download the current version of openssl. It does not matter where it is on your server. But I prefer /usr/src/

19 - unpack openssl with

tar zxvf opensll-0.9.xx.tar.gx where xx is the version.

20 - Change into the new directory cd openssl-0.9.xx and read the INSTALL and README files.

21 - Go with the defaults and just do the following:

./config
make
make test
make install

This should compile it and install it in /usr/local/ssl. Note that the make and make test may take 5 minutes or so to compile and test.

Making a SSL key, CSR and self signed cert for Apache.

22 - Change to the /usr/local/ssl directory

cd /usr/local/ssl
echo $PATH to see if the ssl directory is in your path
PATH=$PATH:/usr/local/ssl
echo $PATH and you should see the ssl directory in your path

23 - Now to generate an SSL Cert. For several years I could not figure this out but with the help of Linux Sever Hacks by Rob Flickenger from O'Reilly (hacks.oreilly.com) I was finally able to hack it. Peace of pie!

Tip! It seems to work best if you use your actual domain name for the file names in Steps 1-3 and to use the actual domain name for the Common Name in Step 2. Internet Explorer will ask for your OK each session time it encounters the certificate if you do not use the actual domain name.

Step 1
openssl genrsa -des3 1024 > www.domainname.com.key to generate a SSL key with password protection. You will be asked to enter in a new password for this. You will need to remember this to generate the Certificate - crt in Step 3 and in starting Apache2 with mod_SSL.

Step 2
openssl req -new -key www.domainname.com.key >www.domainname.com.csr to generate the Certificate Signing Request.

You will be asked for the following:
Country Name ( 2 letter code) = US
State or Province Name = Texas
Locality Name = Houston
0rganization Name = MegaDomane, Inc.
Organizational Unit Name = Our Secure Web Site
CommonName = www.domainname.com
Email Address = admin@dominname.com


The default answers for these can be set in openssl.cnf. Just look for the lines with _default and change them...

Step 3
openssl req -x509 -days 90 -key www.domainname.com.key \
-in www.domainname.com.csr > www.domainname.com.crt

You will be asked for the pass phrase that you entered in Step 1.

do a ls -l www* to see your new Certificates..

24 - Now to copy your new self signed SSLCerficatefile crt and key to the Apache2 directory tree.

cp www.domainname.com.crt /usr/local/apache2/conf/ssl.crt/www.domainname.com.crt
cp www.domainname.com.key /usr/local/apache2/conf/ssl.key/www.domainname.com.key

you may first need to:
mkdir /usr/local/apache2/conf/ssl.crt
mkdir /usr/local/apache2/conf/ssl.key


Back to Apache2 Configuration:

25 - cd /usr/local/apache2/conf to change back to the Apache2 configuration directory.

26 - Now to edit the ssl.conf file. Tigers and lions and bears oh my!

The following should be enabled/uncommented and edited in conf/ssl.conf:


<NameVirtualHost ww.xx.yy.zz:443> #where ww.xx.yy.zz is the IP and 443 is the port for SSL

<VirtualHost ww.xx.yy.zz:443>
ServerName www.domainname.com:443
ServerAlias domainname.com:443
DocomentRoot "/home/joeuser/public_html/webssl"
ScriptAlias /cgi-bin "/home/joeuser/cgi-bin"
ServerAdmin adminjoe@domainname.com
ErrorLog logs/error_log
TransferLog logs/access_log

SSLEngine on

SSLCertificateFile /usr/local/apache2/conf/ssl.crt/www.domainname.com.crt

SSLCertificateFile /usr/local/apache2/conf/ssl.key/www.domainname.com.key

<Directory "/home/joeuser/public_html/webssl"
SSLRequireSSL
</Directory>

<Directory "/home/joeuser/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

</VirtualHost>

27- Now back to the conf/httpd.conf file to edit.

To get a seperate normal web site/non SSL site, you will need to have the following lines in httpd.conf:

NameVirtualHost ww.xx.yy.zz:80 # where ww.xx.yy.zz is the IP and 80 is the port number.

<VirtualHost ww.xx.yy.zz:80>
ServerName www.domainname.com
ServerAlias www.domainname.net www.domainname.info
DocumentRoot /home/joeuser/public_html
</VirutalHost>

to be continued

Last modfied on Tuesday, 17-Jun-2003 13:08:22 CDT
rddecker@lanranger.net

Àüü´ñ±Û¼ö 1

  • ±â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§everSun 06-02-22 11:02

    ¼Ò½ºº¸±â

  • µÎÀ¯½ºÇÇÅ©ÄÚ¸®¾È?
  • °Ô½Ã¹° 659°Ç RSS
¹øÈ£ºÐ·ùÁ¦¸ñ±Û¾´À̳¯Â¥Á¶È¸
479 ¼³Ä¡/¼³Á¤ APACHE(1.3.34) + PHP(5.1.2) + MYSQL(5.0.18) ¼³Ä¡ °¡À̵å [3] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§SyNoVa 06-03-15 8617
478 ¼³Ä¡/¼³Á¤ PHP¸¦ »ç¿ëÇÏ¿© Editplus¸¦ ¸®¸ðÆ® ftp¼­¹ö¿Í ÆÄÀÏ Sync Çϱâ [6] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¾ÆÀÌÁð 06-03-01 5288
477 ¼³Ä¡/¼³Á¤ AIX + Oracle Client + PHP (+ WebtoB) ¼³Ä¡ Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¿±¿ì 06-02-26 7192
476 ¼³Ä¡/¼³Á¤ ¼±¿À°ø´Ô²¨ ¼öÁ¤ÆÇ -> Æäµµ¶ó ÄÚ¾î4 : À¥È£½ºÆÃ ¼­¹ö ±×´ë·Î ¡¦ [11] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§NOT_NULL 06-02-25 9951
475 ¼³Ä¡/¼³Á¤ Apache2 & OpenSSL on Linux - A Quick Install Guide [1] ¸µÅ© Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§xµô¸¶ 06-02-21 5961
474 ¼³Ä¡/¼³Á¤ Æäµµ¶ó ÄÚ¾î4 : À¥È£½ºÆÃ ¼­¹ö ±×´ë·Î µû¶ó ¸¸µé±â [11] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¼Õ¿À°ø 06-02-20 8208
473 ¼³Ä¡/¼³Á¤ Æäµµ¶ó¿¡¼­ Mysql 4.0.x ¹öÀü ¼³Ä¡½Ã linuxthreads ¸¦ ¸øÃ£À»°æ¡¦ [1] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§È£½ºÆ®À¯ 06-02-13 3256
472 ¼³Ä¡/¼³Á¤ À©µµ¿ì2003 ¼­¹ö SP1 ȯ°æ¿¡¼­ IIS¿¡ php ¼³Ä¡ Çϱâ [1] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§ÇϾá¹Ù´Ù 06-02-13 6671
471 ¼³Ä¡/¼³Á¤ ZendOptimizerÀÇ Á¤»ó ¼³Ä¡ ÈÄ À¥¿¡¸¸ ¿Ã¶ó¿ÀÁö ¾ÊÀ» ¶§ ÇØ°áÃ¥ [2] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¹Ù¶÷ÀǾó 06-02-09 3444
470 ¼³Ä¡/¼³Á¤ IE ¼³°èº¯°æ¿¡ µû¸¥ ÆÐÄ¡ÆÄÀÏ (¿µ¹®À©µµ¿ë) [2] ¸µÅ© Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§¤Ñ,.¤Ñ 06-02-07 2848
469 ¼³Ä¡/¼³Á¤ ¾ÆÂ÷ÇÇ Çѱ۹®Á¦ ÇØ°á - ÇÑ±Û ÀÎÄÚµù °ü·Ã ÇØ°á¹æ¹ý °øÀ¯ÇÕ´Ï´Ù. [6] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§ÇÑ»ç¶û~ 06-01-24 6776
468 ¼³Ä¡/¼³Á¤ [¸®´ª½º ¼³Ä¡] Apache-2.2, PHP-5.0.3, mysql-4.0.23, Zend Opti¡¦ [8] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§mass 05-12-23 12926
467 ¼³Ä¡/¼³Á¤ ´ë¿ë·® ¾÷·Îµå... [3] Àα⠱â¼ú·¹º§Ä¿¹Â´ÏƼ·¹º§ÂɾÆ~ 05-12-01 10355
466 ¼³Ä¡/¼³Á¤ Editplus ºü¸¥ °á°úÆäÀÌÁö Àüȯ [10] ¸µÅ© Àαâ LeYA 05-10-25 4789
465 ¼³Ä¡/¼³Á¤ Fedora 4¿Í UTF8 µû¶óÀâ±â [21] ÀÎ±â ÆÇµµ¶ó 05-10-19 17183
464 ¼³Ä¡/¼³Á¤ utf8 ¼³Á¤ - À¥, DBÄÜ¼Ö ¸ðµÎ °¡´ÉÇϳ׿ä ^^ [6] Àαâ pardner 05-10-12 5575
463 ¼³Ä¡/¼³Á¤ PHPBB¸¦ UTF-8·Î ¼³Ä¡Çϱâ [8] Àαâ sam 05-10-05 5168
462 ¼³Ä¡/¼³Á¤ PHP 5.1 Release Candidate 1 Available ÀÇ date¹®Á¦·Î »ç¿ë¸øÇÏ¡¦ [8] ¸µÅ© Àαâ Äڵ巯ºê 05-09-11 7413
461 ¼³Ä¡/¼³Á¤ mysql 4.1.x ¿¡¼­ php¿¬µ¿¹®Á¦ [4] Àαâ ^^ 05-09-10 4927
460 ¼³Ä¡/¼³Á¤ ¿À¶óŬ Instant Client¿Í php ¼³Ä¡ [5] Àαâ kinami 05-09-04 8605
 
12345678910