Skip to main content

Mise en place du TLS/SSL pour WSUS


Présentation

Attention : Le guide n'est pas fini. Ne l'appliquer pas.

Par défaut, WSUS ne chiffre pas les données. De nombreuses failles ont été découvertes, et pour les corriger, il faut activer le SSL. Pour cela, on aura besoin de modifier la GPO de l'emplacement du WSUS (remplacer http:// par https://) et d'ajouter un certificat.
Un exemple de l'importance du SSL : 

Vidéo YouTube faite par 2 intervenants au Black Hat

La mise en place du SSL demandera plus de performance sur le serveur, dû au chiffrement.

Pour la suite, il est nécessaire d'avoir la fonctionnalité "Scripts et outils de gestion IIS".

image-1622331584080.png

ou Install-WindowsFeature web-mgmt-console


Mise en place du certificat

Dans mon cas, j'ai récupéré le certificat et la clé privée depuis mon serveur web (fullchain.pem et privkey.pem). J'ai converti en .pfx. Une page est disponible pour cela. De plus j'ai défini un mot de passe.

Import-Module ServerManager
Add-WindowsFeature Web-Scripting-Tools
Install-WindowsFeature GPMC
Install-Module -Name PowerShellGet -Force
Install-Module –Name IISAdministration
Import-Module WebAdministration
Import-Module IISAdministration
Import-Module GroupPolicy

$myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain ; Write-Host $myFQDN
$cert = Get-ChildItem -Path Cert:\LocalMachine\My -SSLServerAuthentication
$certpassword = Read-Host -AsSecureString
Import-PfxCertificate -FilePath ~/documents/cert.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $certpassword
Import-PfxCertificate -FilePath ~/documents/cert.pfx -CertStoreLocation Cert:\LocalMachine\Root -Password $certpassword
$cert | New-Item IIS:\SslBindings\0.0.0.0!8531
# MANUALLY

# 6. Switch WSUS to SSL
& 'C:\Program Files\Update Services\Tools\WsusUtil.exe' configuressl $("$myFQDN".ToLower())
# 7. Change your GPO to point to the new URL
$key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate'
$uri = 'https://{0}:8531' -f $("$myFQDN".ToLower())
Get-GPO -All | Foreach-Object { 
 if ($_ | Get-GPRegistryValue -Key $key -ValueName WUServer -EA 0) {
  $_ | Set-GPRegistryValue -Key $key -ValueName WUServer       -Value $uri -Type String
  $_ | Set-GPRegistryValue -Key $key -ValueName WUStatusServer -Value $uri -Type String
 }
}

Pour la première commande, on rentre le mot de passe défini lors de la conversion. Mon certificat cert.pfx est placé dans Documents.

Sur IIS, pour chaque page, on change les paramètres SSL.

image-1622335550206.png

image-1622335859699.png

On fait cela pour SimpleAuthWebService, DSSAuthWebService, ServerSyncWebService, APIRemoting30 et ClientWebService.


Publication du certificat

Dans la GPO "WSUS - Location", on importe le certificat.

image-1622336143374.png

On rentre le mot de passe que l'on a mis lors de l'exportation (dans mon cas, la conversion).

image-1622336278780.png


Conclusion