Cześć. W tym poradniku zaprezentuję jak poprawnie "podpiąć" swoją domenę pod Cloudflare i skonfigurować certyfikat SSL (full strict) oraz kliencki certyfikat TLS.
Do wyżej wymienionych rzeczy będziemy potrzebować:
- serwera VPS oraz użytkownika w grupie sudo,
- domeny (ja zaprezentuje to na przykładzie OVH),
- konto na Cloudflare.
Instalacja i wstępna konfiguracja serwera WWW - Nginx (Ubuntu) Jeżeli posiadasz już zainstalowany serwer WWW pomiń ten krok.
Aktualizacja pakietów:
sudo apt updateInstalacja pakietów:
sudo apt upgradeInstalacja Nginx:
sudo apt install nginxKonfiguracja firewalla:
sudo ufw allow 'Nginx HTTPS'sudo ufw allow sshsudo ufw enableKonfiguracja strefy DNS domeny Jeżeli Twoja strefa DNS domeny jest skonfigurowana tak by przekierowywała na Twój serwer pomiń ten krok.
- W panelu domeny wybieramy "Strefa DNS", następnie znajdujące się w prawym rogu "Dodaj rekord",

- Wybieramy pole wskazania "A", a w adresie docelowym podajemy adres IP swojego serwera,
- Klikamy "Dalej" i zatwierdzamy,
- W rekordach szukamy rekordu "A" z adresem IP nie będącym adresem naszego serwera. Usuwamy ten rekord,
- Zmiana ustawień strefy DNSy zajmuje do 24h lecz zazwyczaj dzieje się to o wiele szybciej.
Podpięcie domeny pod Cloudflare
Logujemy się na nasze konto Cloudflare, a następnie przechodzimy pod adres: https://dash.cloudflare.com/. Klikamy "Add a Site".
- Podajemy naszą domenę,

- Wybieramy free plan,
- Sprawdzamy poprawność rekordów DNS które odczytał Cloudflare z tymi które mamy ustawione w panelu domeny OVH,
- Przechodzimy dalej. W tym momencie Cloudflare poprosi nas o zmianę serwerów DNS.
Zmiana serwerów DNS domeny na DNSy Cloudflare
- W panelu domeny na OVH przechodzimy do zakładki "Serwery DNS",
- Wybieramy opcję "Zmień serwery DNS",

- Serwery DNS z OVH zastępujemy odpowiednio tymi podanymi przez Cloudflare. Klikamy "Zastosuj konfigurację". Zmiana serwerów DNS może zająć do 48h lecz tak jak w przypadku strefy DNS dzieje się to zazwyczaj dużo szybciej,

- Klikamy "Done, chceck nameservers", a następnie "Finish later",
- W momencie zmiany serwerów DNS przechodzimy do kolejnego punktu. Informację o udanej zmianie serwerów DNS dostaniesz na maila przypisanego do konta OVH.
Konfiguracja certyfikatu SSL (full strict)
- W panelu domeny w Cloudflare przechodzimy do zakładki "SSL/TLS",

- Następnie wybieramy "Origin Server" i klikamy "Create Certificate",
- Wszystkie ustawienia zostawiamy domyślne. Klikamy "Next",
- Przechodzimy na nasz serwer i przenosimy się do katalogu /etc/ssl/certs (cd /etc/ssl/certs/),
- W tym katalogu tworzymy folder cloudflare (sudo mkdir cloudflare), a następnie przechodzimy do utworzonego folderu. W utworzonym folderze tworzymy dwa pliki: cert.pem i key.pem (sudo touch cert.pem key.pem),
- Otwieramy plik cert.pem wybranym edytorem tekstu i wklejamy do niego cały "Origin Certificate" i zapisujemy (np. sudo nano cert.pem),
- Otwieramy plik key.pem wybranym edytorem tekstu i wklejamy od niego cały "Private key" i zapisujemy (np. sudo nano key.pem), Pamiętaj by zapisać gdzieś u siebie na komputerze private key gdyż później nie ma opcji podglądu tego klucza!
- Edytujemy domyślny plik konfiguracyjny hosta Nginxa (sudo nano /etc/nginx/sites-available/default), usuwamy wszystko i wklejamy:
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/ssl/certs/cloudflare/cert.pem;
ssl_certificate_key /etc/ssl/certs/cloudflare/key.pem;
gzip off;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name twojadomena.pl;
location / {
try_files $uri $uri/ =404;
}
}- Przechodzimy do panelu Cloudflare do "SSL/TLS", a następnie "Overview". Zaznaczamy opcję "Full (strict)". Dalej przechodzimy do zakładki "Edge Certificates" i zaznaczamy "Always Use HTTPS" i "Automatic HTTPS Rewrites" tak by były ON,
- Następnie w konsoli wpisujemy:
sudo systemctl reload nginx- Teraz po przejściu na Twoją domenę zauważysz klikając na kłódkę, że Twój certyfikat jest aktywny.
Konfiguracja klienckiego certyfikatu TLS (opcjonalne lecz zalecane)
- Pobieramy plik: https://support.cloudflare.com/hc/en-us/article_attachments/360044928032/origin-pull-ca.pem,
- Kopiujemy zawartość pliku, a następnie na serwerze w utworzonym folderze tworzymy plik cloudflare.crt (sudo nano /etc/ssl/certs/cloudflare/cloudflare.crt), wklejamy wcześniej skopiowaną zawartość i zapisujemy,
- Następnie edytujemy plik konfiguracyjny hosta Nginxa (sudo nano /etc/nginx/sites-available/default) i wklejamy:
ssl_client_certificate /etc/nginx/certs/cloudflare/cloudflare.crt;
ssl_verify_client on;Ostatecznie nasz plik konfiguracyjny hosta powinien wygląda tak:
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/ssl/certs/cloudflare/cert.pem;
ssl_certificate_key /etc/ssl/certs/cloudflare/key.pem;
ssl_client_certificate /etc/ssl/certs/cloudflare/cloudflare.crt;
ssl_verify_client on;
gzip off;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name twojadomena.pl
location / {
try_files $uri $uri/ =404;
}
}- Na serwerze reloadujemy Nginxa:
sudo systemctl reload nginx- W zakładce "Orgin Server" w panelu SSL/TLS naszej domeny włączamy "Authenticated Origin Pulls".
To już koniec... od teraz możesz cieszyć się certyfikatem SSL i klienckim TLS!
