Koti » Let’s Encrypt -varmenteen asennus Ubuntu-palvelimelle

Let’s Encrypt -varmenteen asennus Ubuntu-palvelimelle

Let’s Encrypt on ilmainen, automaattinen ja avoin varmennemyöntäjä (Certificate Authority). Se on todella suosittu nykyisin sen helppokäyttöisyyden ja ilmaisuuden takia. Tämän avulla saat verkkosivusi salatun yhteyden taakse ja suojattua vierailijoiden käynnit verkkosivullasi.

Selaimet luottavat oletuksena hyvin Let’s Encryptin käyttämään Identrust-varmennejuureen, joten se toimii kaikilla nykyaikaisilla selaimilla.

Käytämme ohjeessamme Ubuntu 16.04 LTS versiota. Ohje soveltuu myös uudemmille versioille.

Asenna Certbot

Asenna Certbot-ohjelmisto.

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-apache

Haetaan varmenne

Cerbot-ohjelmisto tukee erilaisia lisäosia, joiden avulla SSL/TLS–sertifikaattia voi asentaa. Jo nyt voi useimmille sovelluksille kuten Apachelle että Nginxille:kin. Itse olen kuitenkin suositellut manuaalista asennusta ja käyttäen esimerkiksi webroot-menetelmää. Se on toimiva kaikilla webpalvelimilla, jotka ovat julkisessa internetissä saatavilla. Lisäksi on DNS:llä tapahtuva todennus, jolloin nimipalvelimeen lisätään TXT-nimipalvelintietue. Tätä suositellaan myös käytettäväksi, kun sinulla on pääsy nimipalvelimille eikä webpalvelimellesi ole pääsyä julkisesta verkosta.

Webroot-menetelmä

Webroot-menetelmää varten tarvitset pääsyn palvelimen konfiguraatioon. Tämän voi tehdä webhotelleissa esim .htaccess tiedostoon.

Webroot-menetelmä käyttää .well-known/acme-challenge -polkua palvelimella, jonne se lisää tiedoston.  Voit käyttää /var/www/html hakemistoa tässä. Sinun tulee tällöin lisätä webpalvelimelle ohjaus tähän hakemistoon.

Tässä esimerkki konfiguraatio Nginx:lle:

location '/.well-known/acme-challenge' {
    default_type "text/plain";
    root        /var/www/html/;
}

Ja tässä Apache2:selle

Alias /.well-known/acme-challenge/ "/var/www/html/.well-known/acme-challenge/"
<Directory "/var/www/html/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

Kun tämä on tehty niin voit pyytää varmennetta sivustollesi seuraavalla komennolla

certbot certonly --webroot -w /var/www/html/ -d www.example.com -d example.com

Mikäli varmenteen haku onnistui ilman virheilmoitusta löydät varmenteen /etc/letsencrypt/live/ hakemistosta. Nyt sinun tulee lisätä tämä SSL/TLS-varmenne ja yksityisen avaimen sovelluksesi konfiguraatioon.

DNS-menetelmä

DNS-menetelmä vaatii että sinulla on pääsy verkkotunnuksesi nimipalvelimelle ja olisi hyvä että nimipalvelin palveluntarjoajallasi olisi valmis rajapinta tätä varten, jotta ei tarvitsisi syöttää TXT-nimipalvelintietueita manuaalisesti. Etuna tässä on se ettei tarvitse olla Webpalvelinta eli 80 / 443 porttia auki palvelimella ja toimii myös palomuurin takana.

certbot certonly --manual --preferred-challenges=dns -d example.org

Tämä tulostaa TXT-tietueen esimerkiksi

_acme-challenge.example.org. 300 IN TXT "gfj9Xq...Rg85nM"

Joka tulee sitten tallentaa verkkotunnuksesi nimipalvelimelle TXT-tietueena. Sisältö tulee olla sama. Odota hetki ennen kuin jatkat varmistamista ja testaa dig / nslookup / host komennolla, että nimipalvelimelta löytyy tämä TXT-nimipalvelintietue.

Jatka vahvistamista eteenpäin ja salli IP-osoitteiden lokitus. Mikäli vahvistus onnistuu, niin SSL/TLS–varmenteesi löytyy /etc/letsencrypt/live hakemistosta.

Wildcard-varmenteen hankkiminen esimerkiksi example.org ja *.example.org onnistuu yhdellä TXT-tietueen varmennuksella. Muista vain määrittää -d -parametrinä molemmat verkkotunnukset kun haet varmenteesi certbot-komennolla.

DNS-mentetelmän voi automatisoida pre-hook ja post-hook avulla. Cerbotin dokumentaatiossa on esimerkki miten tämän voi toteuttaa. Suosittelen automatisoimaan tämän, sillä muuten joudut syöttämään TXT-tietueen manuaalisesti nimipalvelimelle.

Varmenteen uusiminen

Let’s Encrypt SSL/TLS-varmenteet ovat voimassa 3kk kerralla, joten ne pitää uusia 1-3kk välein.

Voit testaa uusimista –dry-run parametrillä. Poistamalla tämän niin varmennetta yritetään uudistaa.

cerbot renew --dry-run

Suosittelemme lisämään varmenteen uusinnan croniin joka kuukauden välein.

EXTRA: Apua varmenteiden uusimisen valvontaan

Joskus varmenteiden uusinta ei onnistu täysin automaattisesti vaan tulisi valvoa että tämä toimii oikein ja varmenteet uusiutuvat eikä vanhenisi. Löysin tätä varten Let’s Monitor palvelun, jonka käyttäminen on ilmaista ja helppoa.

Palveluun tulee lisätä kaikki osoitteet ja palvelu valvoo etteivät varmenteet vanhene. Voit asettaa itsellesi ilmoituksen mikäli varmenne on vanhentumassa 7 päivän sisällä jotta muistat esimerkiksi uusia sen manuaalisesti.

Let’s Encrypt on Internet Security Research Group (”ISRG”) rekisteröity tavaramerkki.

Kommentoi