Let’s encrypt i lighttpd – HOWTO

Czym jest Let’s Encrypt wie już chyba każdy, kogo interesują certyfikaty SSL. Wypada jednak jakieś wprowadzenie napisać, więc: to prosty sposób na odnawialne automatycznie, rozpoznawane przez przeglądarki, bezpłatne certyfikaty SSL dla każdego. Projekt jest w fazie public beta, więc przystąpić może każdy. Stoją za nim duzi (przykładowi, bardziej znani sponsorzy: Mozilla, EFF, Cisco, OVH, Google Chrome, Facebook), więc raczej coś z tego będzie. Jest krokiem w kierunku zwiększania bezpieczeństwa w sieci pod hasłem wszystko po HTTPS. Które to rozwiązanie ma wady, ale o tym już było.

Let's Encrypt logo

Źródło: https://letsencrypt.org/trademarks/

Ponieważ właśnie dostałem maila od Let’s Encrypt, że wygenerowany przez nich, darmowy certyfikat SSL dla mojej domeny wygasa, postanowiłem skorzystać z największego dobrodziejstwa, czyli zautomatyzować całość. Prosty skrypt, który zadziała dla lighttpd i jednej domeny:

#!/bin/bash LECMD="/opt/bin/letsencrypt/letsencrypt-auto"DOMAIN="mojadomena.com"WEBROOT="/var/www/mojadomena.com/html/"EMAIL="adres@email"$LECMD --renew-by-default -a webroot --webroot-path $WEBROOT --server https://acme-v01.api.letsencrypt.org/directory --email $EMAIL --text --agree-tos -d $DOMAIN authcat /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/letsencrypt/live/$DOMAIN/cert.pem > /etc/letsencrypt/live/$DOMAIN/ssl.pemservice lighttpd restart

Zakładam oczywiście, że skrypt letsencrypt jest pobrany z gita. Dodatkowo masz dostęp do roota, lighttpd jest skonfigurowane i ma podpięty certyfikat SSL. Plus, że w konfiguracji lighttpd jest linia w stylu:

ssl.pemfile = "/etc/letsencrypt/live/mojadomena.com/ssl.pem"

To co wyżej to sama esencja, brakuje choćby kontroli błędów/statusu wykonania poleceń. Ale wywołane z ręki działa i pewnie dodam do crona wykonywanie raz w miesiącu (wzmocnione przez && w ramach „kontroli błędów”). Opisuję, by mi nie zginęło. Poza tym, widziałem albo skrypty automatyzujące, albo opisy uruchomienia letsencrypt z lighttpd. Liczę więc, że zebrane do kupy się komuś przyda.

UPDATE Wpis się lekko zdezaktualizował o czym więcej w tym wpisie. A krótko: jest gotowiec od EFF o nazwie Certbot do automatycznego zarządzania darmowymi certyfikatami SSL Let’s Encrypt. Z opisami użycia dla różnych serwerów.

Kraizm

Mapa świata

Źródło: https://commons.wikimedia.org/wiki/File:BlankMap-World6.svg

Wyobraźmy sobie, że ktoś w cywilizowanym świecie otwiera sklep/oferuje usługę i zabrania korzystania z niego ludziom o określonym kolorze skóry. Na przykład salon fryzjerski albo kino, z napisem Murzynów nie obsługujemy. Albo wyznającym określoną religię. Ewentualnie określonej narodowości. Albo w drugą stronę – sklep/usługa tylko dla białych. Albo Nur für Deutsche… Myślicie, że by przeszło? Ja myślę, że zdecydowanie nie.

To może coś mniej oczywistego. Sklep internetowy (albo usługa…) o podobnych ograniczeniach korzystania. Co prawda trochę trudniej weryfikować, ale zawsze można próbować posiłkować się danymi z social media, czyli wymagać logowania przez Facebooka, a jeśli płeć albo kolor skóry właściciela na zdjęciach się nie spodoba, to odmawiamy dostępu do usług. Ewentualnie można wymagać zdjęcia dowodu tożsamości i próbować określić na tej podstawie. Technicznie wykonalne, z rozsądną pewnością. Myślicie, że to by przeszło? Nie jestem już taki pewny, jak w poprzednim przypadku, ale nadal mam wrażenie, że nie.

