bg-tutorials

lighttpd Üzerine SSL Sertifikası Nasıl Kurulur

Bu eğitimde, Lighttpd üzerinde bir SSL sertifikasının nasıl kurulacağını öğreneceksiniz. Kılavuz, mevcut yapılandırmayı (mod_openssl modülü ile ayrı sertifika ve özel anahtar), daha eski derlemeler için eski birleşik PEM yöntemini ve yeniden başlatmadan önce hızlı bir yapılandırma testini kapsar.

Ayrıca tüm süreci adım adım gösteren bir video da kaydettik. Metin sürümünü tercih ediyorsanız, okumaya aşağıdan devam edin.

Lighttpd üzerinde CSR kodu oluşturma

CSR (Sertifika İmzalama İsteği) oluşturmaya başlayalım. CSR, SSL sertifikası başvurusunda bulunmak için bir Sertifika Yetkilisine gönderdiğiniz kodlanmış bir metin bloğudur. İki seçeneğiniz var:

CSR dosyasını herhangi bir metin düzenleyiciyle açın ve BEGIN CERTIFICATE REQUEST ve END CERTIFICATE REQUEST satırları dahil olmak üzere içeriğini kopyalayıp SSL sipariş süreci sırasında ilgili kutuya yapıştırın. CSR’ı Sertifika Yetkilisine gönderin ve doğrulamayı bekleyin. CA, SSL sertifikanızı verdikten sonra aşağıdaki kurulum adımlarına devam edin.

Lighttpd üzerinde SSL sertifikası kurma

Adım 1: Sertifika dosyalarınızı hazırlayın

Doğrulamadan sonra Sertifika Yetkilisi size sertifika dosyalarını e-posta ile gönderir. Arşivi indirin ve çıkarın. Şu dosyalara sahip olmalısınız:

  • yourdomain.crt, birincil SSL sertifikanız.
  • yourdomain.ca-bundle, ara sertifikalar (CA paketi).
  • yourdomain.key, CSR ile birlikte oluşturduğunuz özel anahtar.

Lighttpd, ssl.pemfile ile referans verilen dosyanın tam sertifika zincirini içermesini önerir: önce sertifikanız, ardından ara sertifikalar. Bu birleşik zincir dosyasını oluşturun, ardından bu dosyayı ve özel anahtarı Lighttpd’nin okuyabileceği bir dizine taşıyın (örneğin /etc/lighttpd/ssl/):

cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem
sudo mkdir -p /etc/lighttpd/ssl
sudo cp yourdomain.fullchain.pem yourdomain.key /etc/lighttpd/ssl/

Özel anahtarı yalnızca root’un okuyabileceği şekilde kısıtlayın:

sudo chmod 600 /etc/lighttpd/ssl/yourdomain.key

Adım 2: mod_openssl’i etkinleştirin

1.4.56 sürümünden itibaren, Lighttpd’deki TLS desteği mod_openssl adlı yüklenebilir bir modülde bulunur (mod_mbedtls, mod_wolfssl, mod_gnutls ve mod_nss gibi başka arka uçlar da mevcuttur). Bunu ana yapılandırma dosyanızda SSL soket bloğundan önce yükleyin:

server.modules += ( "mod_openssl" )

Not: Lighttpd 1.4.55 ve öncesinde TLS bir modül olarak yüklenmek yerine derlemenin içine gömülüydü, bu nedenle bu satırı o derlemelerde atlayabilirsiniz. Sürümünüzü lighttpd -v ile kontrol edin.

Adım 3: lighttpd.conf’u düzenleyin

Ana yapılandırma dosyasını (yol genellikle /etc/lighttpd/lighttpd.conf‘dur) tercih ettiğiniz düzenleyiciyle açın:

sudo nano /etc/lighttpd/lighttpd.conf

443 numaralı port için bir soket bloğu ekleyin. Güncel Lighttpd’de (1.4.56+), sertifika zincirini ve özel anahtarı ayrı dosyalarda tutun: ssl.pemfile‘ı tam zincir dosyasına, ssl.privkey‘i ise anahtara işaret edecek şekilde ayarlayın. Bu, çoğu Sertifika Yetkilisinin dosyaları teslim etme biçimidir ve Lighttpd’nin önerdiği yapılandırmadır.

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
    ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"

    # Minimum TLS sürümü (ssl-conf-cmd için lighttpd 1.4.48+ gerekir; TLS 1.2 zaten 1.4.56+ sürümünde varsayılandır)
    ssl.openssl.ssl-conf-cmd = ( "MinProtocol" => "TLSv1.2" )
}
  • ssl.engine bu soket için TLS’yi açar.
  • ssl.pemfile sertifikanızı ve ardından ara zinciri içerir.
  • ssl.privkey özel anahtarı içerir. Anahtar pemfile içinde değilse 1.4.53 sürümünden itibaren zorunludur.

Ziyaretçilerin her zaman güvenli sürüme erişmesi için düz HTTP’yi HTTPS’ye yönlendirmek amacıyla, 80 numaralı port için bir yönlendirme ekleyin (bu, çoğu dağıtımda varsayılan olarak yüklenen mod_redirect‘e gerek duyar):

