Hoe installeer ik "Let's Encrypt" Gratis SSL-certificaat in Nginx (Ubuntu)
Als u veel artikelen over privacytips hebt gelezen, zult u zeker een tip tegenkomen die u vraagt om de "HTTPS overal" -extensie te installeren, zodat deze u waar mogelijk automatisch doorverwijdert naar de HTTPS-versie van de website. Het slechte ding is dat de extensie HTTPS overal alleen werkt wanneer de website die u bezoekt SSL heeft geïmplementeerd, en voor de meeste webmasters kan dat een moeilijke (en kostbare) taak op zich zijn. Gelukkig is het met de Let's Encrypt-beweging eenvoudiger voor webmasters om nu SSL-certificaten aan hun sites toe te voegen.
In het verleden (en op dit moment) vereist het instellen van een SSL-certificaat dat u eerst een persoonlijke sleutel op uw server genereert, vervolgens een SSL-certificaat van de certificeringsinstantie koopt (wat duur kan zijn) en ten slotte instelt op de server . Er is veel technische aspecten aan het proces verbonden en als het niet correct wordt uitgevoerd, is het SSL-certificaat nutteloos. Met het Let's Encrypt-project kan men snel en zonder kosten een SSL-certificaat aan zijn sites toevoegen. En ondersteund door de meeste browsers en besturingssystemen, ondersteund door grote spelers in de industrie zoals Mozilla, Akamai, Cisco, EFFIf you and Google.
In deze zelfstudie doorlopen we de stappen om het Let's Encrypt SSL-certificaat in de Nginx-server in te stellen. We gebruiken een Ubuntu 14.04-server voor deze zelfstudie en gaan ervan uit dat u een werkende Nginx Ubuntu-server gebruikt. De instructie kan verschillen voor de Ubuntu 16.04-server.
Installeer Let's Encrypt
Ten eerste, om Let's Encrypt te installeren, zul je git
nodig hebben om het vanuit zijn git repository te klonen. Installeer git met de volgende opdracht:
sudo apt-get install git bc
Eenmaal geïnstalleerd, klopt u de repository van Let's Encrypt:
sudo git clone https://github.com/letsencrypt/letsencrypt / opt / letsencrypt
De omgeving opzetten
Voordat we overgaan tot het installeren en instellen van het SSL-certificaat, is het belangrijk om toegang te verlenen tot de. .well-known
map in de hoofdmap van het web. Standaard zijn alle bestanden en mappen met een "." Voor de bestandsnaam verborgen en niet toegankelijk voor het publiek. In dit geval moeten we echter het publiek toestemming verlenen om toegang te krijgen tot de. .well-known
map. Let's Encrypt slaat hier een speciaal bestand op voor validatie.
Ga naar uw Nginx-websiteconfiguratiemap en open deze (als u een aangepast configuratiebestand voor uw site hebt) of gebruik de standaard:
cd / etc / nginx / sites-beschikbaar sudo nano standaard
Voeg de volgende regels toe in het serverblok:
locatie ~ /\.well- known {allow all; }
Sla op (Ctrl + O) en sluit (Ctrl + x) het configuratiebestand.
Test uw Nginx-configuratie:
sudo nginx -t
Als alle configuratie goed werkt, laadt u de configuratie opnieuw:
sudo service nginx herladen
Genereer een SSL-certificaat
Nu dat u klaar bent met de Nginx-configuratie, is het volgende moment om het SSL-certificaat te installeren.
Ga naar de map Let's Encrypt:
cd / opt / letsencrypt
Voer de volgende opdracht uit om het certificaat te genereren:
./letsencrypt-auto certonly -een webroot --webroot-path = / usr / share / nginx / html -d example.com
Er zijn een paar dingen die u kunt wijzigen:
- Wijzig het
webroot-path
in het documentwebroot-path
van uw site. De standaardinstelling is "/ user / share / nginx / html", maar uw configuratie kan verschillen. - Wijzig "example.com" in uw eigen domeinnaam. Houd er rekening mee dat 'example.com' en 'www.example.com' twee verschillende domeinen zijn. Als u wilt dat het certificaat meerdere domeinen ondersteunt, voegt u
-d example1.com
aan het einde van de opdracht. Als u bijvoorbeeld een SSL-certificaat wilt instellen voor de domeinen 'example.com', 'www.example.com', 'example1.com' en 'www.example1.com', gebruikt u de volgende opdracht:
./letsencrypt-auto certonly -een webroot --webroot-path = / usr / share / nginx / html -d example.com -d www.example.com -d example1.com -d www.example1.com
Tijdens de eerste run installeert het script een aantal Python-bestanden in uw systeem. Als het eenmaal is voltooid, begint het proces voor het genereren van certificaten. Eerst zal het je e-mailadres vragen:
Hierna wordt u gevraagd om de Servicevoorwaarden te lezen op de website Let's Encrypt. Selecteer 'Akkoord'.
Als je het volgende bericht ziet:
BELANGRIJKE OPMERKINGEN: - Gefeliciteerd! Je certificaat en ketting zijn opgeslagen op /etc/letsencrypt/live/example.com/fullchain.pem. Uw certificaat verloopt op 2016-10-02. Om een nieuwe of getweaked versie van dit certificaat in de toekomst te krijgen, voert u letsencrypt-auto opnieuw uit. Als u * alle * van uw certificaten niet-interactief wilt vernieuwen, voert u "letsencrypt-auto renew" uit. Als u Certbot leuk vindt, overweeg dan om ons werk te steunen door: Doneren aan ISRG / Let's Encrypt: https://letsencrypt.org/donate Doneren aan EFF: https://eff.org/donatele
Dat betekent dat u met succes een SSL-certificaat voor uw site (s) hebt gegenereerd. Als u in plaats daarvan een foutmelding krijgt, repareert u de fout en probeert u het opnieuw.
Het SSL-certificaat activeren voor uw site
Nu u het SSL-certificaat hebt gegenereerd, is het tijd om het voor uw site te activeren.
Keer terug naar de Nginx-configuratiemap en open het configuratiebestand van de site:
cd / etc / nginx / sites-beschikbaar sudo nano standaard
Maak een nieuw serverblok en voeg de volgende configuratie toe binnen het blok:
server {server_name example.com www.example.com; luister 443 ssl; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; }
Sla het bestand op en sluit het.
Opmerking : het bovenstaande is een vereenvoudigde versie van het Nginx-configuratieblok. U moet uw eigen aangepaste configuratie toevoegen aan het blok.
Test ten slotte de configuratie:
sudo nginx -t
Als alles in orde is, herlaad Nginx:
sudo service nginx herladen
Dat is het. U hebt met succes een SSL-certificaat voor uw sites ingesteld. U kunt nu de "https" -versie van uw URL laden om deze in actie te zien.
Een automatisch verlengen van een Let's Encrypt SSL-certificaat
In tegenstelling tot de meeste commerciële SSL-certificaten die minimaal een jaar geldig zijn, is een Let's Encrypt's SSL-certificaat slechts drie maanden geldig. Na deze tijd zult u moeten vernieuwen om het te blijven gebruiken. Let's Encrypt wordt geleverd met een renew
, zodat u eenvoudig uw certificaten kunt vernieuwen zonder de hele installatie opnieuw te hoeven doorlopen. De volgende instructies laten zien hoe u een cron-taak instelt om uw SSL-certificaat automatisch te verlengen.
Open nog steeds op je server de crontab:
sudo crontab -e
Voeg de volgende regels toe:
00 0 * * 1 / opt / letsencrypt / letsencrypt-auto renew >> /var/log/le-renew.log 05 0 * * 1 /etc/init.d/nginx herladen
De bovenstaande regels zullen de vervaldatum van uw SSL-certificaten elke maandag om 12 uur controleren en vernieuwen als deze bijna is verlopen. Het zal ook Nginx herladen (om 12.05 uur) om ervoor te zorgen dat het vernieuwde certificaat in gebruik is.
Bewaar en sluit de crontab.
Conclusie
Als u een kleine website beheert en SSL wilt toevoegen aan uw site, is Let's Encrypt een geweldige optie om uw site geloofwaardig te maken. Het is (relatief) eenvoudig in te stellen en kost niets (gratis, zoals in bier), dus er is geen reden om er geen gebruik van te maken. Omdat het echter alleen een domein-gevalideerd (DV) -certificaat (het meest elementaire soort SSL-certificaat) biedt voor die bedrijven waarvoor organisatie-gevalideerde (OV) of Extended-Validation (EV) SSL-certificaten vereist zijn, is waarschijnlijk een commercieel SSL-certificaat de weg te gaan.
Internet2 - HTTPS