Jinsi ya Kusakinisha Lets Encrypt SSL Cheti Ili Kulinda Apache kwenye RHEL/CentOS 7/6


Tukipanua mafunzo ya mwisho ya Hebu Tusimba kwa njia fiche kuhusu vyeti vya bure vya SSL/TLS, katika makala hii tutaonyesha jinsi ya kupata na kusakinisha vyeti vya SSL/TLS bila malipo vinavyotolewa na Let's Encrypt Certificate Authority kwa Apache web server kwenye CentOS/RHEL 7/6 na Fedora. usambazaji pia.

Ikiwa unatafuta kusakinisha Hebu Tusimbe kwa Apache kwenye Debian na Ubuntu, fuata mwongozo huu hapa chini:

  1. Jina la kikoa lililosajiliwa lenye rekodi halali za A ili kuelekeza kwenye Anwani ya IP ya umma ya seva yako.
  2. Seva ya Apache imesakinishwa na sehemu ya SSL imewezeshwa na Upangishaji Pepe kuwezeshwa ikiwa unapangisha vikoa au vikoa vidogo.

Hatua ya 1: Sakinisha Apache Web Server

1. Ikiwa haijasakinishwa tayari, daemon ya httpd inaweza kusakinishwa kwa kutoa amri iliyo hapa chini:

# yum install httpd

2. Ili Hebu tusimba programu kwa njia fiche kufanya kazi na Apache, hakikisha kwamba moduli ya SSL/TLS imesakinishwa kwa kutoa amri iliyo hapa chini:

# yum -y install mod_ssl

3. Hatimaye, anza seva ya Apache kwa amri ifuatayo:

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

Hatua ya 2: Sakinisha Hebu Tusimbe Cheti cha SSL

4. Njia rahisi zaidi ya kusakinisha mteja wa Let’s Encrypt ni kwa kuunganisha hazina ya github kwenye mfumo wako wa faili. Ili kusakinisha git kwenye mfumo wako lazima uwashe hazina za Epel na amri ifuatayo.

# yum install epel-release

5. Mara tu repos za Epel zinaongezwa kwenye mfumo wako, endelea na usakinishe mteja wa git kwa kutekeleza amri iliyo hapa chini:

# yum install git

6. Sasa , ukishasakinisha vitegemezi vyote vinavyohitajika ili kushughulika na Let's Encrypt, nenda kwenye /usr/local/ saraka na uanze kuvuta kiteja cha Hebu Tusimbaji fomu hazina yake rasmi ya github na yafuatayo. amri:

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

Hatua ya 3: Pata Cheti cha Bure cha Hebu Tusimbe kwa njia fiche ya SSL kwa Apache

7. Mchakato wa kupata Cheti cha Hebu Tusimbe bila malipo kwa Apache umejiendesha kiotomatiki kwa CentOS/RHEL kutokana na programu-jalizi ya apache.

Wacha tuendeshe amri ya maandishi ya Let's Fiche ili kupata Cheti cha SSL. Nenda kwa Hebu Tusimbe saraka ya usakinishaji kutoka /usr/local/letsencrypt na utekeleze amri ya letsencrypt-auto kwa kutoa --apache chaguo na -d bendera kwa kila kikoa kidogo unachohitaji cheti.

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

8. Tuma barua pepe ambayo itatumiwa na Let's Encrypt ili kurejesha ufunguo wako uliopotea au kwa arifa za dharura na ubonyeze Enter ili kuendelea.

9. Kubali masharti ya leseni kwa kugonga kitufe cha Ingiza.

10. Kwenye CentOS/RHEL, kwa chaguo-msingi, seva ya Apache haitumii dhana ya kutenganisha saraka kwa wapangishi waliowezeshwa kutoka kwa wapangishi wanaopatikana (wasiofanya kazi) kama usambazaji wa Debian unavyofanya.

Pia, upangishaji wa kawaida umezimwa kwa chaguo-msingi. Taarifa ya Apache inayobainisha jina la seva (ServerName) haipo kwenye faili ya usanidi ya SSL.

Ili kuwezesha agizo hili, Let's Encrypt itakuhimiza kuchagua seva pangishi pepe. Kwa sababu haipati Vhost yoyote inayopatikana, chagua faili ya ssl.conf ili kurekebishwa kiotomatiki na mteja wa Let's Encrypt na ubonyeze Enter ili kuendelea.

