Mainos / Advertisement:

Letsencrypt

Kohteesta Taisto
Versio hetkellä 15. huhtikuuta 2016 kello 04.18 – tehnyt Minh (keskustelu | muokkaukset) (→‎Apachelle)
Siirry navigaatioon Siirry hakuun

Let's Encrypt on uusi Certificate Authority. Se on ilmainen, automaattinen sekä avoin. Let's Encrypt on helppo käyttää komentorivillä Linux käyttöjärjestelmässä ja on tuettuna automaattinen asennuksena Apache:lle. Nginxille tuki on tulossa vielä.

Tällä hetkellä osa palveluntarjoajista (Webhotellit esimerkiksi) tukevat Let's Encryptiä. Kannattaa kysyä palveluntarjoajan asiakaspalvelusta Let's Encrypt tuesta. Käytämme taisto.org sivussamme Let's Encryptillä varmennettua sertifikaattia. Palveluntarjoajia jotka tukevat Let's Encrypt: https://github.com/letsencrypt/letsencrypt/wiki/Web-Hosting-Supporting-LE (suomalaisia palveluntarjoajia ei ole listalla)

Let's Encrypt tuetaan suurimmassa osassa käyttöjärjestelmissä ja selaimissa Identrust sertifikaatti juuren kautta. Lista tuetuista ja tukemattomista käyttöjärjestelmistä löydät täältä: https://community.letsencrypt.org/t/which-browsers-and-operating-systems-support-lets-encrypt/4394

Rajoitukset:

  • Sertifikaatin uusiminen rajoitettu noin 5 per 7 päivään.

Asennus

Asenna Git ja tämän jälkeen ajaa seuraava komento

 aptitude install git
 git clone https://github.com/letsencrypt/letsencrypt
 cd letsencrypt

Asenna ja käynnistä asiakas ohjelmisto

 ./letsencrypt-auto

Apua saat komennolla

 ./letsencrypt-auto --help

Webroot konfigurointi =

Lisää tämä jokaiseen Vhostiin konfiguroidaksesi

server {
  listen              80;
  listen              [::]:80;
  server_name         example.net example.org;
  location '/.well-known/acme-challenge' {
  default_type "text/plain";
    root        /tmp/letsencrypt-auto;
  }

  location / {
    return              301 https://$server_name$request_uri;
  }
}


Päivittäminen

Siirry letsencrypt hakemistoon

 cd letsencrypt
 git pull
 ./letsencrypt-auto


Käyttö

Siirry letsencrypt hakemistoon

 cd letsencrypt

Luo sertifikaatti tällä komennolla. Sinulla tulee olla DNS record (A) määritetty tähän palvelimeen missä ajat letsencrypt sovellusta.

  • Manuaalisesti: Sammuta muu webserveri pois käytöstä väliaikaisesti.
./letsencrypt-auto certonly --standalone --email [email protected] \
-d example.com -d www.example.com -d intra.example.com \
  • Webroot menetelmä

Lisää tämä jokaiseen Vhostiin konfiguroidaksesi

server {
  listen              80;
  listen              [::]:80;
  server_name         example.net example.org;
  location '/.well-known/acme-challenge' {
  default_type "text/plain";
    root        /tmp/letsencrypt-auto;
  }

  location / {
    return              301 https://$server_name$request_uri;
  }
}

Käyttäminen

$ export DOMAINS="-d example.net -d example.org" $ export DIR=/tmp/letsencrypt-auto $ mkdir -p $DIR && letsencrypt certonly --server https://acme-v01.api.letsencrypt.org/directory -a webroot --webroot-path=$DIR --agree-dev-preview $DOMAINS $ service nginx reload

Lisää sertifikaatit webserverin konfiguraatioon ja käynnistä uudelleen.

Sertifikaatit löytyvät täältä /etc/letsencrypt/keys ja /etc/letsencrypt/archive arkistoroituna ja /etc/letsencrypt/live löytyvät uusimmat.

