# Merkez sunucuyu alan adınızla sunun

> Merkez sunucuyu, elinizdeki bir sertifikayla kendi alan adınız altında HTTPS üzerinden internete açın; doğrudan ya da Cloudflare arkasından.

Kaynak: https://proxus.io/tr/docs/operate/custom-domain

Bu kılavuzu tamamladığınızda kullanıcılar merkez sunucuyu her yerden `https://proxus.example.com` adresiyle açar.
Sertifika olarak elinizde olanı kullanırsınız: Cloudflare'in, kendi sertifika otoritenizin ya da başka bir
sağlayıcının verdiği sertifika. Düz HTTP ile gelen kullanıcılar HTTPS'e yönlendirilir ve yalnızca erişilmesi gereken
portlar açık kalır.

## Başlamadan önce

- Merkez sunucu, genel IP adresi olan bir sunucuda [kurulum betiği ya da compose dosyasıyla](https://proxus.io/tr/docs/get-started/install)
  kurulmuş olmalı.
- **Admin** hesabının güçlü bir parolası olmalı. Bunu merkez sunucu internete açılmadan önce yapın:
  [Güvenlik](https://proxus.io/tr/docs/operate/security) sayfasına bakın.
- Alan adınızın DNS kayıtlarını değiştirebiliyor olmalısınız.
- Merkez sunucunun adı için verilmiş sertifika ve özel anahtarı elinizde olmalı; PEM (`.pem`, `.crt`, `.key`) ya da
  `.pfx` biçiminde. Sertifika, kullanıcıların yazacağı adı kapsamalıdır; örneğin `proxus.example.com` ya da
  `*.example.com`.

Adımlarda `proxus.example.com` kullanılır. Bunu kendi adınızla değiştirin.

## Adım 1: Adı sunucuya yönlendirin

DNS sağlayıcınızda `proxus.example.com` için, sunucunun genel IP adresini gösteren bir `A` kaydı ekleyin.

Cloudflare'in proxy'sini kullanacaksanız devam etmeden önce [Cloudflare proxy'si arkasında](#cloudflare-proxysi-arkasında)
bölümünü de okuyun.

## Adım 2: Yalnızca gereken portları açın

Bulut sağlayıcınızın güvenlik duvarında (security group, network security group ya da firewall kuralı) şunlara izin
verin:

| Port | Ne için |
| --- | --- |
| `443` (TCP) | Kullanıcılar, API istemcileri ve Edge Gateway'lerin kurulum komutu. |
| `80` (TCP) | Yalnızca `http://` yazan kullanıcıları HTTPS'e yönlendirmek için. |
| `7422` (TCP) | Başka ağlardaki Edge Gateway'ler. Bütün Edge Gateway'ler sunucunun kendi ağındaysa kapalı bırakın. |

Diğer bütün portları internete kapalı tutun.

> **Uyarı:**
Docker'ın yayınladığı portlar `ufw` ve `iptables` yöneten diğer güvenlik duvarlarını atlar: `docker-compose.yml`
bir portu yayınlıyorsa `ufw`'da kapalı görünse de o port açıktır. Portları bulut sağlayıcısının güvenlik duvarında
kapatın ya da 5. adımdaki gibi `docker-compose.yml` içinde yalnızca makinenin kendisine açın.

## Adım 3: Sertifikayı yükleyin

1. Merkez sunucuda oturum açın ve **Güvenlik > Sertifika deposu** ekranını açın.
2. **Yükle** düğmesini seçin ve sertifikayı özel anahtarıyla birlikte seçin. Sağlayıcınız bir zincir ya da CA dosyası
   verdiyse onu da seçin. Proxus hangi dosyanın ne olduğunu kendisi bulur: anahtarla eşleşen sertifika, anahtarıyla
   birlikte kaydedilir.
3. Yeni satırı kontrol edin: **Tür** **Sunucu**, bitiş tarihi de sağlayıcınızın verdiği tarih olmalıdır.

## Adım 4: Merkez sunucunun HTTPS sertifikası yapın

Yüklediğiniz sertifikayı seçin, **Varsayılan yap** düğmesini seçin ve onaylayın. Merkez sunucu yeni sertifikayı bir
dakika içinde, yeniden başlatma gerekmeden kullanmaya başlar. Kimsenin oturumu kapanmaz.

**Varsayılan yap** yalnızca özel anahtarı olan bir sunucu sertifikasında kullanılabilir.

## Adım 5: Merkez sunucuyu 443 portundan yayınlayın

`proxus-platform` klasöründeki `docker-compose.yml` dosyasını açın ve `proxus-ui` servisini değiştirin:

```yaml
  proxus-ui:
    ports: ["80:8080", "443:8443"]
    environment:
      # …mevcut satırlar kalır…
      Service__PublicHttpsPort: "443"
      Service__PublicHostNames: "proxus.example.com"
      Service__RedirectHttpToHttps: "true"
```

| Ayar | Ne yapar |
| --- | --- |
| `"80:8080"`, `"443:8443"` | Merkez sunucunun HTTP ve HTTPS'ini standart portlardan yayınlar. |
| `Service__PublicHttpsPort` | Kullanıcıların HTTPS'e ulaştığı port. Yönlendirmeler ve Edge Gateway kurulum komutları bunu kullanır. |
| `Service__PublicHostNames` | Merkez sunucunun adı. Merkez sunucunun kendi verdiği sertifikalara, örneğin mesaj sunucusunun sertifikasına eklenir. |
| `Service__RedirectHttpToHttps` | Her HTTP isteğini HTTPS'e yönlendirir ve HSTS'i açar. Konteynerin sağlık kontrolü yönlendirilmez. |

Veritabanlarını ve mesaj sunucusunu internetten uzak tutmak için aynı dosyada portlarını yalnızca makinenin kendisine
açın. Servisler birbirine iç ağ üzerinden ulaştığı için Proxus bundan etkilenmez:

```yaml
  hub-server:
    ports: ["127.0.0.1:4222:4222", "127.0.0.1:8222:8222", "7422:7422"]
  postgresql:
    ports: ["127.0.0.1:5442:5442"]
  clickhouse:
    ports: ["127.0.0.1:8123:8123", "127.0.0.1:9000:9000", "127.0.0.1:9005:9005", "127.0.0.1:9004:9004"]
```

Değişiklikleri uygulayın:

```bash
docker compose up -d
```

## Adım 6: Kontrol edin

1. `https://proxus.example.com` adresini açın. Tarayıcı siteyi güvenli gösterir ve oturum açma sayfası gelir.
2. `http://proxus.example.com` adresini açın. Tarayıcı `https://proxus.example.com` adresine geçer.
3. Merkez sunucunun gönderdiği sertifikayı herhangi bir makineden kontrol edin:

   ```bash
   openssl s_client -connect proxus.example.com:443 -servername proxus.example.com </dev/null | grep -E "subject=|Verify return code"
   ```

   `subject=` sizin sertifikanızı gösterir. `Verify return code: 0 (ok)`, istemcinin sertifikaya güvendiği anlamına
   gelir.
4. `docker compose ps` komutunu çalıştırın: `proxus-ui` **healthy** olmalıdır.

## Cloudflare proxy'si arkasında

Proxy açıkken (turuncu bulut) Cloudflare kullanıcılara kendi sertifikasını sunar ve merkez sunucuya HTTPS üzerinden
bağlanır. Merkez sunucunun sertifikası bu durumda bir **Cloudflare Origin Certificate** olur: ona yalnızca
Cloudflare'in güvenmesi gerekir.

1. Cloudflare'de **SSL/TLS > Origin Server** sayfasını açın ve **Create Certificate** düğmesini seçin. Anahtar türünü
   **RSA (2048)** bırakın, ad olarak `proxus.example.com` (ya da `*.example.com`) girin. **Origin Certificate**
   metnini `origin.pem`, **Private Key** metnini `origin.key` olarak kaydedin. Cloudflare özel anahtarı yalnızca bir kez
   gösterir.
2. İki dosyayı 3. adımdaki gibi yükleyin ve 4. adımdaki gibi varsayılan yapın.
3. **SSL/TLS > Overview** sayfasında şifreleme modunu **Full (strict)** yapın.
4. **Network** sayfasında **WebSockets** seçeneğinin açık olduğunu kontrol edin. Merkez sunucunun web arayüzü canlı bir
   bağlantı kullanır.
5. Merkez sunucuyu 5. adımdaki gibi yayınlayın.

> **Uyarı:**
**Flexible** şifreleme modunu kullanmayın. Bu modda Cloudflare merkez sunucuya HTTP ile bağlanır, merkez sunucu onu
HTTPS'e yönlendirir ve tarayıcı "çok fazla yönlendirme" hatası verir.

**Edge Gateway'ler Cloudflare proxy'si üzerinden bağlanamaz.** Kurulum komutu merkez sunucunun kendi HTTPS anahtarını
doğrular ve proxy bu anahtarı Cloudflare'in sertifikasının arkasında gizler. Edge Gateway'lerin `7422` portundaki mesaj
bağlantısı da HTTP değildir. Edge Gateway'lere proxy'den geçmeyen bir ad verin:

1. Aynı IP adresi için ikinci bir `A` kaydı ekleyin, örneğin `edge.example.com`, proxy **kapalı** (gri bulut) olsun.
2. Adı `Service__PublicHostNames` değerine ekleyin, örneğin `"proxus.example.com, edge.example.com"`, ve
   `docker compose up -d` komutunu çalıştırın.
3. Bir Edge Gateway kurarken kurulum sihirbazında **Başka bir adres** seçeneğini seçin ve `edge.example.com` girin.

## Edge Gateway'leri kurun

Kurulum sihirbazı bildiği adresleri önerir; Edge Gateway'in makinesinin merkez sunucuya ulaşabildiği adı seçin. Sihirbazın
verdiği komut `https://<o ad>:443` adresine bağlanır ve varsayılan yaptığınız sertifikanın anahtarını doğrular; yani
kendi sertifikanızla çalışır. Edge Gateway ardından `7422` portuna bağlanır. Ayrıntılar için
[Edge Gateway kurma](https://proxus.io/tr/docs/connect/edge-gateways/install-a-gateway) sayfasına bakın.

Bir kurulum komutu bir saat geçerlidir ve merkez sunucu yeniden başlayınca geçersiz olur. Komutu oluşturduktan sonra
`docker-compose.yml` dosyasını değiştirdiyseniz yeni bir komut oluşturun.

## Sertifikayı yenileyin

Proxus kendi vermediği bir sertifikayı yenilemez. Sertifikanızın süresi dolmadan önce:

1. Yeni sertifikayı sağlayıcınızdan alın.
2. 3. ve 4. adımlardaki gibi yükleyin ve **Varsayılan yap** düğmesini seçin.

Süresi 30 gün içinde dolacak her sertifika için merkez sunucu her gün [sistem günlüklerine](https://proxus.io/tr/docs/administer/system-logs)
uyarı yazar. Bir Cloudflare Origin Certificate en fazla 15 yıl geçerli olabilir.

Sertifika değiştikten sonra Edge Gateway'ler çalışmaya devam eder: kendi sertifikası olan mesaj sunucusuna bağlanırlar.
Değişiklikten önce oluşturulan kurulum komutları çalışmaz; yenilerini oluşturun.

## Bir şey çalışmadığında

| Gördüğünüz | Neden | Ne yapmalı |
| --- | --- | --- |
| Tarayıcı, sertifikanın bu ad için geçerli olmadığını söylüyor. | Sertifika adres çubuğundaki adı kapsamıyor. | O ad için bir sertifika yükleyin ve varsayılan yapın. |
| Tarayıcı hâlâ eski sertifikayı gösteriyor. | Merkez sunucu yeni varsayılan sertifikayı bir dakika içinde devreye alır. | Bir dakika bekleyip sayfayı yenileyin. |
| Cloudflare arkasında "çok fazla yönlendirme" hatası. | Cloudflare'in şifreleme modu **Flexible**. | **Full (strict)** yapın. |
| `http://` adresi `:8443` içeren bir adrese gidiyor. | `Service__PublicHttpsPort` eksik. | `"443"` yapın ve `docker compose up -d` komutunu çalıştırın. |
| Edge Gateway kurulumu bağlantının geçersiz olduğunu söylüyor. | Bağlantının süresi doldu, kullanıldı ya da merkez sunucu yeniden başladı. | Kurulum sihirbazında yeni bir komut oluşturun. |
| Cloudflare arkasında kurulum komutu anahtar ya da bağlantı hatası veriyor. | Komut proxy üzerinden gidiyor. | Proxy'den geçmeyen bir ad kullanın, bkz. [Cloudflare proxy'si arkasında](#cloudflare-proxysi-arkasında). |

## Sonraki adımlar

- [Güvenlik](https://proxus.io/tr/docs/operate/security): HTTPS ayarları, portlar ve sıkılaştırma listesi.
- [Sertifika deposu](https://proxus.io/tr/docs/administer/certificates): yeni kurulumdaki sertifikalar, yenileme ve değiştirme.
- [Edge Gateway kurma](https://proxus.io/tr/docs/connect/edge-gateways/install-a-gateway): kurulum sihirbazı adım adım.