11. Kisha, chagua Mbinu Rahisi kwa maombi ya HTTP na ubonyeze Enter ili kusonga mbele.

12. Hatimaye, ikiwa kila kitu kilikwenda vizuri, ujumbe wa pongezi unapaswa kuonyeshwa kwenye skrini. Bonyeza Enter ili kutoa kidokezo.

Ni hayo tu! Umefaulu kutoa cheti cha SSL/TLS kwa kikoa chako. Sasa unaweza kuanza kuvinjari tovuti yako kwa kutumia itifaki ya HTTPS.

Hatua ya 4: Jaribu Bure Hebu Tusimbe Usimbaji Fiche kwenye Kikoa

13. Ili kujaribu unyoofu wa kikoa chako cha SSL/TLS tembelea kiungo kilicho hapa chini na ujaribu cheti chako kwenye kikoa chako.

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

14. Ukipokea mfululizo wa ripoti kuhusu kuathiriwa kwa kikoa chako katika majaribio yaliyofanywa, basi unahitaji kurekebisha mashimo hayo ya usalama kwa haraka.

Ukadiriaji wa jumla wa darasa la C hufanya kikoa chako kutokuwa salama sana. Ili kurekebisha matatizo haya ya usalama, fungua faili ya usanidi ya Apache SSL na ufanye mabadiliko yafuatayo:

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

Tafuta mstari na taarifa ya SSLProtocol na uongeze -SSLv3 mwishoni mwa mstari.

Nenda ndani zaidi kwenye faili, tafuta na utoe maoni kwenye mstari ukitumia SSLCipherSuite kwa kuweka # mbele yake na uongeze maudhui yafuatayo chini ya mstari huu:

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. Baada ya kufanya mabadiliko yote hapo juu, hifadhi na ufunge faili, kisha uanze upya daemon ya Apache ili kutekeleza mabadiliko.

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

16. Sasa, hujaribu hali ya usimbaji fiche wa kikoa chako tena, kwa kutembelea kiungo sawa na hapo juu. Ili kufanya majaribio tena gonga kiungo cha Futa akiba kutoka kwa tovuti.

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

Sasa unapaswa kupata ukadiriaji wa jumla wa daraja A, ambayo inamaanisha kuwa kikoa chako kimelindwa sana.

Hatua ya 4: Sasisha Kiotomatiki Hebu Tusimbe Vyeti kwenye Apache

17. Toleo hili la beta la programu ya Let’s Encrypt linatoa vyeti vilivyo na tarehe ya mwisho wa matumizi baada ya siku 90. Kwa hivyo, ili kufanya upya cheti cha SSL, lazima utekeleze amri ya letsencrypt-auto tena kabla ya tarehe ya mwisho wa matumizi, kwa chaguo sawa na bendera zilizotumiwa kupata cheti cha kwanza.

Mfano wa jinsi ya kusasisha cheti wewe mwenyewe umewasilishwa hapa chini.

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

18. Ili kuharakisha mchakato huu, tengeneza hati ifuatayo ya bash iliyotolewa na github erikaheidi, katika saraka ya /usr/local/bin/ yenye maudhui yafuatayo. (hati imebadilishwa kidogo ili kuonyesha saraka yetu ya usakinishaji wa letsencrypt).

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

Ongeza maudhui yafuatayo kwenye faili ya le-renew-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. Toa ruhusa za utekelezaji wa hati, sakinisha kifurushi cha bc na uendeshe hati ili kukijaribu. Tumia jina la kikoa chako kama kigezo cha nafasi cha hati. Toa amri zifuatazo ili kukamilisha hatua hii:

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

20. Hatimaye, kwa kutumia kuratibu kwa Linux, ongeza kazi mpya ya cron ili kuendesha hati kila baada ya miezi miwili, ukihakikishia kwamba cheti chako kitasasishwa kabla ya tarehe ya mwisho wa matumizi.

# crontab -e

Ongeza mstari ufuatao chini ya faili.

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

Ni hayo tu! Seva yako ya Apache inayoendesha juu ya mfumo wa CentOS/RHEL sasa inatoa maudhui ya SSL kwa kutumia cheti cha Let's Encrypt SSL bila malipo.