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


SSL (Secure Sockets Layer) je kriptografski protokol koji omogućuje siguran protok podataka između poslužitelja i njegovih klijenata korištenjem simetričnih/asimetričnih ključeva korištenjem digitalnog certifikata potpisanog od strane Izdavača certifikata (CA).

Zahtjevi

  1. Osnovna LAMP instalacija na RHEL/CentOS 7.0

Ovaj vodič pruža pristup postavljanju Secure Sockets Layer (SSL) komunikacijskog kriptografskog protokola na Apache web poslužitelju instaliranom u Red Hat Enterprise Linux/CentOS 7.0< i generirajte samopotpisane certifikate i ključeve uz pomoć bash skripte koja uvelike pojednostavljuje cijeli proces.

Korak 1: Instalirajte i konfigurirajte Apache SSL

1. Za omogućavanje SSL-a na Apache HTTP poslužitelju koristite sljedeću naredbu za instaliranje SSL modula i OpenSSL alata koji je potreban za SSL/TLS podršku.

yum install mod_ssl openssl

2. Nakon instaliranja SSL modula, ponovno pokrenite HTTPD demon i dodajte novo pravilo vatrozida kako biste osigurali da je SSL port – 443 – otvoren za vanjske veze na vašem računalu 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. Kako biste testirali SSL vezu, otvorite udaljeni preglednik i idite na IP adresu vašeg poslužitelja pomoću HTPS protokola na https://server_IP.

Korak 2: Stvorite SSL certifikate i ključeve

4. Prethodna SSL komunikacija između poslužitelja i klijenta obavljena je korištenjem zadanog certifikata i ključa automatski generiranih prilikom instalacije. Kako biste generirali nove privatne ključeve i parove samopotpisanih certifikata, stvorite sljedeću bash skriptu na izvršnoj putanji sustava (` PATH).

Za ovaj vodič odabrana je staza /usr/local/bin/, provjerite ima li skripta postavljen izvršni bit, a zatim je koristite kao naredbu za stvaranje 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 za generiranje novog para certifikata i ključa za vaš Apache SSL virtualni host.

Ispunite ga svojim podacima i obratite pozornost na vrijednost Common Name koja odgovara FQDN-u vašeg poslužitelja ili, u slučaju virtualnog hostinga, na web-adresu kojoj ćete pristupati kada se povezujete na sigurno web-mjesto.

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

6. Nakon generiranja certifikata i ključa, skripta će prikazati dugačak popis svih vaših Apache SSL parova pohranjenih na lokaciji /etc/httpd/ssl/.

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

Dakle, predlažem da koristite ovu metodu samo kada ste izravno spojeni na monitor.

yum install crypto-utils
genkey your_FQDN

8. Da biste dodali novi certifikat i ključ na svoju SSL web stranicu, otvorite konfiguracijsku datoteku svoje web stranice i zamijenite izjave SSLCertificateFile i SSLCertificateKeyFile novim parovima mjesto i imena prema tome.

9. Ako certifikat nije izdao pouzdani CA – Tijelo za izdavanje certifikata ili naziv glavnog računala iz certifikata ne odgovara nazivu glavnog računala koji je uspostavio vezu, na vašem pregledniku trebala bi se pojaviti pogreška i morate ručno prihvatiti potvrda.

To je to! Sada možete koristiti apache_sslkao naredbeni redak na RHEL/CentOS 7.0 za generiranje onoliko parova samopotpisanih certifikata i ključeva koliko vam je potrebno, a svi će se čuvati na /etc/httpd/ ssl/ staza s ključnom datotekom zaštićenom s dopuštenjima 700.