Android

Secure apache sa pag-encrypt sa debian 9

Install SSL HTTPs Let's Encrypt pada Apache di Linux Debian Server

Install SSL HTTPs Let's Encrypt pada Apache di Linux Debian Server

Talaan ng mga Nilalaman:

Anonim

Ang Encrypt ay isang awtoridad sa sertipiko na nilikha ng Internet Security Research Group (ISRG). Nagbibigay ito ng mga libreng sertipiko ng SSL sa pamamagitan ng isang ganap na awtomatikong proseso na idinisenyo upang maalis ang manu-manong paggawa ng sertipiko, pagpapatunay, pag-install, at pag-update.

Ang mga sertipiko na inilabas ng Let Encrypt ay may bisa para sa 90 araw mula sa petsa ng isyu at pinagkakatiwalaan ng lahat ng mga pangunahing browser ngayon.

Tutulungan ka ng tutorial na ito sa pamamagitan ng proseso ng pagkuha ng isang libreng Pag-encrypt na Gumagamit ng tool ng sertbot sa Debian 9. Ipapakita din namin kung paano i-configure ang Apache upang magamit ang bagong sertipiko ng SSL at paganahin ang HTTP / 2.

Mga kinakailangan

Tiyakin na nakamit mo ang sumusunod na mga kinakailangan bago magpatuloy sa tutorial na ito:

  • Naka-log in bilang isang gumagamit na may mga pribilehiyo ng sudo.Magkaroon ng isang pangalan ng domain na tumuturo sa iyong server ng server ng publiko ng IP. Gagamitin namin ang example.com .Apache na naka-install. Isang apache virtual host para sa iyong domain. Maaari mong sundin ang mga tagubiling ito para sa mga detalye sa kung paano lumikha ng isa.

I-install ang Certbot

Ang Certbot ay isang ganap na itinampok at madaling gamitin na tool na maaaring awtomatiko ang mga gawain para sa pagkuha at pag-update ng Mga sertipiko ng SSL. Ang sertipikong pakete ay kasama sa default na mga repositibong Debian.

I-update ang listahan ng mga pakete at i-install ang package ng sertbot gamit ang mga sumusunod na utos:

sudo apt update sudo apt install certbot

Bumuo ng Malakas na Dh (Diffie-Hellman) Grupo

Ang diffie-Hellman key exchange (DH) ay isang paraan ng ligtas na pagpapalitan ng mga key ng cryptographic sa isang hindi ligtas na channel ng komunikasyon.

Upang makabuo ng isang bagong hanay ng mga 2048 bit na mga parameter ng DH ay tumatakbo:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Kung gusto mo, maaari mong baguhin ang laki hanggang sa 4096 bits, ngunit sa kasong iyon, ang henerasyon ay maaaring tumagal ng higit sa 30 minuto depende sa entropy ng system.

Pagkuha ng isang I-encrypt na SSL sertipiko

Upang makakuha ng isang SSL sertipiko para sa aming domain, gagamitin namin ang plugin ng Webroot na gumagana sa pamamagitan ng paglikha ng isang pansamantalang file para sa pagpapatunay ng hiniling na domain sa ${webroot-path}/.well-known/acme-challenge . Ginagawa ng server ng Let's Encrypt ang mga kahilingan ng HTTP sa pansamantalang file upang mapatunayan na ang hiniling na domain ay nagpasiya sa server kung saan tumatakbo ang sertbot.

Upang gawing mas simple ay i-map namin ang lahat ng mga kahilingan sa HTTP para sa .well-known/acme-challenge sa isang solong direktoryo, /var/lib/letsencrypt .

Ang sumusunod na mga utos ay lumilikha ng direktoryo at gawin itong nakasulat para sa Apache server.

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

Upang maiwasan ang pagdoble ng code lumikha ng mga sumusunod na dalawang snippet ng pagsasaayos:

/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"

Ang snippet sa itaas ay gumagamit ng mga tsinelas na inirerekomenda ng Cipherli.st, nagbibigay-daan sa OCSP Stapling, HTTP Strict Transport Security (HSTS) at nagpapatupad ng kaunting seguridad ‑ na nakatuon ang mga header ng

Bago paganahin ang mga file ng pagsasaayos, siguraduhin na kapwa mod_ssl parehong mod_ssl at mod_headers pamamagitan ng pagpapalabas:

sudo a2enmod ssl sudo a2enmod headers

Paganahin ang module na HTTP / 2, na gagawing mas mabilis at mas matatag ang iyong mga site:

sudo a2enmod

Paganahin ang mga file ng pagsasaayos ng SSL sa pamamagitan ng pagpapatakbo ng mga sumusunod na utos:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Reload ang pagsasaayos ng Apache para sa mga pagbabago na magkakabisa:

sudo systemctl reload apache2

Gamitin ang tool na Certbot gamit ang plugin ng webroot upang makuha ang mga file ng sertipiko ng SSL:

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

Kung matagumpay na nakuha ang sertipiko ng SSL, i-print ng sertbot ang sumusunod na mensahe:

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:

Ngayon na mayroon ka ng mga file ng sertipiko, i-edit ang iyong virtual virtual na pagsasaayos ng host tulad ng mga sumusunod:

/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

Gamit ang pagsasaayos sa itaas, pinipilit namin ang HTTPS at pag-redirect mula sa www hanggang sa di-www na bersyon. Mag-file ng malaya upang maiayos ang pagsasaayos ayon sa iyong mga pangangailangan.

Reload ang serbisyo ng Apache para sa mga pagbabago na magkakabisa:

sudo systemctl reload apache2

Buksan ang iyong website gamit ang https:// , at mapapansin mo ang isang berdeng icon ng lock.

Pag-update ng Auto I-encrypt ang SSL certificate

Ang mga sertipiko ng Encrypt ay may bisa sa loob ng 90 araw. Upang awtomatikong mai-renew ang mga sertipiko bago mag-expire, ang sertipikong package ay lumilikha ng isang cronjob na tumatakbo nang dalawang beses sa isang araw at awtomatikong mai-renew ang anumang sertipiko 30 araw bago ito mag-expire.

Kapag na-renew ang sertipiko kailangan din nating i-reload ang serbisyo ng Apache. Idagdag ang --renew-hook "systemctl reload apache2" sa /etc/cron.d/certbot file kaya sa mga sumusunod:

/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"

Upang masubukan ang proseso ng pag-renew, gamitin ang switch ng certbot --dry-run :

sudo certbot renew --dry-run

Kung walang mga pagkakamali, nangangahulugan ito na matagumpay ang proseso ng pag-update.

Konklusyon

Sa tutorial na ito, ginamit mo ang sertipiko ng client ng Let Encrypt, upang makakuha ng mga sertipiko ng SSL para sa iyong domain. Nilikha mo rin ang mga snippet ng Apache upang maiwasan ang pagdoble ng code at na-configure ang Apache upang magamit ang mga sertipiko. Sa pagtatapos ng tutorial, nag-set up ka ng isang cronjob para sa pag-renew ng awtomatikong sertipiko.

apache debian sabihin encrypt ang sertbot ssl

Ang post na ito ay isang bahagi ng Paano Mag-install ng LAMP Stack sa Debian 9 series.

Iba pang mga post sa seryeng ito:

• Paano Mag-install ng Apache sa Debian 9 • Paano Mag-install ng PHP sa Debian 9 • Paano Mag-set up ng Apache Virtual Host sa Debian 9 • Paano Mag-install ng MariaDB sa Debian 9 • Secure Apache sa Pag-encrypt sa Debian 9