Hoe een SSL-certificaat installeren van een commerciële certificeringsinstantie

Introductie

Deze handleiding laat zien hoe je een SSL-certificaat kunt verkrijgen en installeren van een vertrouwde, commerciële Certificate Authority (CA). SSL-certificaten stellen webservers in staat om hun verkeer te versleutelen en bieden ook een mechanisme om de serveridentiteit te valideren aan hun bezoekers. Websites die SSL gebruiken zijn toegankelijk via het https:// protocol.

Voor het midden van de jaren 2010 gebruikten veel kleinere websites niet altijd SSL of HTTPS. Sindsdien zijn de verwachtingen van beveiliging toegenomen en het Let’s Encrypt-project is gecreëerd om gratis, vertrouwde SSL-certificaten op schaal te leveren, waardoor bijna iedereen HTTPS kan gebruiken wanneer dat nodig is.

Er zijn echter enkele beperkingen aan de certificaten van Let’s Encrypt. Ze verlopen elke 3 maanden en vereisen meestal een goed werkend automatisch verlengingsscript, wat lastig kan zijn in omgevingen waar dit niet mogelijk is. Let’s Encrypt biedt ook geen Uitgebreide Validatie-certificaten die de wettelijke eigendom van je webaanwezigheid valideren, of Wildcard-certificaten die automatisch overeenkomen met elke mogelijke subdomein van je website (zoals shop.example.com) zonder dat je ze handmatig hoeft te registreren.

Voor de meeste gebruikers zullen deze geen significante beperkingen vormen. Let’s Encrypt is een populaire keuze voor veel persoonlijke en commerciële websites. Als je echter specifieke softwarevereisten hebt voor je bedrijf of een zeer grote commerciële operatie hebt, overweeg dan het aanschaffen van een certificaat bij een commerciële certificaatautoriteit.

Deze tutorial behandelt hoe je een SSL-certificaat kunt selecteren en implementeren van een vertrouwde certificaatautoriteit. Nadat je je SSL-certificaat hebt verkregen, zal deze tutorial uitleggen hoe je het installeert op de Nginx- en Apache-webservers.

Vereisten

Er zijn verschillende vereisten voordat je probeert een SSL-certificaat van een commerciële certificaatautoriteit te verkrijgen:

  • Een geregistreerde domeinnaam. Deze tutorial maakt gebruik van example.com als voorbeeld. Je kunt een domeinnaam aanschaffen bij Namecheap, er een gratis krijgen bij Freenom, of de domeinregistratie van jouw keuze gebruiken.

  • Toegang tot een van de e-mailadressen op het WHOIS-record van je domein of tot een “admin-type” e-mailadres op het domein zelf. Certificaatautoriteiten die SSL-certificaten uitgeven, zullen doorgaans de controle over het domein valideren door een validatie-e-mail te sturen naar een van de adressen op het WHOIS-record van het domein, of naar een algemeen admin e-mailadres op het domein zelf. Om een Extended Validation-certificaat te verkrijgen, moet je ook de CA voorzien van documentatie om de wettelijke identiteit van de eigenaar van de website vast te stellen, onder andere zaken.

  • DNS-records opgezet voor je server. Als je DigitalOcean gebruikt, raadpleeg dan onze DNS-documentatie voor details over hoe je ze kunt toevoegen.

Deze tutorial geeft configuratie-instructies voor een Ubuntu 22.04-server die is ingesteld door de stappen te volgen in de initiële serverconfiguratie voor Ubuntu 22.04-handleiding, inclusief een sudo-ingeschakelde niet-root-gebruiker en een firewall. De meeste moderne Linux-distributies zullen op een vergelijkbare manier werken.

Zorg er ook voor dat je een webserver zoals Nginx of Apache hebt geïnstalleerd, door de stappen te volgen in Hoe Nginx te installeren op Ubuntu 22.04 of Hoe de Apache-webserver te installeren op Ubuntu 22.04. Zorg ervoor dat je een serverblok (of Apache-virtuele host) hebt voor je domein.

Stap 1 – Kies je certificaatautoriteit

Als je niet zeker weet welke certificaatautoriteit je moet gebruiken, zijn er een paar factoren om te overwegen.

Lidmaatschappen van het rootcertificaatprogramma

Het meest cruciale punt is dat de CA die je kiest, lid is van de root-certificaatprogramma’s van de meest gebruikte besturingssystemen en webbrowsers, d.w.z. het is een “vertrouwde” CA, en het root-certificaat ervan wordt vertrouwd door gangbare browsers en andere software. Als het SSL-certificaat van jouw website is ondertekend door een vertrouwde CA, wordt de identiteit ervan als geldig beschouwd door software die de CA vertrouwt.

