Kuinka asentaa salataan SSL-varmenne Apachen suojaamiseksi RHEL/CentOS 7/6: lla
Laajentamalla viimeistä Let's Encrypt -opetusohjelmaa, joka koskee SSL/TLS-ilmaisia varmenteita, tässä artikkelissa aiomme osoittaa, kuinka hankitaan ja asennetaan Let's Encrypt Certificate Authority for Apache -verkkopalvelimen myöntämät SSL/TLS-varmenteet CentOS/RHEL 7/6: een ja Fedoraan myös jakaumat.
Jos haluat asentaa Let’s Encrypt for Apache -palvelun Debianiin ja Ubuntuun, noudata seuraavaa ohjetta:
- Rekisteröity verkkotunnus, jolla on kelvollinen
A
-rekisteri, viittaa takaisin palvelimesi julkiseen IP-osoitteeseen. - Apache-palvelin, johon on asennettu SSL-moduuli ja virtuaalipalvelin, jos isännöit useita verkkotunnuksia tai aliverkkotunnuksia.
Vaihe 1: Asenna Apache-verkkopalvelin
1. Jos sitä ei ole vielä asennettu, httpd-daemon voidaan asentaa antamalla seuraava komento:
# yum install httpd
2. Jotta Let-salausohjelmisto toimisi Apachen kanssa, varmista, että SSL/TLS-moduuli on asennettu antamalla seuraava komento:
# yum -y install mod_ssl
3. Käynnistä lopuksi Apache-palvelin seuraavalla komennolla:
# systemctl start httpd.service [On RHEL/CentOS 7] # service httpd start [On RHEL/CentOS 6]
Vaihe 2: Asenna Let’s Encrypt SSL Certificate
4. Yksinkertaisin tapa asentaa Let’s Encrypt -asiakasohjelma on kloonata github-arkisto tiedostojärjestelmään. Asentaaksesi git -järjestelmän järjestelmään sinun on otettava Epel-arkistot käyttöön seuraavalla komennolla.
# yum install epel-release
5. Kun Epel-repot on lisätty järjestelmään, siirry eteenpäin ja asenna git-asiakas suorittamalla alla oleva komento:
# yum install git
6. Kun olet asentanut kaikki tarvittavat riippuvuudet Let's Encrypt -toiminnon käsittelemiseksi, siirry hakemistoon /usr/local/
ja ala vetää Let's Encrypt -asiakasta sen virallisesta github-arkistosta seuraavasti: komento:
# cd /usr/local/ # git clone https://github.com/letsencrypt/letsencrypt
Vaihe 3: Hanki ilmainen Let’s Encrypt SSL -sertifikaatti Apachelle
7. Ilmaisen Let’s Encrypt Certificate for Apache -prosessin hankintaprosessi on automatisoitu CentOS/RHEL: lle apache-laajennuksen ansiosta.
Suoritetaan Let’s Encrypt script -komento SSL-varmenteen hankkimiseksi. Siirry kohtaan Salaa asennushakemisto kohdasta /usr/local/letsencrypt
ja suorita komento letsencrypt-auto
antamalla --apache
-vaihtoehto ja -d
-merkki jokaiselle aliverkkotunnukselle, johon tarvitset varmenteen.
# cd /usr/local/letsencrypt # ./letsencrypt-auto --apache -d your_domain.tld
8. Anna sähköpostiosoite, jota Let’s Encrypt käyttää kadonneen avaimen palauttamiseen tai kiireellisiin ilmoituksiin ja jatka painamalla Enter.
9. Hyväksy käyttöoikeuden ehdot painamalla Enter-näppäintä.
10. CentOS/RHEL: ssä Apache-palvelin ei oletusarvoisesti erota käytössä olevien isäntien hakemistoista käytettävissä olevia (ei-aktiivisia) isäntiä, kuten Debian-pohjainen jakelu tekee.
Myös virtuaalinen isännöinti on oletusarvoisesti pois käytöstä. Apache-käsky, joka määrittää palvelimen nimen (ServerName), jota ei ole SSL-määritystiedostossa.
Tämän direktiivin aktivoimiseksi Let’s Encrypt kehottaa sinua valitsemaan virtuaalisen isännän. Koska se ei löydä Vhostia saatavana, valitse Let’s Encrypt -työasemaohjelman automaattisesti muokattava tiedosto ssl.conf
ja paina Enter jatkaaksesi.
11. Valitse seuraavaksi helppo menetelmä HTTP-pyyntöjä varten ja paina Enter siirtyäksesi eteenpäin.
12. Lopuksi, jos kaikki meni sujuvasti, näytöllä pitäisi olla onnitteluviesti. Vapauta kehote painamalla Enter-näppäintä.
Se siitä! Olet myöntänyt SSL/TLS-varmenteen verkkotunnuksellesi. Nyt voit alkaa selata verkkosivustoasi HTTPS-protokollan avulla.
Vaihe 4: Testaa ilmainen salauksen salaus verkkotunnuksessa
13. Voit testata verkkotunnuksesi SSL/TLS-kättelyn suoruutta käymällä alla olevassa linkissä ja testaamalla varmenteesi verkkotunnuksessasi.
https://www.ssllabs.com/ssltest/analyze.html
14. Jos saat useita raportteja verkkotunnuksesi haavoittuvuudesta suoritetuissa testeissä, sinun on korjattava nämä tietoturva-aukot kiireellisesti.
C-luokan kokonaisluokitus tekee verkkotunnuksestasi erittäin epävarman. Voit korjata nämä turvallisuusongelmat avaamalla Apache SSL -määritystiedoston ja tekemällä seuraavat muutokset:
# vi /etc/httpd/conf.d/ssl.conf
Etsi riviä SSLProtocol
-lausekkeella ja lisää rivin loppuun -SSLv3
.
Mene syvemmälle tiedostoon, etsi ja kommentoi rivi SSLCipherSuite
-toiminnolla asettamalla #
sen eteen ja lisäämällä seuraava sisältö tämän rivin alle:
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. Kun olet tehnyt kaikki yllä olevat muutokset, tallenna ja sulje tiedosto ja käynnistä sitten Apache-demoni uudelleen muutosten tekemistä varten.
# systemctl restart httpd.service [On RHEL/CentOS 7] # service httpd restart [On RHEL/CentOS 6]
16. Testaa nyt verkkotunnuksesi salauksen tila uudelleen käymällä samassa linkissä kuin yllä. Suorita uusintatestit napsauttamalla Tyhjennä välimuisti -linkkiä verkkosivustolta.
https://www.ssllabs.com/ssltest/analyze.html
Nyt sinun pitäisi saada luokan A yleisarvosana, mikä tarkoittaa, että verkkotunnuksesi on erittäin suojattu.
Vaihe 4: Uudista Let's Encrypt Certificates on Apache
17. Tämä Let’s Encrypt -ohjelmiston beetaversio julkaisee varmenteet, joiden viimeinen voimassaolopäivä on 90 päivää. Joten SSL-varmenteen uusimiseksi sinun on suoritettava letsencrypt-auto
-komento uudelleen ennen viimeistä käyttöpäivää samoilla vaihtoehdoilla ja lipuilla, joita käytetään alkuperäisen varmenteen hankkimiseen.
Alla on esimerkki varmenteen manuaalisesta uusimisesta.
# cd /usr/local/letsencrypt # ./letsencrypt-auto certonly --apache --renew-by-default -d your_domain.tld
18. Voit automatisoida tämän prosessin luomalla seuraavan bash-komentosarjan, jonka tarjoaa github erikaheidi hakemistoon /usr/local/bin/
ja jonka sisältö on seuraava. (komentosarjaa on hieman muokattu vastaamaan letencrypt-asennushakemistoa).
# vi /usr/local/bin/le-renew-centos
Lisää seuraava sisältö le-atjaun-centos
-tiedostoon:
!/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. Myönnä komentosarjan suoritusoikeudet, asenna bc-paketti ja suorita komentosarja sen testaamiseksi. Käytä toimialueesi nimeä komentosarjan sijaintiparametrina. Suorita tämä vaihe antamalla seuraavat komennot:
# yum install bc # chmod +x /usr/local/bin/le-renew-centos # /usr/local/bin/le-renew-centos your_domain.tld
20. Lisää lopuksi Linux-ajoituksen avulla uusi cron-työ, jotta komentosarja voidaan suorittaa kahden kuukauden välein varmistaen, että varmenne päivitetään ennen viimeistä käyttöpäivää.
# crontab -e
Lisää seuraava rivi tiedoston alaosaan.
0 1 1 */2 * /usr/local/bin/le-renew-centos your_domain.tld >> /var/log/your_domain.tld-renew.log 2>&1
Se siitä! CentOS/RHEL-järjestelmän päällä toimiva Apache-palvelimesi palvelee nyt SSL-sisältöä ilmaisella Let’s Encrypt SSL -sertifikaatilla.