HTTPS Apache-n Certbot bidez
Bazen garaia
Aspaldi idatzi nuen honi buruz, baina eguneraketa bat behar zuen.
Kudeatzen ditudan zerbitzu batzuk HTTPS euskarri gabe erabili izan ditut gutxi arte. Dirudienez, Chrome-k HTTP deskargak blokeatu egingo ditu segurtasun arazoengatik. Honetarako, TLS ziurtagiriak instalatu behar nituen. Besteren faltan, EFF-k certbot bidez eskainitako doako Let’s Encrypt ziurtagiriak jarri nizkien.
Zerbitzaren sistema eragilea Debian da, eta Apache erabiltzen du web orriak zerbitzatzeko. Nginx ere erabiltzen dut. Dena den, prozesu agnostikoa azalduko dut.
§Certbot-en instalazioa
Lehenik eta behin, Certbot instalatuko dugu:
$ wget https://dl.eff.org/certbot-auto
$ mv certbot-auto /usr/local/bin/
$ chown root /usr/local/bin/certbot-auto
$ chmod 0755 /usr/local/bin/certbot-auto
§Ziurtagirien instalazioa
Hemen, bi alternatiba ditugu: apache
plugina alde batetik, eta webroot
bestetik.
§Automatikoa (plugin bidez)
Prozesua nahiko sinplea da, kontsolan hurrengoa exekutatuz:
$ certbot-auto certonly --apache
Hemen prompt interaktibo bat azalduko da, hobespenak eskatuz: aukeratutako domeinu eta azpidomeinuak, zerbitzatzeko modua (HTTP zuzena ala ez), zure eposta, etab. Alde batetik, zertifikatua sortuko du eta bestetik, konfigurazio fitxategietan SSL-ri dagozkionak erantsiko dira. Beraz, orain apache2 berrabiaraztea falta da:
$ service apache2 restart # Debian, adibidez
$ service httpd restart # Arch, adibidez
(nginx erabiltzen baduzu, prozesu berbera da apache
ordez nginx
erabilita.)
§Eskuz (webroot bidez)
Nire kasuan, aurreko plugin-arekin arazoak izan nituen, TLS-ren challenge-ak gaindiezinak zirelako. Certbot-ek berak azaltzen du nola konpondu, eta webroot (web erro) bat erabiltzea gomendatzen du. Hau luzeago egiten da, banaka joan behar delako. Bestalde, eskuz egiteak Apache-ren konfigurazioa ikasten lagundu dit.
Hurrengo komandoa erabili behar da:
$ certbot-auto certonly --webroot -w <kokapena> -d <domeinua>
Kasu honetan, fitxategia eskuz aldatu beharko duzu, honelako zerbait ezarriz:
<VirtualHost *:80>
ServerName <domeinua>
RedirectMatch permanent ^(.*)$ https://<domeinua>$1
</VirtualHost>
<VirtualHost _default_:443>
ServerName <domeinua>
DocumentRoot <kokapena>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/<domeinua>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<domeinua>/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/<domeinua>/chain.pem
[...]
</VirtualHost>
Konprobatu lehenik eta behin ea guztia ondo dagoen:
$ apachectl configtest # Debian, adib.
$ httpd -t # Arch, adib.
Erantzuna Syntax OK
bada, Apache berrabiaraztea falta da:
$ service apache2 restart # Debian, adibidez
$ service httpd restart # Arch, adibidez
Bejondeizula, orain zure web orrialdeetara HTTPS bidez sar zaitezke![1]
§Ziurtagirien berritzea
Hau ez da guztia. Irakurri dudanaren arabera, ziurtagiri hauek hiru hilabetero iraungitzen dira, beraz aldizka eguneratu behar dira. Horretarako cron
lan bat ezarriko dugu:
$ crontab -e
Eta fitxategi honetako amaieran zera jarriko dugu:
30 2 * * 1 /usr/local/bin/certbot-auto renew -q
Orain ez zara zure ziurtagirien egoeraz kezkatu behar.[2]
Ohar honi buruzko iruzkinik? Hala bada, bidali iezadazu mezu bat hemengo alternatibaren bat erabiliz!