lighttpd ve “gerçek” SSL sertifikaları

Önceki yazımda, SSL sertifikasını yerleştirdiğimden bahsetmiştim. Bu yazımda ise SSL sertifikasını lighttpd’ye nasıl yerleştirdiğimi açıklayayım.
Öncelikle lighttpd’nin SSL desteğinin açık olup olmadığını öğrenin:

ras0ir@hamster [~] % lighttpd -v
lighttpd-1.4.x (ssl) - a light and fast webserver
Build-Date: Mar 25 2009 15:04:47

Belirttiğim gibi eğer “(ssl)” yazıyorsa, lighttpd ssl desteklemektedir. Gelelim yapılması gereken işlemlere:

Öncelikle sertifikalarınıza dair bir klasör oluşturmanızı tavsiye ederim. Nitekim düzenli bir şekilde çalışmak kargaşadan uzak tutar sizi. Ben şahsen /etc/lighttpd/ssl klasörü altında tutuyorum gerekli dosyaları. Ayrıca neyin ne olduğunu da not alıyorum ki yenilemek gerektiğinde hatırlayayım.

Öncelikle private bir key oluşturarak işe koyulalım:
openssl genrsa -des3 -out alanadi.key 1024

Bu komutu verdiğinizde dikkat etmeniz gereken husus Common Name direktifidir. Zira alan adınızı burada tanımlayacaksınız. Yani SSL sertifikasının geçerli olacağı alan adını burada http:// kullanmadan yazmalısınız.

openssl rsa -in alanadi.key -out alanadi.nopass.key
komutunu vererek “mümkün olduğunca parola kullanmayarak (son kısımda parola kullanmak isteyip istemediğinizi sorar)” private key’inizi oluşturun.

Ardından, CSR (Certificate Signing Request) oluşturmanız istenecektir. Oluşturulan CSR, SSL sertifikasını sağlayacak servis sağlayıcıya aktarılması gereken anahtardır. CSR oluşturmak için:
openssl req -new -key alanadi.nopass.key -out alanadi.csr

Böylelikle komutu verdiğiniz dizinde, alanadi.csr isimli CSR dosyası oluşacak, bunu SSL sertifikası aldığınız yere vereceksiniz.

Servis sağlayıcınıza CSR’ı aktardıktan sonra, bir kaç dakika (yaklaşık 10 dakika içinde) sertifikanız servis sağlayıcınız tarafından size aktarılacaktır.
Aktarılan sertifikayı alanadi.crt olarak kaydedebilirsiniz. Kaydettikten sonra,

cat alanadi.nopass.key alanadi.crt > alanadi.pem
komutunu verdiğiniz takdirde, kullanıma hazır bir sertifikanız olacaktır. Sıra bu sertifikayı lighttpd’de nasıl kullanacağımıza geliyor. lighttpd.conf üzerinde kullanabileceğiniz gibi, oluşturacağınız başka bir yapılandırma dosyasını lighttpd.conf’da include ettirebilirsiniz.

Mesela ben lighttpd.conf içerisinde:
include "vhost/ssl.conf" direktifini kullanıyorum.

ssl.conf dosyamın içeriği ise:

$SERVER["socket"] == "alanadi:443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/alanadi.pem"
}

Tekrar hatırlatmakta fayda görüyorum, ayrı bir dosya kullanmak yerine doğrudan lighttpd.conf dosyasına da yazabilirsiniz. Tüm işlerinizi hallettikten sonra lighttpd’yi tekrar başlatabilirsiniz.

Yeri gelmişken değineyim, belirli bir alan adı için, bütün http taleplerini https’e aktarmak için:

$HTTP["scheme"] =~ "http$" {
url.redirect = ( "^/(.*)" => "https://alanadi/$1" ) }

yapısını kullanabilirsiniz.

Örneğini ise http://code.archlinux.org.tr adresinde görebilirsiniz. Umarım bu yazı işinize yarar.

Leave a comment

Your comment

Click to Insert Smiley

SmileBig SmileGrinLaughFrownBig FrownCryNeutralWinkKissRazzChicCoolAngryReally AngryConfusedQuestionThinkingPainShockYesNoLOLSillyBeautyLashesCuteShyBlushKissedIn LoveDroolGiggleSnickerHeh!SmirkWiltWeepIDKStruggleSide FrownDazedHypnotizedSweatEek!Roll EyesSarcasmDisdainSmugMoney MouthFoot in MouthShut MouthQuietShameBeat UpMeanEvil GrinGrit TeethShoutPissed OffReally PissedMad RazzDrunken RazzSickYawnSleepyDanceClapJumpHandshakeHigh FiveHug LeftHug RightKiss BlowKissingByeGo AwayCall MeOn the PhoneSecretMeetingWavingStopTime OutTalk to the HandLoserLyingDOH!Fingers CrossedWaitingSuspenseTremblePrayWorshipStarvingEatVictoryCurseAlienAngelClownCowboyCyclopsDevilDoctorFemale FighterMale FighterMohawkMusicNerdPartyPirateSkywalkerSnowmanSoldierVampireZombie KillerGhostSkeletonBunnyCatCat 2ChickChickenChicken 2CowCow 2DogDog 2DuckGoatHippoKoalaLionMonkeyMonkey 2MousePandaPigPig 2SheepSheep 2ReindeerSnailTigerTurtleBeerDrinkLiquorCoffeeCakePizzaWatermelonBowlPlateCanFemaleMaleHeartBroken HeartRoseDead RosePeaceYin YangUS FlagMoonStarSunCloudyRainThunderUmbrellaRainbowMusic NoteAirplaneCarIslandAnnouncebrbMailCellPhoneCameraFilmTVClockLampSearchCoinsComputerConsolePresentSoccerCloverPumpkinBombHammerKnifeHandcuffsPillPoopCigarette