Meeste commerciële CAs die je tegenkomt, zijn waarschijnlijk lid van de gangbare root-CA-programma’s, maar het kan geen kwaad om te controleren voordat je jouw certificaat aanschaft. Bijvoorbeeld, Apple publiceert zijn lijst van vertrouwde SSL-rootcertificaten.

Soorten Certificaten

Zorg ervoor dat je een CA kiest die het type certificaat aanbiedt dat je nodig hebt. Veel CAs bieden variaties van deze certificaattypen aan onder verschillende namen en prijsstructuren. Hier is een korte beschrijving van elk type:

  • Single Domain: Gebruikt voor één domein, bijv. example.com. Let op dat extra subdomeinen, zoals www.example.com, niet zijn inbegrepen
  • Wildcard: Gebruikt voor een domein en al zijn subdomeinen. Bijvoorbeeld, een wildcard-certificaat voor *.example.com kan ook worden gebruikt voor www.example.com en store.example.com.
  • Meerdere Domeinen: Bekend als een SAN of UC-certificaat, kunnen deze worden gebruikt met meerdere domeinen en subdomeinen die aan het veld Subject Alternative Name worden toegevoegd. Bijvoorbeeld, een enkel multi-domein certificaat kan worden gebruikt met example.com, www.example.com, en example.net

Naast de eerder genoemde certificaattypen zijn er verschillende niveaus van validaties die CAs aanbieden:

  • Domein Validatie (DV): DV-certificaten worden uitgegeven nadat de CA heeft geverifieerd dat de aanvrager het domein in kwestie bezit of controleert
  • Organisatie Validatie (OV): OV-certificaten kunnen alleen worden uitgegeven nadat de uitgevende CA de juridische identiteit van de aanvrager heeft geverifieerd
  • Uitgebreide Validatie (EV): EV-certificaten kunnen alleen worden uitgegeven nadat de uitgevende CA de juridische identiteit, onder andere, van de aanvrager heeft geverifieerd, volgens een strikte reeks richtlijnen. Het doel van dit type certificaat is om extra zekerheid te bieden over de legitimiteit van de identiteit van uw organisatie aan de bezoekers van uw site. EV-certificaten kunnen enkelvoudige of meerdere domeinen zijn, maar geen wildcard

Extra Functies

Veel Certificate Authorities (CAs) bieden een breed scala aan “bonus” functies aan om zich te onderscheiden van andere SSL-certificaatverkopers. Sommige van deze functies kunnen uiteindelijk geld besparen, dus het is belangrijk dat u uw behoeften afweegt tegen het aanbod voordat u een aankoop doet. Voorbeelden van functies om op te letten zijn gratis certificaatvernieuwingen of een certificaat geprijsd voor een enkel domein dat werkt voor www. en de domein-basenaam, bijvoorbeeld www.example.com met een SAN van example.com

Stap 2 – Genereren van een CSR en privésleutel

Nadat u uw vereisten hebt gesorteerd en het type certificaat kent dat u nodig hebt, is het tijd om een certificaataanvraag (CSR) en privésleutel te genereren.

Als u van plan bent om Apache HTTP of Nginx als uw webserver te gebruiken, kunt u de openssl-opdracht gebruiken om uw privésleutel en CSR op uw webserver te genereren. In deze handleiding kunt u alle relevante bestanden in uw thuismap bewaren, maar voel u vrij om ze op te slaan op een veilige locatie op uw server:

Om een privésleutel met de naam example.com.key en een CSR met de naam example.com.csr te genereren, voert u deze opdracht uit (vervang example.com door de naam van uw domein):

  1. openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

Op dit punt wordt u gevraagd om verschillende regels informatie in te voeren die zullen worden opgenomen in uw certificaataanvraag. Het belangrijkste onderdeel is het veld Common Name, dat moet overeenkomen met de naam waarmee u uw certificaat wilt gebruiken – bijvoorbeeld example.com, www.example.com, of (voor een wildcard certificaataanvraag) *.example.com. Als u van plan bent om een OV- of EV-certificaat aan te vragen, zorg er dan voor dat alle andere velden nauwkeurig de gegevens van uw organisatie of bedrijf weerspiegelen. Het opgeven van een “uitdagingwachtwoord” is niet nodig.

Bijvoorbeeld:

Output
Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:New York Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:example.com Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Dit genereert een .key– en .csr-bestand. Het .key-bestand is uw privésleutel en moet veilig worden bewaard. Het .csr-bestand is wat u naar de CA stuurt om uw SSL-certificaat aan te vragen.

  1. ls example.com*
Output
example.com.csr example.com.key

