Private/Advisors/Test-TlsAdvisory.ps1
|
function Test-TlsAdvisory { [CmdletBinding()] [OutputType([object[]])] param( [Parameter(Mandatory)][object]$Result, [Parameter(Mandatory)][object]$Roles ) if (-not $Result.PSObject.Properties['Tls']) { return @() } $tls = $Result.Tls if ($null -eq $tls -or -not $tls.Protocols) { return @() } foreach ($p in @($tls.Protocols)) { if (-not $p.Enabled) { continue } switch -Regex ($p.Name) { '^SSL ' { [pscustomobject]@{ Section = 'Tls'; Severity = 'Critical'; Rule = 'TlsLegacySsl' Message = "$($p.Name) is enabled ($($p.Side)). SSL is broken; disable both Client and Server keys." Context = @{ Protocol=$p.Name; Side=$p.Side } } } '^TLS 1\.[01]$' { [pscustomobject]@{ Section = 'Tls'; Severity = 'Warning'; Rule = 'TlsLegacyTls' Message = "$($p.Name) is enabled ($($p.Side)). Deprecated — disable unless a known client still needs it." Context = @{ Protocol=$p.Name; Side=$p.Side } } } } } } |