Vyhledávání na webu

Jak vytvořit certifikáty SSL a klíče s vlastním podpisem pro Apache na RHEL/CentOS 7.0


SSL (Secure Sockets Layer) je kryptografický protokol, který umožňuje bezpečný tok dat mezi serverem a jeho klienty pomocí symetrických/asymetrických klíčů pomocí digitálního certifikátu podepsaného certifikační autoritou. (CA).

Požadavky

  1. Základní instalace LAMP na RHEL/CentOS 7.0

Tento výukový program poskytuje přístup k tomu, jak nastavit komunikační kryptografický protokol Secure Sockets Layer (SSL) na webovém serveru Apache nainstalovaném v Red Hat Enterprise Linux/CentOS 7.0< a generovat certifikáty a klíče s vlastním podpisem pomocí bash skriptu, který celý proces značně zjednodušuje.

Krok 1: Nainstalujte a nakonfigurujte Apache SSL

1. Chcete-li povolit SSL na Apache HTTP Server, použijte následující příkaz k instalaci modulu SSL a sady nástrojů OpenSSL, které jsou potřebné pro podporu SSL/TLS.

yum install mod_ssl openssl

2. Po instalaci modulu SSL restartujte démona HTTPD a přidejte nové pravidlo brány firewall, abyste zajistili, že port SSL – 443 – bude otevřen pro vnější připojení na vašem počítači ve stavu naslouchání.

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

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

3. Chcete-li otestovat připojení SSL, otevřete vzdálený prohlížeč a přejděte na IP adresu svého serveru pomocí protokolu HTPS na adrese https://server_IP.

Krok 2: Vytvořte certifikáty a klíče SSL

4. Předchozí komunikace SSL mezi serverem a klientem byla prováděna pomocí výchozího certifikátu a klíče automaticky generovaného při instalaci. Aby bylo možné vygenerovat nové soukromé klíče a páry certifikátů s vlastním podpisem, vytvořte následující bash skript na spustitelné systémové cestě (` PATH).

Pro tento výukový program byla vybrána cesta /usr/local/bin/, ujistěte se, že skript má nastaven spustitelný bit, a poté jej použijte jako příkaz k vytvoření nových párů SSL na /etc/ httpd/ssl/ jako výchozí umístění certifikátů a klíčů.

nano /usr/local/bin/apache_ssl

Použijte následující obsah souboru.

#!/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. Nyní vytvořte tento skript spustitelným a spusťte jej, aby se vygeneroval nový pár certifikátu a klíče pro vašeho virtuálního hostitele Apache SSL.

Vyplňte jej svými informacemi a věnujte pozornost hodnotě Common Name, aby odpovídala FQDN vašeho serveru nebo v případě virtuálního hostingu odpovídala webové adrese, ke které budete přistupovat při připojování k zabezpečené webové stránce.

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

6. Po vygenerování certifikátu a klíče skript předloží dlouhý seznam všech vašich párů Apache SSL uložených v umístění /etc/httpd/ssl/.

7. Dalším přístupem ke generování certifikátů a klíčů SSL je instalace balíčku crypto-utils na váš systém a generování párů pomocí příkazu genkey, který může způsobit určité problémy, zejména při použití na obrazovce terminálu Putty.

Doporučuji tedy používat tuto metodu pouze v případě, že jste přímo připojeni k monitoru obrazovky.

yum install crypto-utils
genkey your_FQDN

8. Chcete-li přidat nový certifikát a klíč na svůj web SSL, otevřete konfigurační soubor webu a nahraďte příkazy SSLCertificateFile a SSLCertificateKeyFile novými páry umístění a názvy podle toho.

9. Pokud certifikát není vydán důvěryhodnou CA – certifikační autoritou nebo název hostitele z certifikátu neodpovídá názvu hostitele, který navazoval připojení, měla by se ve vašem prohlížeči objevit chyba a musíte ručně přijmout osvědčení.

A je to! Nyní můžete použít apache_ssl jako příkazový řádek na RHEL/CentOS 7.0 k vygenerování tolika párů certifikátů a klíčů s vlastním podpisem, které potřebujete, a všechny budou uloženy na /etc/httpd/ ssl/ cesta se souborem klíče chráněným s oprávněními 700.