Kuidas installida LS krüptida SSL-sertifikaati Apache'i turvamiseks RHEL/CentOS 7/6-s


Laiendades SSL/TLS-i tasuta sertifikaatide kohta käivat viimast õpetust Krüpteerime, näitame selles artiklis, kuidas hankida ja installida tasuta krüpteerimissertifikaadi väljaandjad Apache veebiserverile väljaandmise krüptimiseks. jaotused ka.

Kui soovite installida Let’s Encrypt for Apache'i Debiani ja Ubuntu, järgige seda juhendit allpool:

  1. Registreeritud domeeninimi koos kehtiva A -ga registreerib teie serveri avalikule IP-aadressile tagasi osutamise.
  2. Apache-server on installitud, kui SSL-moodul on lubatud ja virtuaalne hostimine lubatud, kui hostite mitut domeeni või alamdomeeni.

1. samm: installige Apache veebiserver

1. Kui seda pole veel installitud, saab httpd-deemoni installida, väljastades järgmise käsu:

# yum install httpd

2. Laskem krüptida tarkvara Apache'iga töötamiseks, veenduge, et SSL/TLS-moodul on installitud, väljastades alltoodud käsu:

# yum -y install mod_ssl

3. Lõpuks käivitage Apache server järgmise käsuga:

# systemctl start httpd.service          [On RHEL/CentOS 7]
# service httpd start                    [On RHEL/CentOS 6]

2. samm: installige Let’s Encrypt SSL Certificate

4. Lihtsaim viis Let’s Encrypt kliendi installimiseks on kloonimine failisüsteemis githubi hoidla. Giti installimiseks oma süsteemi peate lubama Epeli hoidlad järgmise käsuga.

# yum install epel-release

5. Kui Epeli repod on teie süsteemi lisatud, jätkake ja installige git klient, käivitades alloleva käsu:

# yum install git

6. Kui olete kõik krüptimisega tegelemiseks vajalikud nõutavad sõltuvused installinud, minge kataloogi /usr/local/ ja alustage selle krüptimise kliendi vormistamist oma ametlikus githubi hoidlas järgmisega: käsk:

# cd /usr/local/
# git clone https://github.com/letsencrypt/letsencrypt

3. samm: hankige Apache jaoks tasuta Let’s Encrypt SSL -sertifikaat

7. Tänu apache pistikprogrammile automatiseeritakse tasuta Let’s Encrypt Certificate for Apache protsess CentOS/RHEL-i jaoks.

SSL-sertifikaadi saamiseks käivitame käsu Let’s Encrypt script. Minge jaotisse Krüpteerime installikataloogi asukohast /usr/local/letsencrypt ja käivitage käsk letsencrypt-auto , pakkudes valikut --apache ja < kood> -d lipp iga alamdomeeni jaoks, millele vajate sertifikaati.

# cd /usr/local/letsencrypt
# ./letsencrypt-auto --apache -d your_domain.tld 

8. Sisestage e-posti aadress, mida Let’s Encrypt kasutab teie kaotatud võtme taastamiseks või kiirete teadete saamiseks, ja vajutage jätkamiseks sisestusklahvi Enter.

9. Nõustuge litsentsi tingimustega, vajutades klahvi Enter.

10. CentOS/RHEL-is ei kasuta Apache server vaikimisi mõistet eraldada lubatud hostide kataloogid saadaolevatest (passiivsetest) hostidest nagu Debiani põhine levitamine.

Samuti on virtuaalne hostimine vaikimisi keelatud. Apache-lause, mis määrab serveri nime (ServerName), mida SSL-i konfiguratsioonifailis pole.

Selle direktiivi aktiveerimiseks palub Let’s Encrypt teil valida virtuaalse hosti. Kuna see ei leia ühtegi Vhostit saadaval, valige fail ssl.conf , mida Let’s Encrypt klient automaatselt muudab, ja vajutage jätkamiseks sisestusklahvi Enter.

11. Järgmisena valige HTTP-päringute jaoks lihtne meetod ja vajutage edasiliikumiseks sisestusklahvi Enter.

12. Lõpuks, kui kõik sujus, peaks ekraanile ilmuma õnnitlusteade. Viiba vabastamiseks vajutage sisestusklahvi.

See on kõik! Olete oma domeenile edukalt välja andnud SSL/TLS-sertifikaadi. Nüüd saate hakata oma veebisaiti sirvima, kasutades HTTPS-protokolli.

4. samm: testige tasuta krüpteerimist krüptimisele domeenis

13. Oma domeeni SSL/TLS käepigistuse sirguse kontrollimiseks külastage allolevat linki ja testige oma domeenis oma sertifikaati.

https://www.ssllabs.com/ssltest/analyze.html

14. Kui läbiviidud testide käigus saate seeria aruandeid oma domeeni haavatavuse kohta, peate need turvaaugud kiiresti parandama.

C-klassi üldine hinnang muudab teie domeeni väga ebaturvaliseks. Nende turbeprobleemide lahendamiseks avage Apache SSL-i konfiguratsioonifail ja tehke järgmised muudatused:

