Appunti sparsi su Apache e Apache2

Configurazione minimale di apache2 su Debian Lenny e Squeeze

Configurazione minimale di Apache 2 per servire http e https con php5:

Redirect da un sito a un altro

Per, per esempio, forzare un redirect da un sito http all'equivalente https, posso usare il comando "redirect" dentro alla configurazione. Posso usarlo anche per fare altri redirect non necessariamente fra http e https. Notare che devo indicare l' url di partenza (/) e quello di arrivo. Per evitare problemi con il rinnovo dei certificati di Let's Encrypt e` opportuno usare un redirect che NON ridiriga le richieste dei files sotto /.well-known/acme-challenge/.

Esempio:

<VirtualHost *:80>
        ServerName www.pippo.it
        ServerAdmin email@pippo.it
        RedirectMatch 301 ^(?!/\.well-known/acme-challenge/).* https://www.pippo.it$0
        DocumentRoot /var/www/dovevuoitu 
</VirtualHost>

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/pippo.crt
        SSLCertificateKeyFile /etc/apache2/ssl/pippo.key
        SSLProtocol All -SSLv2 -SSLv3

        Eccetera eccetera

</VirtualHost>

Gestione del charset

Se le pagine del sito contengono caratteri non-standard che non sono codificati correttamente in HTML (tipo le lettere accentate), e queste nel browser vengono male, occorre definire il charset standard. Per farlo, editare /etc/apache2/conf.d/charset e modificarlo in modo che contenga AddDefaultCharset ISO-8859-1.

Creazione di un certificato SSL self-signed per Apache2

openssl req -new -x509 -days 3650 -nodes -out server.crt -keyout server.key
chmod 400 server.key

I due files server.crt e server.key vanno definiti nella config di apache.

Configurazione di apache 1.3 con mod_ssl

Dopo aver installato apache 1.3 e mod_ssl, per avere il supporto per http e https occorre come minimo una configurazione con due virtualhosts, cosi`:

Listen 80
Listen 443

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
</VirtualHost>

<VirtualHost *:443>
        # Configurazione SSL
        SSLEngine on
        SSLCertificateFile /etc/apache/ssl/server.crt
        SSLCertificateKeyFile /etc/apache/ssl/server.key
</VirtualHost>

Questa ovviamente e` superminimale, ma funziona se si ha di fatto un solo host (niente virtuali davvero) che vuole fare sia http che https.