Apache amb SSL (HTTPS)

De Cacauet Wiki
Dreceres ràpides: navegació, cerca

Guia per activar HTTPS al servidor Apache.

Activem el protocol SSL a Apache[modifica]

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[modifica]

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[modifica]

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ó és que comporta una despesa d'uns $25. Normalment només es sol fer això si algú ens ha robat la clau, si hem rebut un ciberatac, pel que la confidencialitat de les comunicacions amb el domini podria estar compromesa.
  2. Repetir el procés de creació del certificat.
  3. Buscar un altre proveïdor de certificats gratuït com http://www.letsencrypt.org


Instal·lant els certificats SSL al teu servidor[modifica]

OJU: a partir d'ara et caldrà entrar la contrasenya quan reinciïs l'Apache. Si vols evitar-ho per comoditat mira els apartats posteriors.


Certificats realitzats abans del 2016[modifica]

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

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


Certificats realitzats a partir del 2016[modifica]

Han canviat una mica els noms dels arxius que et descarregues de StartCom.

Per instal·lar correctament els certificats cal modificar adequadament default-ssl.conf (o el virtualhost adequat):

SSLCertificateFile /...path.to.your.certs.../2_www.elmeudomini.com.crt
SSLCertificateKeyFile /...path.to.your.certs.../ssl.key
SSLCertificateChainFile /...path.to.your.certs.../1_root_bundle.crt


Claus SSL encriptades[modifica]

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.