Natomiast w sieci każdego dnia spotykamy się z dokładnie taką segregacją ludzi na podstawie domniemania kraju, w którym aktualnie przebywają. Chodzi oczywiście o ograniczanie dostępu do kultury/rozrywki (muzyka, film) przy pomocy DRM, czy to za sprawą regionów DVD, czy innych, podobnych technik. Wystarczy wejść na YouTube – część utworów jest w danym kraju niedostępna (Google, don’t be evil…).

Generalnie o ile nie uznajemy segregowania na podstawie płci, rasy, koloru skóry, religii czy narodowości za właściwe, to już segregacja na podstawie (domniemania) kraju przebywania jest raczej akceptowana. Przynajmniej w sieci. Nawet, jeśli nie wynika ona wprost z przepisów obowiązujących w danym kraju. Swoją drogą, prawa sankcjonujące dyskryminację ze względu na religię/narodowość/kolor skóry/płeć też istniały, więc to żaden argument.

Zastanawiałem się, czy już ktoś użył tego określenia, ale szukając po countrism znajduję tylko countrist, o zbliżonym znaczeniu, ale jednak w trochę innym kontekście. Do rozważań na ten temat bezpośrednio skłoniła mnie sytuacja z Netflix, który co prawda otworzył się na różne rynki, ale jednocześnie dołączył do firm wykorzystujących DRM i zapowiedział blokadę proxy/VPN w celu uzyskania dostępu do treści, ale problem jest oczywiście szerszy.

SLA 99,5% – so what?

SLA na poziomie 99,5% robi wrażenie, prawda? Przy okazji dyskusji pod wpisem u Boniego poleciało 99.5% jako synonim jakości (czegoś tam). Co z kolei skłoniło mnie do sprawdzenia, jak to się ma do danych dotyczących dostępności łącza, które wystawiam przy pomocy PUM. No i w skrócie: 99,5% dostępności w skali miesiąca to żaden wyczyn.

Na początek disclaimer: nie jest to wyraźnie napisane w FAQ, ale z tego co się dowiedziałem od autorów/supportu. Uptime Robot w wersji darmowej nie zlicza (poprawnie?) uptime dla okresu powyżej jednego miesiąca. Co niestety nie przeszkadza mu zwracać jakichś wartości dla okresów powyżej 30 dni.

The Free Plan can return uptime ratios back to 1 month due to the limit of the logs kept. The Pro Plan supports back to 1 year. And, the alltimeuptimeratio variable in the API currently returns 1-month uptime (and it’ll be removed from the APIv2).

I jak widać z powyższego, All uptime to tak naprawdę, w przypadku planu darmowego, uptime dla poprzedniego miesiąca.

Spójrzmy na the domek. Komputer Linuksem, dokładnie, Seagate Dockstar robiący za router, więc trochę embedded w porównaniu z typowym PC, czyli bardziej niezawodny. Za to z dyskiem w kieszeni USB, bez jakiegokolwiek podtrzymania prądu przy pomocy UPS. Łącze przez wiekowy modem USB, 3rd party dostawca over linia TPSAOrange (BSA).

Aby było weselej: połączenie resetowane raz dziennie, skrypt podnoszący/sprawdzający uruchamiany co 4 minuty , a PPPoE trochę wstaje…

I cała ta rzeźba, łącznie z przerwami po stronie 3rd party usługodawcy, Orange, dostawcy monitoringu (czyli Uptime Robot), zwłoką przy odświeżaniu dyndns (monitoring jest po domenie) i problemami w globalnym internecie daje radę. Generalnie, bo oczywiście są miesiące, że nie da.

SLA 99,5% my ass… 😉

[1] Nie pamiętam już, czemu tak, zdaje się, że musiał mieć chwilę na sprawdzenie albo ubicie pppd. Albo nie chciało mi się pisać obsługi lockfile’a, bo parę minut przerwy w nocy i tak jest pomijalne w tym zastosowaniu…