İçeriğe geç

Ürün belgeleriWindows VPS ve VDS

IIS'te ücretsiz HTTPS sertifikasıyla web sitesi yayınlayın

Windows Server'a IIS kurun, ana bilgisayar adı bağlamalarıyla site oluşturun, ASP.NET desteği ekleyin ve win-acme ile ücretsiz Let's Encrypt sertifikası alın.

  • Orta
  • 30 dk okuma
  • Güncellendi
Bu sayfada
  1. Başlamadan önce
  2. 1. adım: IIS'i kurun
  3. 2. adım: Siteyi oluşturun
  4. 3. adım: win-acme ile ücretsiz sertifika alın
  5. 4. adım: Uygulamanızı yayınlayın
  6. Sorun giderme
  7. Sonraki adımlar

Her Windows Server, Microsoft'un web sunucusu IIS'i içerir. ASP.NET ve ASP.NET Core uygulamalarını ve statik siteleri barındırır; ücretsiz win-acme istemcisiyle Let's Encrypt'ten sertifika alır ve bunları otomatik yeniler. Bu rehber bir Windows VPS veya VDS'i temiz kurulumdan çalışan bir HTTPS sitesine götürür.

Başlamadan önce

  • Uzak Masaüstü ile yönetici olarak ulaşabildiğiniz bir Windows sunucu; bkz. Windows sunucuda ilk adımlar.
  • A kaydı (ve www) sunucunun IP adresini gösteren bir alan adı; bkz. alan adını sunucuya yönlendirme. Sertifikalar ancak DNS sunucuyu gösterdiğinde verilebilir.
  • İnternetten erişilebilen 80 ve 443 portları.

Örneklerde alan adı example.com'dur ve site dosyaları C:\inetpub\example.com içindedir.

1. adım: IIS'i kurun

PowerShell'i yönetici olarak açın:

PowerShell
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Klasik ASP.NET (.NET Framework 4.x) ile yapılmış siteler için rol hizmetini de ekleyin:

PowerShell
Install-WindowsFeature -Name Web-Asp-Net45

ASP.NET Core uygulamaları için IIS'ten sonra Microsoft'un .NET indirme sayfasından .NET Hosting Bundle'ı kurun, ardından IIS'i yeniden başlatın:

Text
net stop was /y
net start w3svc

Hosting Bundle'ı IIS'ten önce kurduysanız onarmak için yükleyicisini daha sonra yeniden çalıştırın.

Doğrulama: sunucuda http://localhost açıldığında IIS başlangıç sayfası görünür.

2. adım: Siteyi oluşturun

Klasörü, bir deneme sayfasını ve iki ana bilgisayar adı için bağlamalarıyla siteyi oluşturun:

PowerShell
New-Item -ItemType Directory -Path "C:\inetpub\example.com"
Set-Content -Path "C:\inetpub\example.com\index.html" -Value "It works"
New-IISSite -Name "example.com" -PhysicalPath "C:\inetpub\example.com" -BindingInformation "*:80:example.com"
New-IISSiteBinding -Name "example.com" -BindingInformation "*:80:www.example.com" -Protocol http

Bağlama biçimi IP:port:ana-bilgisayar-adı'dır; * sunucunun tüm adresleri anlamına gelir. Bu site için ek bir IPv4 adresi kullanmak istiyorsanız * yerine o adresi yazın (bkz. Windows Server'a ek IPv4 adresi ekleme).

Güvenlik duvarının web trafiğine izin verdiğinden emin olun:

PowerShell
New-NetFirewallRule -DisplayName "Web HTTP and HTTPS" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443 -Profile Any

Doğrulama: kendi bilgisayarınızdan http://example.com "It works" gösterir.

