LINUX-BG   Адрес : http://www.linux-bg.org
Стъпка по Стъпка: Apache 2 с поддръжка на SSL/TLS, Част II
От: Bondoff
Публикувана на: 20-02-2005
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=369632666
Инсталиране на Apache с поддръжа на SSL/TLS

Първата стъпка, която трабва да предприемем, както казахме в Част I, е да си инсталираме Apache 2 уеб сървър, и да създадем в системата потребител и група с име “apache”.
Преди да изпълним командата ./configure, със съответните опции, ще наблегна на опциите “--enable-ssl” “--enable-setenvif”, което означава, че освен mod_ssl, ще имате възможност и да включвате модулът mod_setenvif. Това е необходимо за да има съвместимост на сървъра с някои версии на MS Internet Explorer.

./configure \ 
 --prefix=/usr/local/apache2 \ 
 --with-mpm=prefork \ 
 --enable-ssl \  
 --disable-charset-lite \ 
 --disable-include \ 
 --disable-env \ 
 --enable-setenvif \ 
 --disable-status \ 
 --disable-autoindex \ 
 --disable-asis \ 
 --disable-cgi \ 
 --disable-negotiation \ 
 --disable-imap \ 
 --disable-actions \ 
 --disable-userdir \ 
 --disable-alias \ 
 --disable-so

След конфигурацията следва стандартна процедура:

make
 su
 umask 022
 make install
 chown -R root:sys /usr/local/apache2
Конфигуриране на SSL/TLS

Преди да стартираме Apache за първи път, естествено ще трябва да го конфигурираме и също така, ще създадем някаква малка уеб страница за провеждане на тестове. Като начало е неободимо да изпълним следното (като root):


  • Създаваме малка уеб страница, която ще бъде достигана през TLS/SSL:

umask 022
 mkdir /www
 echo "Test \  
 Test works." > /www/index.html
 chown -R root:sys /www
  • Променете настройките на конфигурационния файл на Apache 2 (който в нашия случай се намира в /usr/local/apache2/conf/httpd.conf) с посочените:

# =================================================
 # Basic settings
 # =================================================
 User apache
 Group apache
 ServerAdmin webmaster@www.seccure.lab   
 ServerName www.seccure.lab
 UseCanonicalName Off
 ServerSignature Off
 HostnameLookups Off
 ServerTokens Prod
 ServerRoot "/usr/local/apache2"
 DocumentRoot "/www"
 PidFile /usr/local/apache2/logs/httpd.pid
 ScoreBoardFile /usr/local/apache2/logs/httpd.scoreboard
 
     DirectoryIndex index.html
 
 
 # =================================================
 # HTTP and performance settings
 # =================================================
 Timeout 300
 KeepAlive On
 MaxKeepAliveRequests 100
 KeepAliveTimeout 30
 
     MinSpareServers 5
     MaxSpareServers 10
     StartServers 5
     MaxClients 150
     MaxRequestsPerChild 0
 
 
 # =================================================
 # Access control
 # =================================================
 
     Options None
     AllowOverride None
     Order deny,allow
     Deny from all
 
 
     Order allow,deny
     Allow from all
 
 
 # =================================================
 # MIME encoding
 # =================================================
 
     TypesConfig /usr/local/apache2/conf/mime.types
 
 DefaultType text/plain
 
     AddEncoding x-compress              .Z
     AddEncoding x-gzip                  .gz .tgz
     AddType application/x-compress      .Z
     AddType application/x-gzip          .gz .tgz
     AddType application/x-tar           .tgz
     AddType application/x-x509-ca-cert  .crt
     AddType application/x-pkcs7-crl     .crl
 
 
 # =================================================
 # Logs
 # =================================================
 LogLevel warn
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 LogFormat "%h %l %u %t \"%r\" %>s %b" common
 LogFormat "%{Referer}i -> %U" referer
 LogFormat "%{User-agent}i" agent
 ErrorLog /usr/local/apache2/logs/error_log
 CustomLog /usr/local/apache2/logs/access_log combined
 CustomLog logs/ssl_request_log \  
 "%t %h %{HTTPS}x %{SSL_PROTOCOL}x %{SSL_CIPHER}x \  
 %{SSL_CIPHER_USEKEYSIZE}x %{SSL_CLIENT_VERIFY}x \"%r\" %b"
 
 # =================================================
 # SSL/TLS settings
 # =================================================
 Listen 0.0.0.0:443
 
 SSLEngine on
 SSLOptions +StrictRequire
 
 
     SSLRequireSSL
 
 
 SSLProtocol -all +TLSv1 +SSLv3
 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
 
 SSLMutex file:/usr/local/apache2/logs/ssl_mutex
 
 SSLRandomSeed startup file:/dev/urandom 1024
 SSLRandomSeed connect file:/dev/urandom 1024
 
 SSLSessionCache shm:/usr/local/apache2/logs/ssl_cache_shm
 SSLSessionCacheTimeout 600
 
 SSLPassPhraseDialog builtin
 SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
 SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
 
 SSLVerifyClient none
 SSLProxyEngine off
 
 
     AddType application/x-x509-ca-cert      .crt
     AddType application/x-pkcs7-crl         .crl
 
 
 SetEnvIf User-Agent ".*MSIE.*" \  
   nokeepalive ssl-unclean-shutdown \  
   downgrade-1.0 force-response-1.0

Забележка: Естествено ще трябва да промените някои от настройките във файла като например името на уеб сървъра, e-mail на администратора и т.н.

  • Създаваме директория където ще съхраняваме частния ключ на уеб сървъра, сертификатите и списъка с анулираните сертификати (CRLs):

umask 022
 mkdir /usr/local/apache2/conf/ssl.key
 mkdir /usr/local/apache2/conf/ssl.crt
 mkdir /usr/local/apache2/conf/ssl.crl
  • Създаваме self-signed сертификат на сървъра (моля използвайте този сертификат само за тест на сървъра си – оригиналния сертификат трябва даполучите от оригинален СА сървър, например Verisign):

openssl req \ 
 -new \ 
 -x509 \ 
 -days 30 \ 
 -keyout /usr/local/apache2/conf/ssl.key/server.key \ 
 -out /usr/local/apache2/conf/ssl.crt/server.crt \ 
 -subj '/CN=Test-Only Certificate'



За сега ще стпрем до тук. В последната част на статията, ще видите как се тества сървър и ще посочим някои методи за търсене и премахване на грешки




<< Нелегитимен достъп до ресурси (уеб-базирани пощенски услуги) | Promqna firmware-a na Linksys WRT54G s Linux >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 0 wallclock secs ( 0.17 usr + 0.03 sys = 0.20 CPU)