Ü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
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:
Install-WindowsFeature -Name Web-Server -IncludeManagementToolsKlasik ASP.NET (.NET Framework 4.x) ile yapılmış siteler için rol hizmetini de ekleyin:
Install-WindowsFeature -Name Web-Asp-Net45ASP.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:
net stop was /y
net start w3svcHosting 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:
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 httpBağ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:
New-NetFirewallRule -DisplayName "Web HTTP and HTTPS" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443 -Profile AnyDoğrulama: kendi bilgisayarınızdan http://example.com "It works" gösterir.
3. adım: win-acme ile ücretsiz sertifika alın
- 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. wacs.exedosyasını yönetici olarak çalıştırın.- Ana menüde varsayılan ayarlarla sertifika oluşturmak için
Nseçin. - IIS siteleri listesinden
example.comsitesini seçin ve bağlamalarda bulunan ana bilgisayar adlarını onaylayın. - İ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
- Uygulama hatalarını giderin: ASP.NET ve IIS hataları.
- Ticari sertifikalar (OV, EV, wildcard): SSL sertifikası sipariş etme, doğrulama ve kurma.
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.