# Instalarea unui certificat SSL gratuit cu Certbot și Nginx

### Ce vei obține

La final vei avea:

* certificat SSL gratuit de la Let's Encrypt
* activare HTTPS pentru site
* reînnoire automată a certificatului

### Cerințe înainte de instalare

* [domeniu](https://ititanhosting.ro/) sau subdomeniu activ
* înregistrare DNS de tip `A` sau `AAAA` către server
* porturile `80` și `443` deschise
* Nginx funcțional

### 1. Verifică rezolvarea DNS

Pe calculatorul tău sau pe server:

```bash
nslookup exemplu.ro
```

sau

```bash
dig +short exemplu.ro
```

IP-ul afișat trebuie să fie IP-ul serverului tău.

### 2. Instalează Certbot și pluginul pentru Nginx

```bash
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
```

### 3. Verifică configurația Nginx

Înainte să emiți certificatul:

```bash
sudo nginx -t
```

Dacă există erori de configurare, rezolvă-le înainte de pasul următor.

### 4. Rulează Certbot

Exemplu pentru domeniul principal și varianta `www`:

```bash
sudo certbot --nginx -d exemplu.ro -d www.exemplu.ro
```

Certbot te va întreba:

* adresa de email
* acceptarea termenilor
* dacă vrei redirecționare automată HTTP → HTTPS

În majoritatea cazurilor, redirecționarea către HTTPS este alegerea corectă.

### 5. Testează accesul HTTPS

Deschide în browser:

```
https://exemplu.ro
```

Poți verifica și din terminal:

```bash
curl -I https://exemplu.ro
```

### 6. Verifică reînnoirea automată

Testează simularea unei reînnoiri:

```bash
sudo certbot renew --dry-run
```

Dacă acest test trece, reînnoirea automată este configurată corect.

### Unde găsești certificatele

Fișierele sunt de obicei în:

```
/etc/letsencrypt/live/exemplu.ro/
```

Dar, dacă folosești Nginx cu pluginul Certbot, de regulă nu trebuie să modifici manual căile.

### Probleme frecvente

#### Certbot nu poate valida domeniul

Verifică:

* DNS-ul indică spre IP-ul corect
* portul 80 este accesibil public
* nu există alt server/proxy care răspunde pentru acel domeniu

#### Nginx nu pornește după modificări

Testează configurația:

```bash
sudo nginx -t
```

Apoi verifică logurile:

```bash
sudo journalctl -u nginx --no-pager -n 50
```

### Best practices

* Folosește HTTPS pe toate site-urile publice.
* Activează redirecționarea de la HTTP la HTTPS.
* Reînnoirea automată trebuie verificată periodic, mai ales după schimbări mari în configurație.
* Dacă folosești Cloudflare, modul SSL trebuie configurat corect pentru a evita bucle sau erori.

### Concluzie

Certbot + Nginx este una dintre cele mai rapide metode de a securiza un site pe VPS cu un certificat gratuit și ușor de întreținut.
