Android

Veilige apache met laten we coderen op centos 8

APACHE STORM | ARMA 3 - Cinematic Mission

APACHE STORM | ARMA 3 - Cinematic Mission

Inhoudsopgave:

Anonim

Let's Encrypt is een gratis, geautomatiseerde en open certificaatautoriteit ontwikkeld door de Internet Security Research Group (ISRG) die gratis SSL-certificaten levert.

Certificaten uitgegeven door Let's Encrypt worden vertrouwd door alle belangrijke browsers en zijn 90 dagen geldig vanaf de uitgiftedatum.

In deze zelfstudie wordt uitgelegd hoe u een gratis Let's Encrypt SSL-certificaat installeert op CentOS 8 met Apache als webserver. We gebruiken de certbot-tool om de certificaten te verkrijgen en te vernieuwen.

voorwaarden

Zorg ervoor dat aan de volgende voorwaarden is voldaan voordat u doorgaat:

  • Zorg dat een domeinnaam verwijst naar het IP-adres van uw openbare server. We gebruiken example.com Apache is geïnstalleerd en wordt op uw server uitgevoerd met een virtuele host die is geconfigureerd voor uw domein. De poorten 80 en 443 zijn geopend in uw firewall.

Installeer de volgende pakketten die vereist zijn voor een SSL-gecodeerde webserver:

sudo dnf install mod_ssl openssl

Wanneer het mod_ssl-pakket is geïnstalleerd, moet het een zelfondertekende sleutel en certificaatbestanden maken voor de localhost. Als de bestanden niet automatisch worden gemaakt, kunt u ze maken met de opdracht openssl :

sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \ -out /etc/pki/tls/certs/localhost.crt \ -keyout /etc/pki/tls/private/localhost.key

Certbot installeren

Certbot is een gratis opdrachtregelprogramma dat het proces vereenvoudigt voor het verkrijgen en vernieuwen van Let's Encrypt SSL-certificaten van en het automatisch inschakelen van HTTPS op uw server.

Het certbot-pakket is niet inbegrepen in de standaard CentOS 8-opslagplaatsen, maar kan worden gedownload van de website van de leverancier.

Voer de volgende wget opdracht uit als root- of sudo-gebruiker om het certbot-script te downloaden naar de map /usr/local/bin :

sudo wget -P /usr/local/bin

Nadat de download is voltooid, maakt u het bestand uitvoerbaar:

sudo chmod +x /usr/local/bin/certbot-auto

Genereer Strong Dh (Diffie-Hellman) Group

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

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

U kunt de grootte wijzigen tot 4096 bits, maar het genereren kan 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 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 de installatie eenvoudiger te maken, gaan we alle HTTP-aanvragen voor .well-known/acme-challenge /var/lib/letsencrypt aan een enkele map, /var/lib/letsencrypt .

Voer de volgende opdrachten uit om de map te maken en schrijfbaar te maken voor de Apache-server.

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

Om dubbele code te voorkomen en de configuratie beter onderhoudbaar te maken, maakt u de volgende twee configuratiefragmenten:

/etc/httpd/conf.d/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/httpd/conf.d/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM # Requires Apache 2.4.36 & OpenSSL 1.1.1 SSLProtocol -all +TLSv1.3 +TLSv1.2 SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1 # Older versions # 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. Het maakt OCSP nieten, HTTP Strict Transport Security (HSTS), Dh-sleutel mogelijk en dwingt weinig op beveiliging gerichte HTTP-headers af.

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

sudo systemctl reload

Nu kunt u het certbot-script uitvoeren met de webroot-plug-in en de SSL-certificaatbestanden ophalen:

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

Bij succes 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 2020-01-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - 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 alles is ingesteld, kunt u de configuratie van uw virtuele domeinhost als volgt bewerken:

/etc/httpd/conf.d/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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

De bovenstaande configuratie dwingt HTTPS en wordt omgeleid van de www naar de niet-www-versie. Het maakt ook HTTP / 2 mogelijk, waardoor uw sites sneller en robuuster worden. Voel je vrij om de configuratie aan te passen aan jouw behoeften.

Start de Apache-service opnieuw:

sudo systemctl restart

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, maken we een cronjob die twee keer per dag wordt uitgevoerd en automatisch elk certificaat 30 dagen vóór de vervaldatum vernieuwt.

Voer de volgende opdracht uit om een ​​nieuwe cronjob te maken waarmee het certificaat wordt vernieuwd en Apache opnieuw wordt gestart:

echo "0 0, 12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload httpd\"" | sudo tee -a /etc/crontab > /dev/null

Om het vernieuwingsproces te testen, gebruikt u de opdracht certbot gevolgd door de schakelaar --dry-run :

sudo /usr/local/bin/certbot-auto renew --dry-run

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

Conclusie

In deze tutorial hebben we het gehad over het gebruik van de Let's Encrypt-clientcertificbot op CentOS om SSL-certificaten voor uw domeinen te verkrijgen. Je hebt ook laten zien hoe je Apache configureert om de certificaten te gebruiken en een cronjob in te stellen voor automatische certificaatvernieuwing.

Raadpleeg de Certbot-documentatie voor meer informatie over het Certbot-script.

apache centos laten we certbot ssl coderen