Android

Veilige apache met laten we coderen op ubuntu 18.04

End to end Data Governance with Apache Avro and Atlas

End to end Data Governance with Apache Avro and Atlas

Inhoudsopgave:

Anonim

Let's Encrypt is een certificeringsinstantie die is gemaakt door de Internet Security Research Group (ISRG). Het biedt gratis SSL-certificaten via een volledig geautomatiseerd proces dat is ontworpen om het handmatig maken, valideren, installeren en vernieuwen van certificaten te elimineren.

Certificaten uitgegeven door Let's Encrypt worden tegenwoordig door alle belangrijke browsers vertrouwd.

In deze zelfstudie geven we stapsgewijze instructies over hoe u uw Apache kunt beveiligen met Let's Encrypt met behulp van de certbot-tool op Ubuntu 18.04.

voorwaarden

Zorg ervoor dat u aan de volgende voorwaarden hebt voldaan voordat u doorgaat met deze zelfstudie:

  • Domeinnaam die verwijst naar het IP van uw openbare server. We gebruiken example.com . Apache is geïnstalleerd met een virtuele apache-host voor uw domein.

Certbot installeren

Certbot is een volledig functionele en eenvoudig te gebruiken tool die de taken voor het verkrijgen en vernieuwen van Let's Encrypt SSL-certificaten en het configureren van webservers kan automatiseren. Het certbot-pakket is opgenomen in de standaard Ubuntu-opslagplaatsen.

Werk de pakkettenlijst bij en installeer het certbot-pakket:

sudo apt update sudo apt install certbot

Genereer Strong Dh (Diffie-Hellman) Group

Diffie-Hellman-sleuteluitwisseling (DH) is een methode voor het veilig uitwisselen van cryptografische sleutels via een onbeveiligd communicatiekanaal. We gaan een nieuwe set 2048 bit DH-parameters genereren om de beveiliging te versterken:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Als u wilt, kunt u de grootte wijzigen tot 4096 bits, maar in dat geval kan het genereren meer dan 30 minuten duren, afhankelijk van de entropie van het systeem.

Het verkrijgen van een Let's Encrypt SSL-certificaat

Om een ​​SSL-certificaat voor het domein te verkrijgen, gaan we de Webroot-plug-in gebruiken die werkt door een tijdelijk bestand te maken voor het valideren van het gevraagde domein in de ${webroot-path}/.well-known/acme-challenge . De Let's Encrypt-server doet HTTP-aanvragen bij het tijdelijke bestand om te valideren dat het aangevraagde domein wordt opgelost naar de server waarop certbot wordt uitgevoerd.

Om het eenvoudiger te maken, gaan we alle HTTP-aanvragen voor .well-known/acme-challenge /var/lib/letsencrypt aan een enkele map, /var/lib/letsencrypt .

De volgende opdrachten maken de map en maken deze beschrijfbaar voor de Apache-server.

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

Maak de volgende twee configuratiefragmenten om dubbele code te voorkomen:

/etc/apache2/conf-available/letsencrypt.conf

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS /etc/apache2/conf-available/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

Het bovenstaande fragment gebruikt de chippers die worden aanbevolen door Cipherli.st, maakt OCSP nieten, HTTP Strict Transport Security (HSTS) mogelijk en dwingt weinig op beveiliging gerichte HTTP-headers af.

Voordat u de configuratiebestanden inschakelt, moet u controleren of zowel mod_ssl als mod_headers zijn ingeschakeld door:

sudo a2enmod ssl sudo a2enmod headers

Schakel vervolgens de SSL-configuratiebestanden in door de volgende opdrachten uit te voeren:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Schakel de HTTP / 2-module in, die uw sites sneller en robuuster maakt:

sudo a2enmod

Laad de Apache-configuratie opnieuw om de wijzigingen door te voeren:

sudo systemctl reload apache2

Nu kunnen we de Certbot-tool met de webroot-plug-in uitvoeren en de SSL-certificaatbestanden verkrijgen door te typen:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Als het SSL-certificaat met succes is verkregen, zal certbot het volgende bericht afdrukken:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-10-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

Nu u de certificaatbestanden hebt, kunt u de configuratie van uw virtuele domeinhost als volgt bewerken:

/etc/apache2/sites-available/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration

Met de bovenstaande configuratie dwingen we HTTPS en verwijzen we door van www naar een niet-www-versie. Voel je vrij om de configuratie aan te passen aan jouw behoeften.

Laad de Apache-service opnieuw om de wijzigingen door te voeren:

sudo systemctl reload apache2

U kunt nu uw website openen met https:// en u ziet een groen slotpictogram.

Automatisch vernieuwen Let's Encrypt SSL-certificaat

De certificaten van Let's Encrypt zijn 90 dagen geldig. Om de certificaten automatisch te verlengen voordat ze verlopen, maakt het certbot-pakket een cronjob die twee keer per dag wordt uitgevoerd en automatisch elk certificaat 30 dagen vóór de vervaldatum vernieuwt.

Zodra het certificaat is vernieuwd, moeten we ook de Apache-service opnieuw laden. Voeg --renew-hook "systemctl reload apache2" aan het bestand --renew-hook "systemctl reload apache2" zodat het er als volgt uitziet:

/etc/cron.d/certbot

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"

Om het vernieuwingsproces te testen, kunt u de certbot --dry-run schakelaar gebruiken:

sudo certbot renew --dry-run

Als er geen fouten zijn, betekent dit dat het vernieuwingsproces succesvol was.

Conclusie

In deze zelfstudie hebt u de Let's Encrypt-clientcertificbot gebruikt om SSL-certificaten voor uw domein te downloaden. U hebt ook Apache-fragmenten gemaakt om dubbele code te voorkomen en Apache geconfigureerd om de certificaten te gebruiken. Aan het einde van de zelfstudie hebt u een cronjob ingesteld voor automatische certificaatverlenging.

apache ubuntu laten we certbot ssl versleutelen

Dit bericht maakt deel uit van de how-to-install-lamp-stack-on-ubuntu-18-04-serie.

Andere berichten in deze serie:

• Hoe Apache op Ubuntu 18.04 te installeren • Hoe Apache virtuele hosts op Ubuntu 18.04 in te stellen • Veilige Apache met Let's Encrypt op Ubuntu 18.04 • Hoe MySQL op Ubuntu 18.04 te installeren • PHP op Ubuntu 18.04 te installeren