Introductie
In deze tutorial leer hoe je TLS / SSL-certificaten op Apache webserver met CentOS 7 kunt installeren. Wanneer je klaar bent, wordt al het verkeer tussen de server en de client versleuteld en beveiligd. Dit is een standaard handeling voor het online beveiligen van e-commerce websites en andere financiële diensten
Vereisten
Voordat je begint met de installatie heb je het volgende nodig:
- SSH toegang met root rechten of een gebruiker met sudo rechten op CentOS 6 VPS
- Apache webserver met een correct geconfigureerde domein en vhost.
Stap 1: Installeer python en ssl dependencies
CentOS 6.x ( CentOS 6.5, 6.6, 6.7 etc ) ondersteunt Python 2.6 terwijl Let’s Encrypt alleen Python 2.7+ ondersteunt. Maar het installeren van Python 2.7 in CentOS 6.x is heel eenvoudig.
Voer na jouw SSH login op CentOS 6 server het onderstaande commando uit:
yum install epel-release mod_ssl rpm -ivh https://rhel6.iuscommunity.org/ius-release.rpm yum --enablerepo=ius install git python27 python27-devel python27-pip python27- setuptools python27-virtualenv -y
[Houd er rekening mee dat de bovenstaande 3 commando’s alleen voor CentOS 6 en 6.x distros zijn.]
Stap 2: Let’s Encrypt installeren
We gaan nu het Let’s Encrypt-auto wrapper-script gebruiken, dat sommige afhankelijkheden van het besturingssysteem verkrijgt en andere in een virtuele python-omgeving plaatst. Voer het onderstaande commando uit:
cd letsencrypt
git clone https://github.com/letsencrypt/letsencrypt
Na een aantal keren moet je in staat zijn om de client uit te voeren.
Stap 3: Let’s Encrypt client uitvoeren
Je kunt bijvoorbeeld een certificaat verkrijgen voor jouw domein door Apache plugin te gebruiken. Voor het verkrijgen en installeren van de certificaten kun je het onderstaande commando uitvoeren:
./letsencrypt-auto --apache -d example.com -d www.example.com
Hoewel de Apache-plug-in wel geschikt is om certificaten te verkrijgen en te installeren, kreeg ik de volgende foutmelding: “The apache plugin is not working; there may be problems with your existing configuration.” Dit lijkt een probleem te zijn met Apache 2.2 en totdat het is opgelost, kunt je de webroot-authenticatiemethode gebruiken als:
./letsencrypt-auto certonly --webroot -w /var/www/example/ -d example.com
Na een aantal keren zullen de certificaten klaar zijn voor gebruik.
BELANGRIJK! Het eerste domein moet een basisdomein zijn, in dit voorbeeld is dit example.com. Tijdens de installatie van het certificaat krijg je instructies te zien zodat je de certificaatgegevens kunt aanpassen.
Stap 4: Configureer de SSL certificaten
In de Let’s Encrypt configuratie directory van “/etc/letsencrypt/live/the .pem zijn de bestandend als volgt:
privkey.pem: Privésleutel voor het certificaat.
Zorg ervoor dat je deze sleutel met niemand deelt ook niet met de Let’s Encrypt ontwikkelaars!
cert.pem: Alleen een certificaat voor de server. Dit is wat Apache nodig heeft voor SSLCertificateFile.
chain.pem: Alle certificaten die door de browser moeten worden geleverd, behalve servercertificaten, d.w.z. alleen root- en tussencertificaten. Dit is wat Apache nodig heeft voor SSLCertificateChainFile.
fullchain.pem: Alle certificaten, inclusief servercertificaat. Dit is een aaneenschakeling van chain.pem en cert.pem.
Nu we weten wat de bestanden inhouden, kunnen we onze VirtualHost configureren om SSL te gebruiken met onze nieuwe certs. Wijzig de volgende regels in de SSL-configuratie van jouw Apache-virtualhost:
Herstart nu Apache je zult zien dat de SSL werkt.
Stap 5: Automatische verlenging instellen
Let’s Encrypt certificaten zijn slechts 90 dagen geldig maar het is raadzaam om dit binnen 75 dagen te vernieuwen om eventuele problemen te voorkomen. Je kunt hiervoor dit script dowloaden the autole.sh script via GitHub (https://github.com/damiadev/autole/). De volgende taken worden geautomatiseerd:
- Controleert de vervaldatum
- Controleert of de mappen juist zijn toegewezen
- Waarschuwt de beheerder om het certificaat te vernieuwen
Je kunt nu de certificaten van bepaalde domeinen vernieuwen met:
./autole.sh --renew-all
Om het verlengingsproces te automatiseren, kun je een cronjob instellen. Kopieer eerst deze “autole.sh” naar / usr / local / sbin / en open vervolgens de crontab en bewerk het door het onderstaande commando uit te voeren:
crontab -e
Deze taak kan elke maandag om middernacht veilig uitgevoerd worden:
0 0 * * 1 /usr/local/sbin/autole.sh --renew-all >> /var/log/sslrenew.log
De uitvoer van het script wordt doorgestuurd naar het bestand /var/log/sslrenew.log file.
Conclusie
Gefeliciteerd, je hebt zojuist jouw Apache webserver beveiligd. Vanaf nu is al het verkeer tussen jouw domeinwebserver en de client beveiligd. Je kunt er nu zeker van zijn dat niemand de communicatie kan onderscheppen en cruciale informatie kan wijzigen of stelen.
Geef een reactie