Apache amb SSL (HTTPS)

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Guia per activar HTTPS al servidor Apache.

Activem el protocol SSL a Apache

La configuració per defecte ja porta uns certificats autofirmats amb els què el nostre servidor funcionarà, tot i que el navegador avisarà que no és una site de confiança.

Els certificats autofirmats solen estar amb el nom snakeoil. Els pots comprovar a l'arxiu

/etc/apache2/sites-available/default-ssl.conf

Els arxius solen ser (només com a referència):

SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Per activar el protocol cal:

  1. Obrir el port 443 si estem darrera d'un firewall (és el cas del AWS)
  2. Instal·lar el mòdul SSL
  3. Activar la site default-ssl

I ja podem anar a mirar el servidor amb:

https://elmeudomini


Crear un certificat vàlid gratuït a StartCom

La companyia StartCom Ltd. ens proporciona certificats gratuïts a l'adreça:

http://startssl.com

OJU: startssl.com no fa certificats per dominis gratuits com .tk. Si voleu fer-ne algun ha de ser en alguna altra companyia certificadora o bé pensar en fer-vos un domini no gratuït (per exemple un .com).

Segueix les següents passes:

  1. Crea un compte nou a www.startssl.com , millor si ho fas amb la EXPRESS LANE (et guiarà per fer el teu certificat de forma més ràpida)
  2. Valida el teu compte de email
    En el següent pas es descarregarà al teu browser el certificat d'usuari de StartCom
  3. Fes una còpia de seguretat del teu certificat d'usuari. Oju, és important, si perds aquesta clau no podràs entrar al teu compte d'usuari de StartCom.
  4. Ves al Control Panel de la web de StartCom
  5. Entra el domini que vols certificar
  6. Selecciona l'adreça de correu a través de la qual vols validar (és l'adreça de correu que indica el teu registre de domini)
  7. Entra la contrasenya (10 caràcters mínim)
  8. Ara pots descarregar els certificats per instal·lar-los al teu servidor (Apache)
    ULL! el més important és descarregar la CLAU PRIVADA ssl.key , ja que després no la podràs recuperar. Si no ho has fet o has perdut la clau privada, mira l'apartat següent.

En el cas que s'hagi penjat la creació del certificat, no respongui el servidor o no hagis seguit la "express lane":

  1. Ves al control panel
  2. Assegura't que has validat l'email i el teu domini pel que vols els certificats.
  3. Vés a Certificates Wizard i selecciona Web Server SSL/TLS Certificate
  4. Introdueix la contrasenya (oju, 10 caràcters mínim)
  5. Descarrega la clau privada ssl.key
    ULL! no perdeu aquest arxiu ja que no tindreu ocasió de recuperar-ho!
  6. Afegeix un subdomini (típicament www)
  7. Descarrega els certificats per als dominis configurats:
    • Certificat del domini: ssl.crt (hauràs de fer copiar i enganxar)
    • Certificat intermig: sub.class1.server.ca.pem

Els certificats ssl.crt i sub.class1.server.ca.pem son recuperables des del panell de control. La clau privada ssl.key NO ÉS RECUPERABLE si no l'heu descarregat.

Amb aquests arxius ja pots configurar el teu apache.

En cas de pèrdua de la clau privada ssl.key

Si per algun motiu heu perdut la clau privada (arxiu ssl.key) no podreu posar en marxa el certificat correctament, ja que aquesta clau és la que dins d'apache pot desencriptar el certificat.

Solucions:

  1. Revocar el certificat actual de la vostra site i crear-ne un de nou (amb la seva corresponent clau privada). La contrapartida d'aquesta solució (que seria la "estàndard" en un cas habitual) és que comporta una despesa d'uns $25.
  2. Fer un altre domini nou i repetir el procés amb cura de no perdre la clau privada. Normalment no és una solució adequada, però si estas començant una web nova i no vols tenir la despesa de la revocació, pots buscar un nou domini (sovint hi ha ofertes a registradors grans com godaddy.com o hostinger que ofereixen dominis per menys d'1 euro).
  3. Buscar un altre proveïdor de certificats gratuït (de moment no en conec cap, però si en trobeu un, aviseu-me!).


Instal·lant els certificats SSL al teu servidor

Per instal·lar correctament els certificats cal modificar adequadament default-ssl.conf :

SSLCertificateFile /...path.to.your.certs.../cacauet/ssl.crt
SSLCertificateKeyFile /...path.to.your.certs.../ssl.key
SSLCertificateChainFile /...path.to.your.certs.../sub.class1.server.ca.pem

OJU: a partir d'ara cal entrar la contrasenya quan reinciis l'Apache

Claus SSL encriptades

La clau privada de SSL (arxiu ssl.key) sol venir encriptada per més seguretat. Però si la posem tal qual al Apache ens resultarà en que per reiniciar el servei ens demana la contrasenya (passphrase).

Això és incòmode però pitjor encara és si hem reiniciar el servidor i l'Apache no arrenca perquè no estem connectats per introduir-la. Millor, així la desencriptem dins el servidor i ens estalviem problemes (tot i que seria menys segur).

Podem desencriptar la nostra clau amb:

$ openssl rsa -in ssl.key -out ssl.dec.key

I, per suposat, poseu la clau desencriptada al lloc corresponent de la configuració d'Apache.