Sieltä löytyy tiedostot

 privkey.pem -> Privaattiavain. Älä jaa tätä kenelekkään!
 chain.pem -> Tässä on sertifikaatit paitsi palvelinsertifikaatti.
 fullchain.pem -> Tässä on kaikki sertifikaatit, lisäksi palvelin sertifikaatti.

Sertifikaatin uudistaminen

Aja Letsencrypt hakemistossa seuraava komento. Sammuta ensin webserveri jos et käytä webroot menetelmää

 ./letsencrypt-auto renew

Jos tulee "Expected a numeric value for http01_port" virhe niin vaihda /etc/letsencrypt/renewal/[my.domain].conf tiedostosta http01_port = None :sta http01_port = 80

Konfigurointi tiedosto

Käytä konfiguraatio tiedostoa letsencrypt-auto:ssa:

./letsencrypt-auto --config cli.ini


Esimerkki konfiguraatio. Tallenna tämä /etc/letsencrypt/cli.ini tiedostoksi.

# This is an example of the kind of things you can do in a configuration file.
# All flags used by the client can be configured here. Run Let's Encrypt with
# "--help" to learn more about the available options.

# Use a 4096 bit RSA key instead of 2048
rsa-key-size = 4096

# Uncomment and update to register with the specified e-mail address
# email = [email protected]

# Uncomment and update to generate certificates for the specified
# domains.
# domains = example.com, www.example.com

# Uncomment to use a text interface instead of ncurses
# text = True

# Uncomment to use the standalone authenticator on port 443
# authenticator = standalone
# standalone-supported-challenges = tls-sni-01

# Uncomment to use the webroot authenticator. Replace webroot-path with the
# path to the public_html / webroot folder being served by your web server.
# authenticator = webroot
# webroot-path = /usr/share/nginx/html


Asenna sertifikaatti webpalvelimelle

Webpalvelimelle asennus on helppoa. Let's Encrypt osaa Apachelle tehdä valmiit konfiguraatiot mutta ohjeemme on tehty yleisellä tasolla monelle webpalvelimelle.

Apachelle

Tässä on esimerkki Vhost konfiguraatio Apachelle. Muuta example.org vastaamaan domainisi nimeä. Lisäohjeita tästä.

<VirtualHost *:443>
ServerName www.example.org
ServerAlias www.example.org
DocumentRoot /var/www/

<Directory /var/www/>
        Options +Includes -Indexes FollowSymLinks -MultiViews
        AllowOverride All
</Directory>

CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn

SSLEngine on
SSLCertificateFile    /etc/letsencrypt/live/example.org/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.org/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.org/chain.pem
</VirtualHost>

Muista ladata konfiguraatiot uudelleen muutosten jälkeen

 service apache2 reload


Nginx

Esimerkki konfiguraatio Nginx - webpalvelimelle. Muuta example.org vastaanaan sinun domain nimeäsi. Lisäohjeita https käyttöönottoon.

server {
  listen 443 ssl;
  server_name example.org www.example.org;

  ssl_certificate      /etc/letsencrypt/live/example.org/fullchain.pem;
  ssl_certificate_key  /etc/letsencrypt/live/example.org/privkey.pem;

Muutosten jälkeen lataa konfiguraatiot uudelleen

 service nginx reload

Automaattinen sertifikaatin uusiminen

Tämä uusii joka kahden kuukauden välein (Let's Encrypt sertifikaatit voimassa 3kk ajan) että jos jokin menee pieleen niin voit uusia helposti manuaalisestikkin.

Lisää tämä croniin. Tämä on tehty Nginx:lle mutta toimii Apachellakin kunhan muutat service nginx reload -> service apache2 reload

0 3 1 */2 * /root/letsencrypt/letsencrypt-auto certonly --webroot -w /var/www/example.org/ -d www.example.org -d example.org --email [email protected] --renew-by-default --agree-tos && service nginx reload

Lähde

https://letsencrypt.readthedocs.org/en/latest/using.html

Mainos / Advertisement: