IIS (Internet Information Services), Windows Server'ın yerleşik web sunucusudur. ASP.NET ve .NET uygulamalarını, statik siteleri ve API'leri yayınlamak için kullanılır. Bu rehberde Windows Server VDS'e IIS'i PowerShell ile kurmayı, ASP.NET desteği eklemeyi, yeni bir site oluşturup alan adı bağlamayı ve ücretsiz SSL tanımlamayı anlatıyoruz.
Gereksinimler
- Windows Server 2019, 2022 veya 2025 kurulu bir VDS ya da dedicated sunucu.
- Yönetici (Administrator) hesabıyla Uzak Masaüstü (RDP) erişimi.
- Sunucu IP adresine yönlendirilmiş bir alan adı (A kaydı).
Sunucuyu internete açmadan önce RDP portunu değiştirmenizi öneririz: RDP portu değiştirme rehberi.
1. Adım: IIS'i kurun
PowerShell'i Yönetici olarak açın ve web sunucusu rolünü yönetim araçlarıyla birlikte kurun:
Install-WindowsFeature -Name Web-Server -IncludeManagementToolsKurulum bitince tarayıcıda http://localhost adresini açtığınızda IIS karşılama sayfasını görmelisiniz.
2. Adım: ASP.NET ve faydalı modülleri ekleyin
# ASP.NET 4.x desteği
Install-WindowsFeature Web-Asp-Net45
# Sıkıştırma, URL yeniden yazma için gerekli altyapı ve log modülleri
Install-WindowsFeature Web-Dyn-Compression, Web-Http-Redirect, Web-Http-Logging, Web-Request-Monitor.NET 6/7/8 gibi ASP.NET Core uygulamalarını IIS üzerinde çalıştırmak için Microsoft'un resmi sitesinden ASP.NET Core Hosting Bundle paketini indirip kurmanız ve ardından iisreset komutunu çalıştırmanız gerekir.
URL yeniden yazma kuralları (ör. HTTP'den HTTPS'e yönlendirme) için Microsoft'un URL Rewrite eklentisini de kurmanız önerilir.
3. Adım: Site klasörünü oluşturun
New-Item -ItemType Directory -Path "C:\inetpub\alanadiniz.com" -Force
Set-Content -Path "C:\inetpub\alanadiniz.com\index.html" -Value "<h1>Merhaba IIS!</h1>"4. Adım: Uygulama havuzu ve siteyi oluşturun
Her siteyi kendi uygulama havuzunda (Application Pool) çalıştırmak, bir sitedeki sorunun diğerlerini etkilemesini önler:
Import-Module WebAdministration
New-WebAppPool -Name "alanadiniz.com"
New-Website -Name "alanadiniz.com" -Port 80 -HostHeader "alanadiniz.com" -PhysicalPath "C:\inetpub\alanadiniz.com" -ApplicationPool "alanadiniz.com"
New-WebBinding -Name "alanadiniz.com" -Protocol http -Port 80 -HostHeader "www.alanadiniz.com"Aynı işlemleri grafik arayüzden yapmak için Sunucu Yöneticisi » Araçlar » IIS Yöneticisi'ni açıp Siteler'e sağ tıklayarak Web Sitesi Ekle'yi seçebilirsiniz.
Kurulumla gelen "Default Web Site" de 80 portunu dinler. Host header (alan adı) tanımlamadığınız bir site eklerseniz çakışma olur; varsayılan siteyi durdurabilir veya silebilirsiniz.
5. Adım: Güvenlik duvarında portları açın
IIS kurulumu genellikle gerekli kuralları ekler. Eklenmediyse:
New-NetFirewallRule -DisplayName "HTTP 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS 443" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow6. Adım: Ücretsiz SSL sertifikası (Let's Encrypt)
Windows'ta Let's Encrypt sertifikası almanın en pratik yolu açık kaynaklı win-acme aracıdır:
- win-acme'nin resmi sitesinden (win-acme.com) güncel sürümü indirip bir klasöre çıkartın.
wacs.exedosyasını yönetici olarak çalıştırın.- N: Create certificate (default settings) seçeneğini seçin.
- Listeden IIS sitenizi seçin; araç alan adlarını otomatik algılar.
- Sertifika alınır, IIS'e 443 bağlantısı olarak eklenir ve otomatik yenileme için zamanlanmış görev oluşturulur.
7. Adım: HTTP'den HTTPS'e yönlendirme
URL Rewrite eklentisi kuruluysa site klasöründeki web.config dosyasına şu kuralı ekleyin:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTPS'e yonlendir" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>Performans ve güvenlik önerileri
- Dinamik ve statik sıkıştırmayı açın (IIS Yöneticisi » Sıkıştırma).
- Uygulama havuzlarının Kimlik ayarını varsayılan
ApplicationPoolIdentityolarak bırakın; site klasörüne yalnızca gereken izinleri verin. - Kullanılmayan IIS modüllerini ve WebDAV'ı kapatın.
- Windows Update'i düzenli çalıştırın.
Sonuç
IIS ile Windows Server üzerinde birkaç komutla ASP.NET ve statik siteler yayınlayabilir, win-acme ile ücretsiz SSL ekleyebilirsiniz. Windows Server projeleriniz için DDoS korumalı VDS sunucularımızı veya yoğun iş yükleri için dedicated sunucularımızı inceleyebilirsiniz.
Sık Sorulan Sorular
IIS ücretli mi?
Hayır. IIS, Windows Server'ın içinde gelen ücretsiz bir roldür; yalnızca Windows Server lisansı gerekir.
IIS üzerinde PHP çalıştırabilir miyim?
Evet. PHP'yi FastCGI ile IIS'e ekleyebilirsiniz. Ancak PHP projeleri için Linux üzerindeki Nginx veya LiteSpeed genellikle daha performanslıdır.
IIS için ücretsiz SSL alabilir miyim?
Evet. win-acme gibi açık kaynaklı araçlarla Let's Encrypt sertifikası alıp IIS sitenize bağlayabilir ve otomatik yenilemeyi etkinleştirebilirsiniz.
