Jak nastavit certifikát CloudFlare pro Apache
Cloudflare Origin CA poskytuje zabezpečené připojení SSL mezi vaším serverem („origin“) a Cloudflare. V tomto článku nakonfigurujeme Origin certifikát pro Apache na Ubuntu 18.04 / 19.10.(odzkoušeno)
Předpokládám. že máme:
Již nainstalovaný a nakonfigurovaný Apache HTTP Server.
PŘÍPRAVA CERTIFIKÁTU
Na stránkách cloudflare.com přejdeme do sekce SSL/TLS, tam vybereme možnost "Origin Server" následně -
1) Vygenerujeme certifikát a soukromý klíč (kliknutím na "Create Certificate") a tlačítkem "Next"
Při instalaci certifikátu původu by výchozí hodnoty měly být: Typ soukromého klíče: RSA s 15letou platností.
2) Nyní zkopírujeme náš certifikát a soukromý klíč do textového editoru pro pozdější použití a klikneme na "OK"
INSTALACE CERTIFIKÁTU
1) Vytvoříme nový adresář, kde bude umístěn náš certifikát a soukomý klíč.
sudo mkdir -p /etc/cloudflare/
2) Nyní vytvoříme pomocí textového editoru nový soubor example.cz.pem a vložíme do něj certifikát..
(example.cz z kroku 2) a 3) nahraďte vlastní doménou)
sudo nano /etc/cloudflare/example.cz.pem
3) Nyní vytvoříme pomocí textového editoru nový soubor example.cz.key a vložíme do něj soukromý klíč
sudo nano /etc/cloudflare/example.cz.key
Předtím než certifikát přiřadíme k doméně, zkontrolujeme si, že máme povolen modul SSL pro Apache
sudo a2enmod ssl
Je vše v pořádku? Pokračujeme..
4) Otevřeme konfigurační soubor Apache pro naší doménu.
Obvykle se nachází v /etc/apache2/sites-available/
sudo nano /etc/apache2/sites-available/example.cz.conf
Už by měl existovat blok pro . Musíme přidat nový blok pod něj, a to pro SSL port 443.
Můžete také přidat podmínku přepsání do svého portu 80, abyste přesměrovali všechny požadavky na https.
Na konci předáme informaci, kam jsme náš certifikát schovali.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.cz
ServerAlias www.example.cz
DocumentRoot /var/www/example.cz/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinedRewriteEngine on
RewriteCond %{SERVER_NAME} =example.cz [OR]
RewriteCond %{SERVER_NAME} =www.example.cz
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName example.cz
ServerAlias www.example.cz
DocumentRoot /var/www/example.cz/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinedSSLEngine on
SSLCertificateFile /etc/cloudflare/example.cz.pem
SSLCertificateKeyFile /etc/cloudflare/example.cz.key</VirtualHost>
Uložíme a pro jistotu si zkontrolujeme chyby v syntaxi konfigurace.
apachectl configtest
Bez chyb? Jsme fakt dobrý ne?! :)
Pokud se chyba objevila, zkuste zkontrolovat, zdali jste v konfiguračním souboru nenechali zbytečnou mezeru
(z pohledu systému je to znak)
Dostáváme se k poslednímu bodu, a to restartu služby Apache
sudo systemctl restart apache2
Nasazení certifikátu ze strany CloudFlare by mělo trvat zhruba 5-10 minut.
Doporučoval bych ještě zkontrolovat, zda máme v nastavení na cloudflare.com v sekci SSL/TLS (Overview), nastaven režim šifrování SSL/TLS na Full (Strict). Zde bych doporučoval aktivovat i SSL/TLS Recommender.
Když už jsme u toho aktivování, přesuneme se ještě do sekce "Edge Certificates" a aktivujeme i možnost "Always Use HTTPS". Tento krok nám zaručí, že se všechny požadavky z „http“ překlopí na „https“.
HOTOVO!