Apache near Howz-E-Madad for Op Spinarwa, 2009 Part 2
Innholdsfortegnelse:
- Forutsetninger
- Installer Certbot
- Generer Strong Dh (Diffie-Hellman) -gruppen
- Innhenting av et Let's Encrypt SSL-sertifikat
- Forny automatisk Let's Encrypt SSL-sertifikat
- Konklusjon
Let's Encrypt er en gratis, automatisert og åpen sertifikatmyndighet utviklet av Internet Security Research Group (ISRG) som gir gratis SSL-sertifikater.
Sertifikater utstedt av Let's Encrypt er klarert av alle større nettlesere og er gyldige i 90 dager fra utstedelsesdatoen.
Denne veiledningen forklarer hvordan du installerer et gratis Let's Encrypt SSL-sertifikat på CentOS 8 som kjører Apache som en webserver. Vi bruker certbot-verktøyet til å skaffe og fornye sertifikatene.
Forutsetninger
Forsikre deg om at følgende forutsetninger er oppfylt før du fortsetter:
- Har et domenenavn som peker til den offentlige server-IP-en. Vi bruker
example.com
Apache er installert og kjører på serveren din med en virtuell vert konfigurert for ditt domene. Portene 80 og 443 er åpne i brannmuren.
Installer følgende pakker som er nødvendige for en SSL-kryptert webserver:
sudo dnf install mod_ssl openssl
Når mod_ssl-pakken er installert, bør den opprette en selvsignert nøkkel og sertifikatfiler for localhost. Hvis filene ikke opprettes automatisk, kan du opprette dem ved å bruke kommandoen
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
Installer Certbot
Certbot er et gratis kommandolinjeverktøy som forenkler prosessen for å skaffe og fornye Let's Encrypt SSL-sertifikater fra og automatisk aktivere HTTPS på serveren din.
Certbot-pakken er ikke inkludert i standard CentOS 8-depotene, men den kan lastes ned fra leverandørens nettsted.
Kjør følgende
wget
kommando som root- eller sudo-bruker for å laste ned certbot-skriptet til
/usr/local/bin
katalogen:
sudo wget -P /usr/local/bin
Når nedlastingen er fullført, gjør filen kjørbar:
sudo chmod +x /usr/local/bin/certbot-auto
Generer Strong Dh (Diffie-Hellman) -gruppen
Diffie – Hellman nøkkelutveksling (DH) er en metode for sikker utveksling av kryptografiske nøkler over en usikret kommunikasjonskanal. Generer et nytt sett med 2048 bit DH-parametere for å styrke sikkerheten:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Du kan endre størrelsen opp til 4096 biter, men generasjonen kan ta mer enn 30 minutter avhengig av systemets entropi.
Innhenting av et Let's Encrypt SSL-sertifikat
For å få et SSL-sertifikat for domenet, bruker vi Webroot-plugin som fungerer ved å lage en midlertidig fil for å validere det forespurte domenet i
${webroot-path}/.well-known/acme-challenge
katalogen. Let's Encrypt-serveren sender HTTP-forespørsler til den midlertidige filen for å bekrefte at det forespurte domenet løses til serveren der certbot kjører.
For å gjøre oppsettet enklere skal vi kartlegge alle HTTP-forespørsler for
.well-known/acme-challenge
til en enkelt katalog,
/var/lib/letsencrypt
.
Kjør følgende kommandoer for å opprette katalogen og gjøre den skrivbar for Apache-serveren.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
For å unngå duplisering av kode og gjøre konfigurasjonen mer vedlikeholdbar, oppretter du følgende to konfigurasjonsutdrag:
/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
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"
Utdraget over bruker flishuggerne som er anbefalt av Cipherli.st. Det muliggjør OCSP-stifting, HTTP Strict Transport Security (HSTS), Dh-nøkkel, og håndhever få sikkerhetsfokuserte
Last inn Apache-konfigurasjonen på nytt for at endringene skal tre i kraft:
sudo systemctl reload
Nå kan du kjøre certbot-script med webroot-plugin og hente SSL-sertifikatfilene:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Etter suksess vil certbot skrive ut følgende melding:
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:
Nå som alt er satt opp, kan du redigere konfigurasjonen av virtuell domene for domene slik:
/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
Konfigurasjonen over tvinger HTTPS og omdirigerer fra www til ikke-www versjon. Det muliggjør også HTTP / 2, som vil gjøre nettstedene dine raskere og mer robuste. Du kan velge å justere konfigurasjonen etter dine behov.
Start Apache-tjenesten på nytt:
sudo systemctl restart
Du kan nå åpne nettstedet ditt ved å bruke
https://
, og du vil merke et grønt låseikon.
Forny automatisk Let's Encrypt SSL-sertifikat
Let's Encrypts sertifikater er gyldige i 90 dager. For å fornye sertifikatene automatisk før de utløper, oppretter vi en cronjob som kjøres to ganger om dagen og automatisk fornyer alle sertifikater 30 dager før utløpet.
Kjør følgende kommando for å lage en ny cronjob som vil fornye sertifikatet og starte Apache på nytt:
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
For å teste fornyelsesprosessen bruker du certbot-kommandoen etterfulgt av -
--dry-run
bryteren:
sudo /usr/local/bin/certbot-auto renew --dry-run
Hvis det ikke er noen feil, betyr det at fornyelsesprosessen var vellykket.
Konklusjon
I denne opplæringen snakket vi om hvordan du bruker Let's Encrypt-klientens certbot på CentOS for å skaffe SSL-sertifikater for domenene dine. Du har også vist deg hvordan du konfigurerte Apache til å bruke sertifikatene og sette opp en cronjob for automatisk sertifikatfornyelse.
Hvis du vil lære mer om Certbot-skriptet, kan du gå til Certbot-dokumentasjonen.
apache centos la oss kryptere certbot sslSikre nginx med la oss kryptere på centos 7

I denne opplæringen gir vi trinnvise instruksjoner om hvordan du sikrer din Nginx med Let's Encrypt ved å bruke certbot-verktøyet på CentOS 7
Sikker apache med la oss kryptere på centos 7

I denne opplæringen vil vi dekke trinnene som er nødvendige for å installere et gratis Let's Encrypt SSL-sertifikat på en CentOS 7-server som kjører Apache som en webserver.
Sikre nginx med la oss kryptere på centos 8

I denne opplæringen vil vi gi trinnvise instruksjoner om hvordan du installerer et gratis Let's Encrypt SSL-sertifikat på CentOS 8 som kjører Nginx som en webserver. Vi viser også hvordan du konfigurerer Nginx til å bruke SSL-sertifikatet og aktivere HTTP / 2.