pax | 2020-11-05 23:20:47 UTC | #1
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ć:
Instalacja i wstępna konfiguracja serwera WWW - Nginx (Ubuntu)
Jeżeli posiadasz już zainstalowany serwer WWW pomiń ten krok.
Aktualizacja pakietów:
sudo apt update
Instalacja pakietów:
sudo apt upgrade
Instalacja Nginx:
sudo apt install nginx
Konfiguracja firewalla:
sudo ufw allow 'Nginx HTTPS'
sudo ufw allow ssh
sudo ufw enable
````
**Konfiguracja strefy DNS domeny**
*Jeżeli Twoja strefa DNS domeny jest skonfigurowana tak by przekierowywała na Twój serwer pomiń ten krok.*
1. W panelu domeny wybieramy "Strefa DNS", następnie znajdujące się w prawym rogu "Dodaj rekord",

2. Wybieramy pole wskazania "**A**", a w adresie docelowym podajemy adres IP swojego serwera,
3. Klikamy "Dalej" i zatwierdzamy,
4. W rekordach szukamy rekordu "A" z adresem IP nie będącym adresem naszego serwera. Usuwamy ten rekord,
5. 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**".
1. Podajemy naszą domenę,

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

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

4. Klikamy "Done, chceck nameservers", a następnie "Finish later",
5. **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)**
1. W panelu domeny w Cloudflare przechodzimy do zakładki "**SSL/TLS**",

2. Następnie wybieramy "Origin Server" i klikamy "Create Certificate",
3. Wszystkie ustawienia zostawiamy domyślne. Klikamy "Next",
4. Przechodzimy na nasz serwer i przenosimy się do katalogu **/etc/ssl/certs** (cd /etc/ssl/certs/),
5. 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),
6. Otwieramy plik cert.pem wybranym edytorem tekstu i wklejamy do niego cały "**Origin Certificate**" i zapisujemy (np. sudo nano cert.pem),
7. 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!**
8. Edytujemy domyślny plik konfiguracyjny hosta Nginxa (**sudo nano /etc/nginx/sites-available/default**), usuwamy wszystko i wklejamy:
server {
listen 443 ssl defaultserver;
listen [::]:443 ssl defaultserver;
sslcertificate /etc/ssl/certs/cloudflare/cert.pem;
sslcertificate_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;
}
}
9. **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,**
10. Następnie w konsoli wpisujemy:
sudo systemctl reload nginx
11. 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)**
1. Pobieramy plik: https://support.cloudflare.com/hc/en-us/article_attachments/360044928032/origin-pull-ca.pem,
2. 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,
3. Następnie edytujemy plik konfiguracyjny hosta Nginxa (sudo nano /etc/nginx/sites-available/default) i wklejamy:
sslclientcertificate /etc/nginx/certs/cloudflare/cloudflare.crt;
sslverifyclient 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;
}
}
4. Na serwerze reloadujemy Nginxa:
sudo systemctl reload nginx
5. 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!
-------------------------
Jordii | 2020-11-06 14:04:50 UTC | #2
[quote="pax, post:1, topic:16633"]
`sudo systemctl reload nginx`
[/quote]
nie moge cos zainstalowac ngnixa, 
-------------------------
pax | 2020-11-06 16:05:18 UTC | #3
@Jordii
sudo lsof -i:80
```
Daj screena co ci wypisze. Możliwe, że masz inną usługę działającą na porcie 80.
Dodatkowo z zasady nie powinno się robić takich rzeczy na roocie.
BrixNW | 2020-11-06 20:43:53 UTC | #4
Po co dodawać nowy rekord A do dns na ovh skoro chwilę później i tak całość jest kierowana przez cf?
pax | 2020-11-06 21:42:11 UTC | #5
CF działa jak proxy.
W momencie gdy nie dodasz rekordu A z adresem serwera to po wejściu na domenę zobaczysz domyślną stronę domenową z OVH. Bez rekordu A skąd domena miałaby wiedzieć na jaki adres chcesz zrobić przekierowanie?
BrixNW | 2020-11-06 22:40:15 UTC | #6
Ja zawsze dodaje rekordy w CF, a nie tam gdzie mam domenę zarejestrowaną.
Nieznajomy11 | 2020-11-07 05:17:37 UTC | #7
[quote=”pax, post:5, topic:16633”]
CF działa jak proxy.
[/quote]
Zmieniając serwery DNS na serwery od CF powodujesz, że to teraz w CloudFlare się zarządza strefą DNS. Ustawianie jej chwilę przed przenoszeniem u starego operatora nie ma żadnego sensu.
Podczas “podpinania” domeny system automatycznie pobiera co może, tj. między innymi główny rekord A i je automatycznie migruje (poprzez skopiowanie) do strefy zarządzanej przez CloudFlare. Od tego momentu to, co ustawiłeś w takim OVH nie ma żadnego wpływu na rozwiązywanie DNS.
pax | 2020-11-07 13:47:18 UTC | #8
To i tak na to samo wychodzi.
pax | 2020-11-07 13:49:58 UTC | #9
Jeżeli dodasz rekord A u operatora domeny to Cloudflare sobie to zczyta i będzie działać.
Jeżeli tego nie zrobisz to dodasz sobie ten rekord A na Cloudflarze i też będzie działać.
To na to samo wychodzi. Nie ma to żadnego znaczenia gdzie to zrobisz.
Nieznajomy11 | 2020-11-07 14:26:29 UTC | #10
Ma to duże znaczenie dla potencjalnej osoby, która znajdzie ten poradnik i nie będzie używać OVH. Zależność od tego operatora w tym poradniku jest całkowicie sztuczna i niepotrzebna.
Dodatkowo ja rozumiem, że aktualizacja strefy DNS z OVH jest stosunkowo szybka, ale po co to robić i ryzykować konieczność ponownej modyfikacji już po stronie CF, jak można ten krok całkowicie pominąć?
Ustawienie i weryfikacja po stronie CloudFlare daje znacznie większą pewność poprawnego skonfigurowania domeny niż przeklikanie na oślep, bo “cloudflare sobie to zczyta”.