# vi /etc/httpd/conf.d/ssl.conf

Otsige lauset SSLProtocol ja lisage rea lõppu -SSLv3 .

Minge failis sügavamale, otsige ja kommenteerige rida SSLCipherSuite abil, asetades selle ette # ja lisades selle rea alla järgmise sisu:

SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on
SSLOptions +StrictRequire

15. Pärast kõigi ülaltoodud muudatuste tegemist salvestage ja sulgege fail, seejärel taaskäivitage Apache deemon muudatuste rakendamiseks.

# systemctl restart httpd.service          [On RHEL/CentOS 7]
# service httpd restart                    [On RHEL/CentOS 6]

16. Nüüd testige uuesti oma domeeni krüptimise olekut, külastades sama linki nagu eespool. Kordustestide tegemiseks klõpsake veebisaidil linki Tühjenda vahemälu.

https://www.ssllabs.com/ssltest/analyze.html 

Nüüd peaksite saama A-klassi üldhinnangu, mis tähendab, et teie domeen on kõrgelt kaitstud.

4. samm: krüpteerime Apache'is automaatselt sertifikaadid

17. See tarkvara Let’s Encrypt beetaversioon annab välja sertifikaadid, mille kehtivusaeg on 90 päeva pärast. Nii et SSL-sertifikaadi uuendamiseks peate enne aegumiskuupäeva uuesti käivitama käsu letsencrypt-auto , kasutades samu valikuid ja lippe, mida kasutati esialgse sertifikaadi hankimiseks.

Allpool on toodud näide selle kohta, kuidas sertifikaati käsitsi uuendada.

# cd /usr/local/letsencrypt
# ./letsencrypt-auto certonly --apache --renew-by-default  -d your_domain.tld

18. Selle protsessi automatiseerimiseks looge järgmine bashi skript, mille pakub github erikaheidi, järgmise sisuga kataloogis /usr/local/bin/. (skripti on veidi muudetud, et see kajastaks meie letsencrypt installikataloogi).

# vi /usr/local/bin/le-renew-centos

Lisage järgmine sisu faili le-uuendada-centos :

!/bin/bash

domain=$1
le_path='/usr/local/letsencrypt'
le_conf='/etc/letsencrypt'
exp_limit=30;

get_domain_list(){
        certdomain=$1
        config_file="$le_conf/renewal/$certdomain.conf"

        if [ ! -f $config_file ] ; then
                echo "[ERROR] The config file for the certificate $certdomain was not found."
                exit 1;
        fi

        domains=$(grep --only-matching --perl-regex "(?<=domains \= ).*" "${config_file}")
        last_char=$(echo "${domains}" | awk '{print substr($0,length,1)}')

        if [ "${last_char}" = "," ]; then
                domains=$(echo "${domains}" |awk '{print substr($0, 1, length-1)}')
        fi

        echo $domains;
}

if [ -z "$domain" ] ; then
        echo "[ERROR] you must provide the domain name for the certificate renewal."
        exit 1;
fi

cert_file="/etc/letsencrypt/live/$domain/fullchain.pem"

if [ ! -f $cert_file ]; then
        echo "[ERROR] certificate file not found for domain $domain."
        exit 1;
fi

exp=$(date -d "`openssl x509 -in $cert_file -text -noout|grep "Not After"|cut -c 25-`" +%s)
datenow=$(date -d "now" +%s)
days_exp=$(echo \( $exp - $datenow \) / 86400 |bc)

echo "Checking expiration date for $domain..."

if [ "$days_exp" -gt "$exp_limit" ] ; then
        echo "The certificate is up to date, no need for renewal ($days_exp days left)."
        exit 0;
else
        echo "The certificate for $domain is about to expire soon. Starting renewal request..."
        domain_list=$( get_domain_list $domain )
        "$le_path"/letsencrypt-auto certonly --apache --renew-by-default --domains "${domain_list}"
        echo "Restarting Apache..."
        /usr/bin/systemctl restart httpd
        echo "Renewal process finished for domain $domain"
        exit 0;
fi

19. Andke skripti täitmisõigused, installige bc pakett ja käivitage skript selle testimiseks. Kasutage skripti positsiooniparameetrina oma domeeninime. Selle toimingu sooritamiseks väljastage järgmised käsud:

# yum install bc
# chmod +x /usr/local/bin/le-renew-centos
# /usr/local/bin/le-renew-centos your_domain.tld

20. Lõpuks lisage Linuxi ajastamise abil uus croni töö, et skripti iga kahe kuu tagant käivitada, tagades, et teie sertifikaati värskendatakse enne aegumiskuupäeva.

# crontab -e

Lisage järgmine rida faili lõppu.

0 1 1 */2 * /usr/local/bin/le-renew-centos your_domain.tld >> /var/log/your_domain.tld-renew.log 2>&1

See on kõik! Teie CentOS/RHEL-süsteemi peal töötav Apache-server serveerib nüüd SSL-sisu, kasutades tasuta Let’s Encrypt SSL-i sertifikaati.