3. adım: win-acme ile ücretsiz sertifika alın

  1. win-acme'nin güncel x64 trimmed sürümünü resmi web sitesinden indirin ve kalıcı bir klasöre açın, örneğin C:\Program Files\win-acme. Yenileme görevi bu klasörden çalışır; geçici bir klasör kullanmayın.
  2. wacs.exe dosyasını yönetici olarak çalıştırın.
  3. Ana menüde varsayılan ayarlarla sertifika oluşturmak için N seçin.
  4. IIS siteleri listesinden example.com sitesini seçin ve bağlamalarda bulunan ana bilgisayar adlarını onaylayın.
  5. İlk çalıştırmada hizmet koşullarını kabul edin ve süre dolumu bildirimleri için bir e-posta adresi girin.

win-acme alan adının denetiminin sizde olduğunu 80 portu üzerinden HTTP ile kanıtlar, sertifikayı indirir, ana bilgisayar adları için 443 portunda bir https bağlaması ekler ve yenilemeler için bir zamanlanmış görev oluşturur.

Doğrulama: https://example.com geçerli bir sertifikayla açılır ve Task Scheduler içinde bir win-acme yenileme görevi bulunur.

4. adım: Uygulamanızı yayınlayın

Yayınlanmış dosyalarınızı deneme sayfasının yerine C:\inetpub\example.com içine kopyalayın. ASP.NET Core uygulamaları dotnet publish ile yayınlanır ve 1. adımdaki Hosting Bundle'a ihtiyaç duyar. Her site kendi uygulama havuzunda çalışır; birden fazla site barındırıyorsanız IIS Manager › Application Pools altında her siteye bir ad verin.

Ziyaretçileri HTTP'den HTTPS'e yönlendirmek için Microsoft'un IIS için URL Rewrite modülünü kurun ve bir yönlendirme kuralı ekleyin ya da yönlendirmeyi uygulamanızda yapın.

Sorun giderme

win-acme doğrulamanın başarısız olduğunu bildiriyor. example.com adresinin sunucuya çözümlendiğini (Resolve-DnsName example.com) ve http://example.com adresine dışarıdan 80 portuyla ulaşılabildiğini kontrol edin. Sitenin önündeki bir proxy veya CDN denetimi engelleyebilir.

Her sayfa için HTTP Error 404. Sitenin klasörü boş veya varsayılan belge eksik. Klasörü ve IIS Manager'daki Default Document ayarını kontrol edin.

ASP.NET Core uygulamasında HTTP Error 500.19, 500.30 veya 502.5. Genellikle Hosting Bundle veya bir yapılandırma ayarı eksiktir; bkz. ASP.NET ve IIS hataları.

Tarayıcı başka bir sitenin sertifikasını gösteriyor. Ana bilgisayar adının kendi sertifikasıyla bir https bağlaması yok. O site için win-acme'yi yeniden çalıştırın veya IIS Manager'daki bağlamaları kontrol edin.

Sonraki adımlar

Sık sorulan sorular

Her HTTPS sitesi için ayrı bir IP adresine ihtiyacım var mı?

Hayır. IIS Server Name Indication'ı (SNI) destekler; böylece kendi sertifikası olan birçok site tek bir IP adresini paylaşabilir ve tüm güncel tarayıcılar bunu destekler.

Sertifika nasıl yenilenir?

win-acme, sertifikaları süreleri dolmadan yenileyen ve IIS bağlamalarını güncelleyen bir zamanlanmış görev oluşturur. Görev oradan çalıştığı için win-acme klasörünü açtığınız yerde tutun.

Doğrulama neden başarısız oluyor?

Genellikle alan adı henüz sunucuyu göstermiyordur ya da 80 portu bir güvenlik duvarında kapalıdır. Let's Encrypt'in HTTP denetimi alan adınıza 80 portundan bağlanır.

IIS'te PHP siteleri barındırabilir miyim?

Evet, Windows için PHP ve FastCGI ile; ancak PHP yazılımlarının çoğu Linux'ta test edilir. WordPress ve benzeri PHP siteleri için bir Linux sunucu veya web hosting hizmetimiz daha kolay seçimdir.

Şifre Oluştur

Lütfen onaylayın