Co to jest Let’s Encrypt?
Każdy kto jest zainteresowany, używa bądź używał szyfrowanego połączenia dla swojej strony/aplikacji – ten wie co to jest, dla mniej zorientownych – jest to nowość na rynku, Let’s Encrypt zostałstworzony, by dawać użytkownikowi darmowy SSL dla 10 certyfikatów SSL w obrębie jednej domeny za DARMO na 3 miesiące.
Dzięki dostarczeniu przez autorów projektu, odnowienie certyfikatów można zautomatyzować, przez co w zasadzie można zapomnieć o co-3-miesięcznym ręcznym odnawianiu.
Kto za to płaci ?
Na tę chwilę (17.04.2016) głównymi sponsorami są:
Jak to się ma do certyfikatów wystawianych przez firmy typu AlphaSSL, COMODO etc. ?
W sumie to sam certyfikt niczym się nie równi. Jest on zweryfikowany, jest on zaufany nie mniej jednak – na starszych systemach operacyjnych, bądź w starszych przeglądarkach internetowych moga wystąpić problemy z weryfikacją, ze względu na to że wydawca jest “świeży”.
Osobiście mni to nie dotknęło, jednak na systemach typu Windows XP bądz sarszych dystrybucjach ze starszymi pakietami “ca-cert” mogą wystąpić kłopoty.
Do czego można to zastosować ?
Do wszystkich aplikacji, serwerów WWW (testowałem na nginx, Apache 2.x, oraz lighttpd), generowane pliki certyfikatu, klucza wydawcy są standardowe.
Jeśli:
- pobierasz i przetwarzasz dane osobowe,
- prowadzisz sprzedaż w Internecie,
- publikujesz informacje wymagające uwiarygodnienia,
- prowadzisz aktywną działalność w Internecie,
- przekazujesz swoim współpracownikom i partnerom poufne informacje za pośrednictwem Internetu.
Certyfikat jest wręcz zalecany.
Jak to zainstalować ?
Do instalacji potrzebujesz pakiet “git” oraz kilka bibliotek “python’owych”.
Pokazę jak zainstalować SSL z Let’s Encrypta na systemie Debian 8 / Debian 7 / Ubuntu 14.04 LTS i serwerze WWW nginx 1.8.1 / 1.9.14
1. Paczka GIT:
apt-get update apt-get install git -y
2. Najnowsze źródła narzędzi Let’s Encrypt z GIT:
git clone https://github.com/letsencrypt/letsencrypt
3. Generowanie certyfikatu dla istniejącej witryny www
sh /root/letsencrypt/letsencrypt-auto certonly --webroot --webroot-path /var/www --domains strona.pl,www.strona.pl --agree-tos --email admin@strona.pl
Ścieżka gdzie “jest” witryna:
--webroot --webroot-path /var/www
Domena i subdomena dla której ma być SSL wygenerowany:
--domains strona.pl,www.strona.pl
E-mail administratora
--email admin@strona.pl
4. Odnowienie certyfikatu SSL:
(sudo crontab -u root -l; echo "0 0 1 * * sh /root/letsencrypt/letsencrypt-auto renew >> /dev/null && service nginx restart >> /dev/null") | crontab -u root -
Powyższe polecenie doda do zadań “cron” i wykona go co miesiąc.
5. Konfiguracja serwera WWW:
server { listen 443 ssl; server_name strona.pl www.strona.pl; ssl on; ssl_certificate /etc/letsencrypt/live/strona.pl/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/strona.pl/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/strona.pl/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=86400; resolver_timeout 10; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK"; ### DALSZA CZĘŚĆ KONFIGURACJI ### }
Oczywiście strona.pl zamień na swoj katalog o nazwie twojej witryny www.