Kako kreirati samopotpisane SSL certifikate i ključeve za Apache na RHEL/CentOS 7.0


SSL (Secure Sockets Layer) je kriptografski protokol koji omogućava siguran protok podataka između servera i njegovih klijenata korištenjem simetričnih/asimetričnih ključeva korištenjem digitalnog certifikata potpisanog od strane Certificate Authority (CA).

Zahtjevi

  1. Osnovna instalacija LAMP-a na RHEL/CentOS 7.0

Ovaj vodič pruža pristup o tome kako postaviti Sloj sigurnih utičnica (SSL) komunikacioni kriptografski protokol na Apache web serveru instaliranom u Red Hat Enterprise Linux/CentOS 7.0<, i generirati samopotpisane certifikate i ključeve uz pomoć bash skripte koja uvelike pojednostavljuje cijeli proces.

Korak 1: Instalirajte i konfigurišite Apache SSL

1. Da biste omogućili SSL na Apache HTTP serveru, koristite sljedeću naredbu za instalaciju SSL modula i OpenSSL alata koji je potreban za podršku za SSL/TLS.

yum install mod_ssl openssl

2. Nakon što je SSL modul instaliran, ponovo pokrenite HTTPD demon i dodajte novo pravilo zaštitnog zida kako biste osigurali da je SSL port – 443 – otvoren za vanjske veze na vašoj mašini u stanju slušanja.

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

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

3. Da testirate SSL vezu, otvorite udaljeni pretraživač i idite na IP adresu vašeg servera koristeći HTPS protokol na https://server_IP.

Korak 2: Kreirajte SSL certifikate i ključeve

4. Prethodna SSL komunikacija između servera i klijenta obavljena je korištenjem zadanog certifikata i ključa koji su automatski generirani prilikom instalacije. Da biste generirali nove privatne ključeve i parove samopotpisanih certifikata, kreirajte sljedeću bash skriptu na izvršnoj sistemskoj putanji (` PATH).

Za ovaj vodič je odabran put /usr/local/bin/, provjerite da li skripta ima postavljen izvršni bit, a zatim ga koristite kao naredbu za kreiranje novih SSL parova na /etc/ httpd/ssl/ kao zadana lokacija certifikata i ključeva.

nano /usr/local/bin/apache_ssl

Koristite sljedeći sadržaj 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. Sada učinite ovu skriptu izvršnom i pokrenite je da generišete novi par certifikata i ključa za vaš Apache SSL virtuelni host.

Popunite ga svojim informacijama i obratite pažnju na vrijednost Common Name koja odgovara FQDN vašeg servera ili u slučaju da virtualni hosting odgovara web adresi kojoj ćete pristupati kada se povezujete na sigurnu web stranicu.

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

6. Nakon što se generiraju certifikat i ključ, skripta će prikazati dugu listu svih vaših Apache SSL parova pohranjenih na /etc/httpd/ssl/ lokaciji.

7. Drugi pristup generiranju SSL certifikata i ključeva je instaliranje crypto-utils paketa na vaš sistem i generiranje parova pomoću naredbe genkey, koja može nameću neke probleme posebno kada se koristi na Putty ekranu terminala.

Dakle, predlažem da koristite ovu metodu samo kada ste direktno povezani na ekran monitora.

yum install crypto-utils
genkey your_FQDN

8. Da dodate novi certifikat i ključ na svoju SSL web stranicu, otvorite konfiguracijsku datoteku svoje web stranice i zamijenite izjave SSLCertificateFile i SSLCertificateKeyFile s novim parovima lokacija i imena u skladu s tim.

9. Ako Certifikat nije izdao pouzdani CA – Certification Authority ili se ime hosta iz certifikata ne podudara s imenom hosta koji je uspostavio vezu, na vašem pretraživaču bi se trebala pojaviti greška i morate ručno prihvatiti sertifikat.

To je to! Sada možete koristiti apache_sslkao komandnu liniju na RHEL/CentOS 7.0 da generirate onoliko parova samopotpisanih certifikata i ključeva koji vam trebaju, a sve će se čuvati na /etc/httpd/ ssl/ staza sa ključnom datotekom zaštićenom sa 700 dozvolama.