In de gids van vandaag zullen we bespreken hoe je een zelfondertekend SSL-certificaat op Linux kunt genereren en hoe je ze in Apache kunt implementeren. SSL wordt steeds belangrijker naarmate het internet populairder wordt. Nu gratis Let’s Encrypt-certificaten een handelswaar worden dat iedereen kan gebruiken, is er voor niemand een reden om SSL niet te gebruiken – om nog maar te zwijgen van de voordelen in de zoekresultaten en het feit dat browsers en zoekmachines uw site zullen vertrouwen.
U kunt echter ook uw eigen zelfondertekende SSL-certificaat genereren voor privégebruik op uw server. Een belangrijke reden om dit te doen, is codering. Hoewel uw persoonlijk certificaat niets betekent voor browsers en bezoekers nog steeds een waarschuwingsbericht krijgen als ze uw site rechtstreeks bezoeken, kunt u er in ieder geval zeker van zijn dat u beschermd bent tegen “man-in-the-middle” -aanvallen. Een zelfondertekend certificaat is een goede eerste stap als u gewoon dingen op uw server test en misschien nog geen domeinnaam heeft.
Laten we beginnen met onze stapsgewijze procedure voor hoe je een zelfondertekend SSL-certificaat op Linux aanmaakt.
Inhoudsopgave
Stap 1: Maak een RSA-keypair
De eerste stap bij het genereren van uw eigen zelfondertekende SSL-certificaat is om het “openssl” -pakket op Linux / CentOS te gebruiken om een RSA-sleutelpaar te maken. Om dit te doen, moet u ervoor zorgen dat u het pakket heeft geïnstalleerd. Als dit niet het geval is, installeer het dan met dit commando:
sudo yum install openssl
De kans is groot dat je het al op je systeem hebt staan – het zou nu hoe dan ook moeten worden geïnstalleerd. Zodra is bevestigd dat het pakket op uw systeem is geïnstalleerd, genereert u het sleutelpaar met behulp van het volgende commando:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
Dit commando gebruikt 2048 bit encryptie en voert een bestand uit met de naam keypair.key
, zoals hier weergegeven:
Zoals u kunt zien, is de sleutel gegenereerd en in de huidige map geplaatst.
Stap 2: Pak de privésleutel uit in de “httpd” -map
De /etc/httpd
-map is waar het besturingssysteem alle belangrijke SSL-gerelateerde items bewaart. Laten we eerst een nieuwe map maken om al onze bestanden in te bewaren gerelateerd aan onze privésleutel:
sudo mkdir /etc/httpd/httpscertificate
We hebben de map httpscertificate
genoemd en zullen ernaar verwijzen met die naam voor alle andere commandoregelvoorbeelden. U kunt de map een naam geven die u maar wilt.
Om de privésleutel uit het sleutelpaarbestand te extraheren dat we zojuist hebben gemaakt, typt u llowing:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Vervang de vetgedrukte sectie door het IP-adres van uw eigen server. Of als u toegang heeft tot uw site met een domeinnaam, kunt u die ook gebruiken.
Hierdoor wordt een .key
-bestand gemaakt in de map die we hebben net gemaakt. Wanneer dit proces is voltooid, kunnen we het originele sleutelpaarbestand verwijderen:
rm keypair.key
Stap 3: een CSR-bestand (Certificate Signing Request) maken
Met de sleutel kunnen we een speciaal .csr
-bestand maken dat we zelf kunnen ondertekenen of indienen bij een “Certificaatautoriteit”. Het heeft een gestandaardiseerd formaat en kan eenvoudig worden gegenereerd met onze sleutel uit de vorige stap. Om het aan te maken, typ je het volgende commando:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Vervang opnieuw de vetgedrukte items door het IP-adres of de domeinnaam die je in stap 2 hebt gekozen. Wanneer u deze opdracht uitvoert, zal de tool u om enkele van uw persoonlijke gegevens vragen, zoals uw locatie en organisatienaam:
Een CA (afkorting van Certificate Authority) kan deze details gebruiken om te verifiëren dat je inderdaad bent wie je zegt dat je bent. Probeer de velden zo veel mogelijk informatie in te vullen.
Als u klaar bent met het invoeren van deze details, zal de tool zijn werk afronden en een .csr
bestand in de directory die we speciaal voor dit doel hebben gemaakt.
Stap 4: het certificaat “.crt” -bestand maken
Met de CSR kunnen we het definitieve certificaatbestand maken als volgt. We zullen nu onze .csr
en .key
bestanden gebruiken om ons .crt
bestand te maken:
Hiermee wordt een .crt
-bestand gemaakt op de locatie met al onze andere bestanden. We weten nu hoe we ons zelfondertekende SSL-certificaat moeten genereren. Hier is een screenshot van de laatste bestanden in onze beveiligingsmap:
Nu moeten we Apache vertellen waar deze bestanden zijn.
Stap 5: Apache configureren om de bestanden te gebruiken
Het enige dat we nu hoeven te doen is Apache laten zien waar onze gegenereerde zelfondertekende certificaten zijn. Eerst moeten we het mod_ssl
-pakket installeren met het commando:
sudo yum install mod_ssl
Als je klaar bent, zal dit een ssl.conf
-bestand in de map /etc/httpd/conf.d/
. We moeten dit standaardbestand wijzigen. Gebruik je favoriete teksteditor:
sudo vi /etc/httpd/conf.d/ssl.conf
Scroll nu naar beneden tot je de regels vindt die beginnen met:
SSLCertificateFileSSL CertificateKeyFile
Wijzig de standaardpaden met de paden naar respectievelijk het certificaatbestand en het sleutelbestand, zoals hier getoond:
Sla uw wijzigingen op. Herstart Apache nu gewoon met:
sudo apachectl restart
En je bent klaar! Wanneer Apache opnieuw opstart, wordt het geconfigureerd om SSL-verbindingen toe te staan door de gegenereerde zelfondertekende SSL-certificaten te gebruiken.
Wanneer u de volgende keer verbinding maakt met uw IP-adres via HTTPS, wordt u gewaarschuwd dat dit niet het geval is. een vertrouwd certificaat:
Dat is oké. We weten dit sinds we het zelf hebben ondertekend! Ga gewoon verder en u wordt naar de eigenlijke website geleid:
Hier kunt u zien dat het het certificaat gebruikt dat we hebben gemaakt. Het heeft weinig zin voor iemand anders die uw site bezoekt, aangezien zij uw identiteit niet kunnen verifiëren. Maar je weet dat het veilig is, en bovendien dat het versleuteld is. No man in the middle-aanvallen!
U weet nu hoe u uw eigen zelfondertekende SSL-certificaten genereert en implementeert op uw Apache-webserver.
Als u een van onze beheerde VPS-hostingklanten, we kunnen dit allemaal voor u doen zonder extra kosten. Neem gewoon contact op met onze systeembeheerders en zij zullen zo snel mogelijk op uw verzoek reageren.