۱. نصب
Install-WindowsFeature Web-Server, Web-Asp-Net45, Web-Mgmt-Console, Web-Http-Redirect -IncludeManagementTools
Import-Module WebAdministration۲. سایت و Application Pool
هر سایت pool جداگانه داشته باشد تا خرابی یا نفوذ به یک سایت روی بقیه اثر نگذارد:
New-Item -ItemType Directory -Path C:\inetpub\portal
Set-Content C:\inetpub\portal\index.html "<h1>Portal</h1>"
New-WebAppPool -Name PortalPool
New-Website -Name Portal -PhysicalPath C:\inetpub\portal -ApplicationPool PortalPool -HostHeader portal.corp.sahor.ir -Port 80
Get-Website۳. HTTPS
گواهی را (مثلاً فایل PFX صادرشده از CA سازمان) وارد کنید و به سایت متصل کنید:
$pwd = Read-Host -AsSecureString "PFX password"
$cert = Import-PfxCertificate -FilePath C:\certs\portal.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $pwd
New-WebBinding -Name Portal -Protocol https -Port 443 -HostHeader portal.corp.sahor.ir -SslFlags 1
(Get-WebBinding -Name Portal -Protocol https).AddSslCertificate($cert.Thumbprint, "My")SslFlags 1 یعنی SNI فعال است و چند سایت HTTPS میتوانند روی یک IP باشند.
۴. انتقال HTTP به HTTPS
با ماژول URL Rewrite (جداگانه از سایت مایکروسافت نصب میشود) یک قانون redirect در web.config سایت تعریف کنید، یا سادهتر: binding پورت 80 را فقط برای redirect نگه دارید.
۵. حذف هدرهای اطلاعاتی
Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/security/requestFiltering' -Name removeServerHeader -Value $true
Remove-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/httpProtocol/customHeaders' -Name . -AtElement @{name='X-Powered-By'}۶. لاگها
لاگهای دسترسی در C:\inetpub\logs\LogFiles\W3SVC<id> ذخیره میشوند. شناسهی سایت:
(Get-Website -Name Portal).Id