U moet uw CSR kopiëren en plakken bij het indienen van uw certificaataanvraag bij uw CA. Om de inhoud van uw CSR af te drukken, gebruikt u cat:

cat example.com.csr

Nu bent u klaar om een certificaat te kopen bij een CA.

Stap 3 – Aankoop en verkrijgen van een certificaat

Er zijn veel commerciële CA-providers en je kunt de meest geschikte opties voor jouw eigen setup vergelijken en tegen elkaar afwegen. Bijvoorbeeld, Namecheap fungeert als een SSL-certificaat wederverkoper en heeft in het verleden upstream CA-providers gewijzigd om de beste waarde te bieden. Momenteel bieden ze certificaten van Comodo CA aan. Hier is een voorbeeld van hun aanbod zoals van december 2022:

Na het maken van een keuze, moet je de CSR uploaden die je in de vorige stap hebt gegenereerd. Je CA-provider zal waarschijnlijk ook een “Goedkeurder” stap hebben, die een validatieverzoek-e-mail zal sturen naar een adres in de WHOIS-record van je domein of naar een beheerder-type adres van het domein waarvoor je een certificaat aanvraagt.

Na goedkeuring van het certificaat wordt het certificaat naar de genoemde beheerder gemaild. Kopieer en bewaar ze op je server op dezelfde locatie waar je je privésleutel en CSR hebt gegenereerd. Noem het certificaat met de domeinnaam en een .crt-extensie, bijvoorbeeld example.com.crt, en noem het tussenliggende certificaat intermediate.crt.

Het certificaat is nu klaar om op je webserver te worden geïnstalleerd, maar je moet mogelijk eerst enkele wijzigingen aanbrengen in je firewall.

Stap 4 – Je Firewall bijwerken om HTTPS toe te staan

Als u de ufw firewall hebt ingeschakeld zoals aanbevolen door onze Ubuntu 22.04 installatiegids, moet u de instellingen aanpassen om HTTPS-verkeer toe te staan. Zowel Nginx als Apache registreren enkele profielen bij ufw bij installatie.

U kunt de huidige instellingen zien door het volgende te typen:

  1. sudo ufw status

Als u uitvoer ontvangt met alleen Nginx HTTP of Apache, dan is alleen HTTP-verkeer toegestaan naar de webserver:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Om ook HTTPS-verkeer toe te staan, moet u het Nginx Full of Apache Full-profiel toestaan en het overbodige HTTP-profiel verwijderen:

  1. sudo ufw allow 'Nginx Full'
  2. sudo ufw delete allow 'Nginx HTTP'

Dat zou een resultaat moeten opleveren zoals dit:

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)

In de laatste stap installeert u het certificaat.

Stap 5 – Het Installeren van een Certificaat Op Uw Server

Nadat u uw certificaat hebt verkregen van de door u gekozen CA, moet u het op uw webserver installeren. Dit houdt in dat u enkele SSL-gerelateerde regels toevoegt aan de configuratie van uw webserver software.

Deze handleiding behandelt het configureren van Nginx en Apache op Ubuntu 22.04, maar de meeste moderne Linux-distributies zullen op een vergelijkbare manier werken. Deze handleiding gaat ook uit van de volgende aannames:

  • De privésleutel, SSL-certificaat, en, indien van toepassing, de tussenliggende certificaten van de CA bevinden zich in een thuismap, op /home/sammy
  • De privésleutel heet example.com.key
  • Het SSL-certificaat heet example.com.crt
  • De CA-intermediatecertificaten die door uw provider worden geleverd, staan in een bestand genaamd intermediate.crt

Opmerking: In een productieomgeving moeten deze bestanden ergens worden opgeslagen waar alleen het webserverproces (meestal root) toegang toe heeft, en de privésleutel moet veilig worden bewaard. Bijvoorbeeld, Let’s Encrypt slaat de gegenereerde certificaten op in /etc/letsencrypt. Productievoorbeelden kunnen variëren door de complexiteit van multi-serverconfiguraties.

Nginx

Dit zijn de stappen om handmatig een SSL-certificaat op Nginx te implementeren.

Als uw CA alleen een tussenliggend certificaat heeft afgegeven, moet u een enkel “gekoppeld” certificaatbestand maken dat uw certificaat en de tussenliggende certificaten van de CA bevat.

Als uw certificaatbestand bijvoorbeeld example.com.crt heet, kunt u het cat-commando gebruiken om bestanden samen te voegen tot een gecombineerd bestand genaamd example.com.chained.crt:

  1. cat example.com.crt intermediate.crt > example.com.chained.crt

