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
- 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.