DEV Community

Emine Nur Arıcı
Emine Nur Arıcı

Posted on

Docker Run İle SSL Sertifikalı Keycloak Kurma

bu kurulum için bir domain adına ihtiyacımız var benim senaryomda keycloak.local olarak ilerleyeceğim.

1. Adım: Host makinemde, yani browserımla keycloak'a erişeceğim makinede /etc/hosts dosyasını nano ile açıp en alta şunu ekleyelim:
<ip-adresi> keycloak.local

2. Adım: Nginx kurulumu

sudo apt update
sudo apt install nginx

Enter fullscreen mode Exit fullscreen mode

3. Adım: SSL sertifikası oluşturma
önce sertifikayı koyacak dosya oluşturalım.

sudo mkdir -p /etc/ssl/certs/keycloak
Enter fullscreen mode Exit fullscreen mode

openssl ile sertifika oluşturalım

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/certs/keycloak/keycloak.key \
 -out /etc/ssl/certs/keycloak/keycloak.crt \
 -subj "/CN=keycloak.local"

Enter fullscreen mode Exit fullscreen mode

4. Adım: Nginx yapılandırma

Yeni yapılandırma dosyası oluşturalım

sudo nano /etc/nginx/sites-available/keycloak.conf

Enter fullscreen mode Exit fullscreen mode

aşağıdaki içeriği dosyanın içine yapıştıralım

server {
    listen 80;
    server_name keycloak.local;
    # HTTP'den HTTPS'e yönlendir
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name keycloak.local;

    # SSL Sertifikalarının yolu
    ssl_certificate /etc/ssl/certs/keycloak/keycloak.crt;
    ssl_certificate_key /etc/ssl/certs/keycloak/keycloak.key;

    location / {
        # İsteği, Docker'da çalışan Keycloak'a yönlendir
        proxy_pass http://127.0.0.1:8080;

        # Gerekli HTTP başlıklarını ayarla
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Enter fullscreen mode Exit fullscreen mode

5. Adım: Yapılandırmayı aktive etme ve nginx'i yeniden başlatma

sudo ln -s /etc/nginx/sites-available/keycloak.conf /etc/nginx/sites-enabled/

Enter fullscreen mode Exit fullscreen mode

Nginx'in varsayılan "Welcome" sayfasını devre dışı bırakalım (çakışmasın):

sudo rm /etc/nginx/sites-enabled/default
Enter fullscreen mode Exit fullscreen mode

test edelim

sudo nginx -t

Enter fullscreen mode Exit fullscreen mode

restart edelim

sudo systemctl restart nginx

Enter fullscreen mode Exit fullscreen mode

6. Adım: Keycloak'ı kurma ve yapılandırma

  • Öncelikle Docker kurmamız lazım.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Enter fullscreen mode Exit fullscreen mode

kurulumu başlatalım

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Enter fullscreen mode Exit fullscreen mode

servis kontrolü yapmak istersek bu komutu çalıştıralım

sudo systemctl status docker
Enter fullscreen mode Exit fullscreen mode
  • Keycloak'ı docker run komutu ile kuralım. Burada kullanıcı adı şifre ve hostname verilir.
sudo docker run -d \
  -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e KC_PROXY_HEADERS=xforwarded \
  -e KC_HOSTNAME=keycloak.local \
  quay.io/keycloak/keycloak:latest \
  start-dev


Enter fullscreen mode Exit fullscreen mode

sudo docker ps ile kontrol yapılabilir.

son olarak https://keycloak.local adresinden admin admin ile giriş yapalım.

Top comments (0)