Lokal sunucuda HTTPS kullanmak

Imagem de capa

Merhaba, HTTPS ile alakalı bir konu açmak için biraz geç oldu, malum bu devirde güvenli bağlantıya sahip olmayan sunucuları artık “adamdan” saymıyorlar 😊 Bu yazıda lokal sunucuda HTTPS kullanımının en hızlı yöntemini anlatmak istiyorum.

Bu yöntemde Linux, macOS ve Windows işletim sistemleri destekleniyor. Tanıtmak istediğim yazılım ise mkcert.

Linux 64-bit için kurulum:

wget https://github.com/FiloSottile/mkcert/releases/download/v1.1.2/mkcert-v1.1.2-linux-amd64
sudo mv mkcert-v1.1.2-linux-amd64 /usr/local/bin/mkcert
sudo chmod +x /usr/local/bin/mkcert

macOS için kurulum:

brew install mkcert

Windows için; mkcert.exe dosyasını buradan indirin. Daha sonra komut satırından dosyanın bulunduğu konuma gidin.

mkcert’ü kullanabilmek için öncelikle bir root sertifikası oluşturmamız gerekiyor.

mkcert -install

Bu komut root sertifikasını oluşturup, sistemin güvenilebilir root sertifikalar bölümüne ekliyor. Oluşturulan root sertifikasının bulunduğu yeri de mkcert -CAROOT komutuyla öğrenebilirsiniz.

Şimdi ise bir web sunucusu sertifikası oluşturalım.

mkcert 'merhaba.local'

Bu komut ‘merhaba.lokal’ sunucu adı için bir sertifika üretti. İsterseniz sunucu adlarının arasında boşluk bırakarak birden fazla sunucu adı için de sertifika oluşturabilirsiniz.

Şimdi geriye kalan tek şey, mkcert’ün oluşturduğu sertifika dosyalarını web sunucunuza tanımlamak.

nginx için bir örnek:

server {
    listen 443 ssl;
    server_name merhaba.local;
    root /opt/merhaba.local;

    ssl_certificate /opt/certs/merhaba.local.pem;
    ssl_certificate_key /opt/certs/merhaba.local-key.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;
    ssl_prefer_server_ciphers on;
    ssl_stapling on;
    ssl_stapling_verify on;
}

Diğer sunucular için örnek config’leri buradan oluşturabilirsiniz.