$SERVER["socket"] == ":80" {
    url.redirect = ( "^/(.*)" => "https://yourdomain.com/$1" )
}

Dosyayı kaydedin ve kapatın.

Eski yöntem: birleşik PEM ve ssl.ca-file

Daha eski Lighttpd 1.4.x derlemeleri (1.4.53’ten önce), sertifika ve özel anahtarın birlikte birleştirildiği tek bir birleşik PEM kullanıyordu; ara zincir ise ayrıca ssl.ca-file aracılığıyla sağlanıyordu. Bu eski sistemlerden birini yönetiyorsanız, birleşik dosyayı şu şekilde oluşturun:

cat yourdomain.crt yourdomain.key > /etc/lighttpd/ssl/yourdomain.pem

Ardından bunu soket bloğunda referans olarak gösterin:

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.pem"
    ssl.ca-file = "/etc/lighttpd/ssl/yourdomain.ca-bundle"
}

Güncel Lighttpd’de, Adım 3’teki ayrı ssl.pemfile ve ssl.privkey biçimini tercih edin ve tam zinciri pemfile içinde tutun. ssl.ca-file yönergesi, gerçek amacının sunucu zincirini sunmak değil istemci sertifikalarını doğrulamak olması nedeniyle 1.4.60 sürümünde ssl.verifyclient.ca-file olarak yeniden adlandırıldı.

Adım 4: Yapılandırmayı test edin

Yeniden başlatmadan önce her zaman sözdizimini kontrol edin, çünkü bir hata sunucunun başlamasını önleyebilir. Şunu çalıştırın:

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

Sözdiziminin doğru olduğuna dair bir mesaj görmelisiniz. Modülleri de yükleyip başlatan daha kapsamlı bir kontrol için sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf komutunu kullanın. Devam etmeden önce bildirilen hataları düzeltin.

Adım 5: Lighttpd’yi yeniden başlatın

Değişiklikleri uygulayın. systemd kullanan modern bir sistemde, hizmeti yeniden başlatın:

sudo systemctl restart lighttpd

SysV init kullanan daha eski sistemlerde ise init betiğini kullanın:

sudo /etc/init.d/lighttpd restart

Tebrikler, SSL sertifikanız artık Lighttpd üzerinde kurulu. Sonucu doğrulamak ve anında bir durum raporu almak için SSL Checker‘ımızı kullanın veya SSL araçlarımızın tam setine göz atın. Gelişmiş seçenekler için resmi Lighttpd SSL belgelerine bakın.

Sıkça Sorulan Sorular

Lighttpd birleşik bir PEM dosyası mı yoksa ayrı sertifika ve anahtar dosyaları mı kullanır?

Güncel Lighttpd (1.4.56 ve sonrası) ayrı dosyaları önerir: sertifika ve ara zinciri ssl.pemfile ile adlandırılan dosyada, özel anahtarı ise ssl.privkey‘de. Sertifikayı ve anahtarı tek bir ssl.pemfile içinde birleştiren eski yöntem hâlâ çalışır, ancak ayrı biçim çoğu Sertifika Yetkilisinin dosyaları teslim etme yöntemine uygundur ve belgelenmiş öneri budur.

Ara zincir için hâlâ ssl.ca-file’a gerek var mı?

Hayır. Şu anki öneri, ara sertifikaları doğrudan ssl.pemfile dosyasına, sertifikanızın hemen ardından eklemektir. ssl.ca-file yönergesi, pemfile yalnızca yaprak sertifikayı içerdiğinde zinciri tamamlamak için kullanılan eski bir yöntemdi ve 1.4.60 sürümünde, gerçek rolü istemci sertifikası doğrulaması olduğu için ssl.verifyclient.ca-file olarak yeniden adlandırıldı.

Lighttpd’yi yeniden başlatmadan önce yapılandırmayı nasıl kontrol ederim?

Sözdizimini test etmek için sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf komutunu, modülleri de yükleyen daha kapsamlı bir test için ise sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf komutunu çalıştırın. Bir yazım hatasının sunucunun başlamasını önlememesi için yeniden başlatmadan önce bildirilen hataları düzeltin.

Tarayıcım Lighttpd üzerinde neden eksik bir sertifika zinciri gösteriyor?

Bu genellikle ara sertifikaların ssl.pemfile‘ınızdan eksik olduğu anlamına gelir. Sertifikanızı ve CA paketini önce sertifika olacak şekilde tek bir dosyada birleştirin ve ssl.pemfile‘ı bu dosyaya işaret edecek şekilde ayarlayın. Ardından yapılandırmayı test edin ve yeniden başlatın. Zincirin tam olduğunu SSL Checker‘ımızla doğrulayabilirsiniz.

SSL sertifikasının Lighttpd üzerinde kurulu olduğunu nasıl doğrularım?

Sitenize OpenSSL ile bağlanın ve sunduğu sertifikayı okuyun:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Sertifika kuruluysa, bu komut sertifikanın verenini ve geçerlilik tarihlerini yazdırır. Ayrıca sitenizi bir tarayıcıda açıp kilit simgesini kontrol edebilirsiniz.

Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!

Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.