Android

Veilige apache met laten we coderen op debian 9

APACHE STORM | ARMA 3 - Cinematic Mission

APACHE STORM | ARMA 3 - Cinematic Mission

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 zijn 90 dagen geldig vanaf de uitgiftedatum en worden tegenwoordig door alle belangrijke browsers vertrouwd.

Deze zelfstudie leidt u door het proces van het verkrijgen van een gratis Let's Encrypt met behulp van de certbot-tool op Debian 9. We zullen ook laten zien hoe u Apache configureert om het nieuwe SSL-certificaat te gebruiken en HTTP / 2 in te schakelen.

voorwaarden

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

  • Aangemeld als een gebruiker met sudo-rechten. Heb een domeinnaam die naar het openbare IP-adres van uw server verwijst. We zullen example.com gebruiken. Apache geïnstalleerd. Een virtuele apache-host voor uw domein. U kunt deze instructies volgen voor details over hoe u er een maakt.

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 kan automatiseren. Het certbot-pakket is inbegrepen in de standaard Debian-opslagplaatsen.

Werk de pakkettenlijst bij en installeer het certbot-pakket met de volgende opdrachten:

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.

Om een ​​nieuwe set van 2048 bit DH-parameters te genereren, gaat u als volgt te werk:

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 ons domein te verkrijgen, gaan we de Webroot-plug-in gebruiken die werkt door een tijdelijk bestand te maken voor het valideren van het aangevraagde 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 de HTTP / 2-module in, die uw sites sneller en robuuster maakt:

sudo a2enmod

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

sudo a2enconf letsencrypt sudo a2enconf ssl-params

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

sudo systemctl reload apache2

Gebruik de Certbot-tool met de webroot-plug-in om de SSL-certificaatbestanden te verkrijgen:

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: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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

Open uw website 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"

Gebruik de certbot --dry-run schakelaar om het vernieuwingsproces te testen:

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 verkrijgen. 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 debian laten we certbot ssl coderen

Dit bericht maakt deel uit van de LAMP Stack installeren op Debian 9-serie.

Andere berichten in deze serie:

• Hoe Apache op Debian 9 te installeren • Hoe PHP op Debian 9 te installeren • Hoe Apache Virtual Hosts op Debian 9 in te stellen • Hoe MariaDB op Debian 9 te installeren • Veilige Apache met Let's Encrypt op Debian 9