Gebruik nano of uw favoriete teksteditor, open uw standaard Nginx-serverblokbestand voor bewerken:

  1. sudo nano /etc/nginx/sites-enabled/default

Zoek de listen-richtlijn en wijzig deze naar listen 443 ssl:

/etc/nginx/sites-enabled/default
…
server {
    listen 443 ssl;
…

Volgende, vind de `server_name` directive binnen datzelfde server block, en zorg ervoor dat de waarde overeenkomt met de gemeenschappelijke naam van uw certificaat. Voeg ook de `ssl_certificate` en `ssl_certificate_key` directives toe om de paden van uw certificaat- en privésleutelbestanden op te geven:

/etc/nginx/sites-enabled/default
…
    server_name example.com;
    ssl_certificate /home/sammy/example.com.chained.crt;
    ssl_certificate_key /home/sammy/example.com.key;
…

Om alleen de meest veilige SSL-protocollen en ciphers toe te staan, voeg de volgende regels toe aan het bestand:

/etc/nginx/sites-enabled/default
…
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
…

Tot slot, om HTTP-verzoeken standaard naar HTTPS om te leiden, kunt u een extra server block toevoegen bovenaan het bestand:

/etc/nginx/sites-enabled/default
server {
    listen 80;
    server_name example.com;
    rewrite ^/(.*) https://example.com/$1 permanent;
}
…

Sla het bestand op en sluit het af. Als u `nano` gebruikt, druk op `Ctrl+X`, dan wanneer gevraagd, `Y` en vervolgens Enter.

Voor het herstarten van Nginx kunt u uw configuratie valideren door `nginx -t` te gebruiken:

  1. sudo nginx -t

Als er geen problemen zijn, herstart Nginx om SSL via HTTPS in te schakelen:

  1. sudo systemctl restart nginx

Test het door toegang te krijgen tot uw site via HTTPS, bijvoorbeeld `https://example.com`. U wilt ook proberen verbinding te maken via HTTP, bijvoorbeeld `http://example.com`, om te controleren of de omleiding goed werkt.

Apache

Dit zijn de stappen om handmatig een SSL-certificaat op Apache te implementeren.

Gebruik `nano` of uw favoriete teksteditor om uw standaard Apache virtuele hostbestand te openen voor bewerking:

  1. sudo nano /etc/apache2/sites-available/000-default.conf

Zoek de `` invoer en wijzig deze zodat uw webserver luistert op poort 443:

/etc/apache2/sites-available/000-default.conf
…
<VirtualHost *:443>
…

Volgende, voeg de ServerName directive toe, als deze nog niet bestaat:

/etc/apache2/sites-available/000-default.conf
…
ServerName example.com

Voeg vervolgens de volgende regels toe om uw certificaat- en sleutelpaden aan te geven:

/etc/apache2/sites-available/000-default.conf
…
SSLEngine on
SSLCertificateFile /home/sammy/example.com.crt
SSLCertificateKeyFile /home/sammy/example.com.key
SSLCACertificateFile /home/sammy/intermediate.crt

Op dit punt is uw server geconfigureerd om alleen naar HTTPS (poort 443) te luisteren, dus verzoeken naar HTTP (poort 80) worden niet bediend. Om HTTP-verzoeken naar HTTPS om te leiden, voegt u het volgende bovenaan het bestand toe (vervang de naam op beide plaatsen):

/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
   ServerName example.com
   Redirect permanent / https://example.com/
</VirtualHost>
…

Sla het bestand op en sluit het af. Als u nano gebruikt, drukt u op Ctrl+X, dan wanneer gevraagd, Y en vervolgens Enter.

Activeer de Apache SSL-module door dit commando uit te voeren:

  1. sudo a2enmod ssl

Herstart nu Apache om de nieuwe configuratie te laden en TLS/SSL over HTTPS in te schakelen.

  1. sudo systemctl restart apache2

Test het door toegang te krijgen tot uw site via HTTPS, bijv. https://example.com. U wilt ook proberen verbinding te maken via HTTP, bijv. http://example.com, om ervoor te zorgen dat de omleiding goed werkt.

Conclusie

In deze tutorial hebt u geleerd hoe u kunt bepalen wanneer u mogelijk een SSL-certificaat van een commerciële CA moet aanschaffen, en hoe u de beschikbare opties kunt vergelijken en contrasteren. U hebt ook geleerd hoe u Nginx of Apache kunt configureren voor HTTPS-ondersteuning, en hoe u hun configuraties kunt aanpassen voor productie.

Hierna kunt u meer lezen over andere SSL-gebruiksscenario’s, zoals bij het werken met load balancers.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-an-ssl-certificate-from-a-commercial-certificate-authority