Kako ustvariti samopodpisana potrdila SSL in ključe za Apache na RHEL/CentOS 7.0


SSL (Secure Sockets Layer) je kriptografski protokol, ki omogoča varen pretok podatkov med strežnikom in njegovimi odjemalci s pomočjo simetričnih/asimetričnih ključev z uporabo digitalnega potrdila, podpisanega s strani overitelja potrdil (CA).

  1. Osnovna namestitev LAMP na RHEL/CentOS 7.0

Ta vadnica ponuja pristop k nastavitvi kriptografskega protokola Secure Sockets Layer (SSL) na spletnem strežniku Apache, nameščenem v Red Hat Enterprise Linux/CentOS 7.0, in ustvarjanju samopodpisanih potrdil in ključev z pomoč bash skripta, ki močno poenostavi celoten postopek.

1. korak: Namestite in konfigurirajte Apache SSL

1. Če želite omogočiti SSL na strežniku HTTP Apache, z naslednjim ukazom namestite modul SSL in komplet orodij OpenSSL, ki sta potrebna za podporo SSL/TLS.

# yum install mod_ssl openssl

2. Po namestitvi modula SSL znova zaženite demon HTTPD in dodajte novo pravilo požarnega zidu, da zagotovite, da so vrata SSL - 443 - odprta za zunanje povezave na vaši napravi med poslušanjem. država.

# systemctl restart httpd
# firewall-cmd --add-service=https   ## On-fly rule

# firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Če želite preizkusiti povezavo SSL, odprite oddaljeni brskalnik in po protokolu HTPS na https:/server_IP pojdite do naslova IP strežnika.

2. korak: Ustvarite potrdila SSL in ključe

4. Prejšnja komunikacija SSL med strežnikom in odjemalcem je bila izvedena z uporabo privzetega potrdila in ključa, ki sta bila samodejno ustvarjena ob namestitvi. Če želite ustvariti nove zasebne ključe in samopodpisane pare potrdil, na izvršljivi sistemski poti ( $PATH ) ustvarite naslednji bash skript.

Za to vadnico je bila izbrana pot /usr/local/bin/, se prepričajte, da ima skript nastavljiv izvršni bit, nato pa ga uporabite kot ukaz za ustvarjanje novih parov SSL na /etc/httpd/ssl/ kot privzeto mesto potrdil in ključev.

# nano /usr/local/bin/apache_ssl

Uporabite naslednjo vsebino datoteke.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Zdaj naredite ta skript izvedljiv in ga zaženite, da ustvarite nov par potrdila in ključa za vašo virtualno gostiteljico Apache SSL.

Izpolnite ga s svojimi podatki in bodite pozorni na vrednost Common Name , da se ujema z FQDN vašega strežnika, ali v primeru navideznega gostovanja, da se ujema s spletnim naslovom, do katerega boste dostopali pri povezovanju z varnim spletnim mestom.

# chmod +x /usr/local/bin/apache_ssl
# apache_ssl

6. Potem ko sta potrdilo in ključ generirana, bo skript prikazal dolg seznam vseh vaših parov Apache SSL, shranjenih na lokaciji /etc/httpd/ssl/.

7. Drugi pristop pri ustvarjanju potrdil in ključev SSL je namestitev paketa kripto-uporab v sistem in ustvarjanje parov z ukazom genkey , kar lahko povzroči nekatere težave, zlasti če se uporablja na zaslon terminala Putty .

Torej predlagam, da to metodo uporabite le, če ste neposredno povezani z zaslonom.

# yum install crypto-utils
# genkey your_FQDN

8. Če želite na svoje spletno mesto SSL dodati novo potrdilo in ključ, odprite konfiguracijsko datoteko spletnega mesta in v tem primeru zamenjajte stavka SSLCertificateFile in SSLCertificateKeyFile z novimi lokacijami in imeni parov.

9. Če potrdila ne izda zaupanja vreden CA - overitelj ali se ime gostitelja iz potrdila ne ujema z imenom gostitelja, ki vzpostavi povezavo, se mora v vašem brskalniku prikazati napaka in potrditev morate sprejeti ročno.

To je to! Zdaj lahko apache_ssl uporabite kot ukazno vrstico na RHEL/CentOS 7.0, da ustvarite toliko parov samopodpisanih potrdil in ključev, ki jih potrebujete, in vsi bodo shranjeni na /etc/httpd/pot ssl/ z datoteko Key, zaščiteno z dovoljenji 700 .