Apache

De WikiMar
Dreceres ràpides: navegació, cerca

Configuració del Apache amb Virtual Hosts

Virtual Hosts permet tenir en un mateix servidor varies webs indepentents. Es basa en que el HTTP 1.1 envia en cada solicitud la URL.


Cal tenir un fitxer per defecte on hi ha especificat un certificat per defecte.

Per cada Virtual Host cal tenir un fitxer amb la següent configuració. Aquest és un exemple on també es configura el port 444 per un certificat en concret


Listen 444
NameVirtualHost *:444

############################
############################
<IfDefine SSL>
#<IfDefine SSL_DEFAULT_VHOST>
<IfModule ssl_module>


<VirtualHost *:444>
#        ServerName localhost   <--Si no es posa cap ServerName, un cop enviat
#        els certificats buscara la config del seguent <VirtualHost *:80 *:443
#        *:444>

        DocumentRoot "/var/www/localhost/htdocs"
        <Location "/">
                Order allow,deny
                Allow from all
        </Location>

        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

        SSLCertificateFile /etc/apache2/ssl/servidor.com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/servidor.com.key
        SSLCertificateChainFile /etc/apache2/ssl/servidor.com.positivessl.ca.crt


        <IfModule setenvif_module>
                BrowserMatch ".*MSIE.*" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        </IfModule>

        ## OptRenegotiate:
        # This enables optimized SSL connection renegotiation handling when
        # SSL
        # directives are used in per-directory context.
        #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>

        #Variables d'estat SSL:
        <Location "/cgi-bin">
                SSLOptions +StdEnvVars
        </Location>


</VirtualHost>



</IfModule>
#</IfDefine>
</IfDefine>
############################
############################
<VirtualHost *:80 *:443 *:444>
  ServerName de.espai.de
  ServerAlias www.de.espai.de segondomini.espai.de
  DocumentRoot /var/www/de.espai.de/htdocs/

  ErrorLog /var/www/de.espai.de/log/error_log.txt
  #LogLevel warn

  <Directory "/var/www/de.espai.de/htdocs/">
        Allow from all
        #Permet que l' usuari utilitzi fitxers .htaccess -Mes info: http://httpd.apache.org/docs/2.0/mod/core.html            #allowoverride :
        AllowOverride All
  </Directory>

  ##############
  #cgi-bin:

  Alias /cgi-bin/ "/var/www/de.espai.de/cgi-bin/"
  <Directory "/var/www/de.espai.de/cgi-bin/">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr
        ForceLanguagePriority Prefer Fallback
  </Directory>

  ##############
  #Log:

  <IfModule log_config_module>
    CustomLog /var/www/de.espai.de/log/access_log.txt combineddeflatemarti

          #per estadistiques del /cgi-bin/awstats.pl
          #combineddeflatemarti esta definit dins de /etc/apache2/modules.d/00_mod_log_config.conf i equival a:
          # "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" (%{ratio}n) %{SSL_PROTOCOL}x %{SSL_CIPHE            R}x"
          #awstats LogFormat="%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
          #apache combined == "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
  </IfModule>


  ##############
  #WebDAV:

  <Directory /var/www/de.espai.de/htdocs/dav>
        Dav On
        Options None
        #Options Indexes FollowSymLinks
        AllowOverride None
                #Si la carpeta arrel usa RewriteEngine (per exemple per una Wiki) cal desactivar-lo:
        RewriteEngine Off

        Order allow,deny
        Allow from all
        #DavMinTimeout 600

        BrowserMatch "Dreamweaver-WebDAV*" redirect-carefully
        BrowserMatch "^WebDrive" redirect-carefully
        BrowserMatch "^WebDAVFS" redirect-carefully
        BrowserMatch "Microsoft-WebDAV-MiniRedir/5.1.2600" redirect-carefully
        BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully

        AuthType Basic
        AuthName "Restricted Repository"
        AuthUserFile /var/www/de.espai.de/.davpasswd

        <Limit GET HEAD OPTIONS PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
                Require valid-user
                #Require user m
        </Limit>
        <Limit GET HEAD OPTIONS PROPFIND>
                Require user guest
        </Limit>
  </Directory>


  ##############
  # SVN - Subversion Repository:

<Location /svn>
        RewriteEngine Off
        BrowserMatch "SVN" redirect-carefully

        DAV svn
#   SVNPath /var/svn/repos   <-- per un sol repositori
        SVNParentPath /var/www/de.espai.de/svn
        SVNAutoVersioning On
        SVNListParentPath On
        AuthType Basic
        AuthName "Subversion repository"
        AuthUserFile /var/www/de.espai.de/.davpasswd

    #<LimitExcept GET PROPFIND OPTIONS REPORT>    <-- per restringir nomes l'escriptura (sense usar SVNIndexXSLT)
    Require valid-user
    #</LimitExcept>

        Satisfy Any
        SVNPathAuthz on
        AuthzSVNAccessFile  /var/www/de.espai.de/.svn_access_control.txt

        # Format del .svn_access_control.txt
        #  [/]
        #  marti=rw
        #  [project1:/]
        #  *=r
        #  marti=rw

</Location>



  ##############
  # Server Side Includes (.shtml):

  <Location />
    Options +ExecCGI +Includes
  </Location>


  ##############
  #Awstats:

  <Location "/awstats/index*">
    AuthType Basic
    #AuthName "AWStats authenticated zone"
    AuthName "Zona de Estadistiques restringida"
    AuthUserFile /var/www/de.espai.de/.awstatspasswd
    Require valid-user
  </Location>


  ##############
  #PERSONALITZACIO DE ERRORS:

  Alias /error/ "/var/www/de.espai.de/error/"

  <Directory "/var/www/de.espai.de/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr
        ForceLanguagePriority Prefer Fallback
  </Directory>

  ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
  ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
  ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
  ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
  ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
  ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
  ErrorDocument 410 /error/HTTP_GONE.html.var
  ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
  ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
  ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
  ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
  ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
  ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
  ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
  ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
  ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
  ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var


  ##############

  #   Alias /doc/ "/usr/share/doc/"
  #   <Directory "/usr/share/doc/">
  #       Options Indexes MultiViews FollowSymLinks
  #       AllowOverride None
  #       Order deny,allow
  #       Deny from all
  #       Allow from 127.0.0.0/255.0.0.0 ::1/128
  #    </Directory>

</VirtualHost>
########################################################
########################################################




Afegir un certificat

En un servidor, per cada IP i per cada port (normalment el 443) només hi pot haver un Certificat, i així una sola web segura, encara que s'utilitzin els Virtual Hosts de l'Apache ja que el certificat s'envia abans de que el client indiqui quina web vol (HTTP 1.1)

Si s'usen altres ports no estandads caldrà que l'usuari obri la web https://servidor.com:444 pel port 444 ja que https://servidor.com obriria el 443


1. Crear un una solicitud de certificat (.csr)

A la carpeta:

/etc/apache2/ssl

To generate a pair of private key and public Certificate Signing Request (CSR) for a webserver, "server", use the following command :

openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr

Més info: https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=3&nav=0,1,33


2. Guardar el certificat (.cst)

Enviar el contingut de .csr i un cop validat ens retornaran un certificat .crt


3. Descarregar el Intermediate Certificate (ca.crt)

Cal descarregar el certificat de l'empresa que ens ha validad el nostre certificat.

Més info: https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=881&nav=0,1,84

4. Configurar el Apache

Mireu la primara part de l'apartat més amunt on hi ha la configuració del Apache