4 artigo/s coa etiqueta Apache


Instalación do certificado Let's Encrypt para o sitio web

Deixo aquí unhas notas de como instalar un certificado de servidor seguro de Let's Encrypt á meu sitio web. Let's Encrypt fornece certificados para os nosos servidores de balde (gratis).

Inicialmente probei o instalador certbot mais non me foi ben, non acababa de verificar o sitio. Logo vendo algún foro de web2py vin que recomendaba o uso de acme que foi o que finalmente empreguei para obter o certificado do sitio web.

Preparación do cartafol para verificar que o sitio é meu

O primeiro que tiven que facer foi crear un cartafol para que Let's Encrypt puidese verificar que o dominio é meu. Normalmente sería indicar o cartafol raíz do sitio web, por exemplo «/var/www/», no meu caso ó usar web2py, a solución pasa por crear un alias no sitio na configuración do apache, no meu caso foi engadir dentro do virtualhost o seguinte alias tal como indican na guía de acme:

Para apache 2.4 en diante:

Alias "/.well-known/acme-challenge/" "/home/www-data/lets_encrypt/"

  AllowOverride None
  Options None
  Require all granted

Para apache 2.2 e anteriores:

Alias "/.well-known/acme-challenge/" "/home/www-data/lets_encrypt/"

  AllowOverride None
  Options None
  # Order allow, deny  OLLO! no meu caso tiven que comentar esta liña
  Allow from all

Instalación de acme

Para elo seguín as instrucións indicadas na guía:

# echo 'deb http://ppa.launchpad.net/hlandau/rhea/ubuntu xenial main' > \
 /etc/apt/sources.list.d/rhea.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \
9862409EF124EC763B84972FF5AC9651EDB58DFA
# apt-get update
# apt-get install acmetool

Unha vez instalado executei a orde:

# acmetool quickstart
  • Tipo de certificado que queremos: opción 1, live
  • Como imos verificar o sitio: opción 1, WEBROOT
  • Indico a ruta que indiquei no alias (na configuración do apache): /home/www-data/lets_encrypt/

Con isto queda o sitio verificado, o seguinte paso é a solicitude dos certificados, para elo empregase a orde:

# acmetool want www.damufo.com

Se quixese tamén o certificado para o sitio sen as www empregaría a orde:

# acmetool want damufo.com www.damufo.com

Os certificados obtidos son gardados en «/var/lib/acme/live/www.damufo.com/».

Para ver o estado dos certificados solicitados, emprégase a orde:
# acmetool status

Finalmente queda engadir os certificados ó virtualhost seguro do apache (o do porto 443), para elo engádese dentro das etiquetas de dito virtualhost o seguinte:

SSLEngine on  # Isto en teoría xa debería estar
SSLCertificateFile    /var/lib/acme/live/www.damufo.com/cert
SSLCertificateKeyFile /var/lib/acme/live/www.damufo.com/privkey
SSLCertificateChainFile /var/lib/acme/live/www.damufo.com/fullchain

Deixo aquí esta ligazón sobre a configuración do SSL do apache que fornece Mozilla por se é de interese.

Finalmente queda comprobar que a sintaxe do ficheiro apache está ben, para elo empregase a orde:

# apache2ctl configtest

E se todo está ben, reiniciase o apache coa orde:

# service apache2 restart

Forzar https e uso de www no Apache

Deixo aquí estas notas de como configurar o Apache para forzar ó sitio a usar https e que o emprego de www. antes no nome de dominio.

Para elo fixen uso do módulo Rewrite do Apache.

O primeiro foi engadir dentro de as liñas:

 RewriteEngine on
# Forzar o emprego de https
  RewriteCond %{HTTPS} off
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

Con isto, o tráfico é redirixido do porto 80 ó 443 que é o que emprega a conexión segura https.

Logo, queda forzar ó emprego de «www.» no caso de non estar presente antes do nome do dominio, para elo engadín dentro de as liñas:

RewriteEngine on
  #Forzar o emprego de www.
  RewriteCond %{HTTP_HOST} ^damufo.com [NC]
  RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}

Se, pola contra, quixese forzar ó NON emprego de «www.» antes do nome do dominio, no canto de engadir o de arriba, o que faría sería engadir:

  RewriteEngine on
  # Forzar o emprego de non-www
  # RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
  # RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

É imporante que dentro do virtualhost estea establecido o nome do servidor, no meu caso:

ServerName damufo.com

Empregar wsgi en modo demo

Neste artigo explican como empregar o mod_wsgi en modo demo e cun número fixo de fíos. Polo que entendo o número fixo de fíos fai que a xestión dos mesmo sexa fixo evitando que sexa apache quen os xestione o que fará que se aforre uso de CPU.

No ficheiro do sites-enable engadín dentro do :

        WSGIDaemonProcess proba user=www-data group=www-data \
	 	 processes=2 threads=15 display-name=%{GROUP}
        WSGIProcessGroup proba
        WSGIScriptAlias /proba /home/www-data/probaweb/wsgihandler.py
        WSGIPassAuthorization On
        <Directory "/home/www-data/probaweb">
          AllowOverride None #isto non teño claro que sexa necesario
          <Files wsgihandler.py>
            Require all granted
          </Files>
        </Directory>

No ficheiro /home/www-data/probaweb/wsgihandler.py puxen:

# -*- coding: utf-8 *-*

import os, sys

sys.path.append('/home/proba/probaweb')

def application(environ, start_response):

    output = "Hello world!"
    start_response('200 OK',
                   [('Content-Type',
                     'text/html; charset=utf-8')])

    return output

Instalar XAMP en debian

Descargase o XAMPP e unha vez descargado dansellepermisos de execución e instálase:

chmod 755 xampp-linux-*-installer.run
sudo ./xampp-linux-*-installer.run

Ábrese unha xanena cun instalador gráfido. Instálase no cartafol /opt/lampp.

Para iniciar temos dous xeitos:

sudo /opt/lampp/lampp start   # o xeito desde consola. Tamén acepta stop.
sudo ./manager-linux.run   #modo gráfico, dentro de /opt/lampp
sudo ./manager-linux-x64.run   #modo gráfico para sistemas 64bits, dentro de /opt/lampp

Se todo foi ben e todos os servidores están a traballar, cando entramos en:

http://localhost

Veremos a páxina de inicio con varias opcións, así como o estado dos servidores.

O cartafol raiz do servidor web (Document Root) é:

/opt/lampp/htdocs

No caso de usar ontro, como por exemplo /var/www poida que interese o emprego de ligazóns simbolicas:

sudo ln -s /var/www/cartafol /opt/lampp/htdocs/cartafol

Algo que nunca hai que facer é:

chmod -R 755 /opt/lampp/

isto fará que quede parado na pantalla de benvida.

Fonte: rafallinux

Logo tiven o seguinte problema:

(2002, “Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)”)

Foi aquí onde atopei a explicación para solucinalo, no meu caso o que fixen foi isto:

$ cd /var/run/
$ sudo mkdir mysqld
$ sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock