icinga-powershell-framework/lib/webserver/New-IcingaSSLStream.psm1

30 lines
1,003 B
PowerShell
Raw Normal View History

2020-03-24 07:42:14 -04:00
function New-IcingaSSLStream()
{
param(
[System.Net.Sockets.TcpClient]$Client = $null,
2020-03-24 07:42:14 -04:00
[Security.Cryptography.X509Certificates.X509Certificate2]$Certificate = $null
);
if ($null -eq $Client) {
return $null;
}
[System.Net.Security.SslStream]$SSLStream = $null;
try {
$SSLStream = New-Object System.Net.Security.SslStream($Client.GetStream(), $false);
$TLSProtocols = [System.Security.Authentication.SslProtocols]::Tls12 -bor [System.Security.Authentication.SslProtocols]::Tls13;
$SSLStream.AuthenticateAsServer($Certificate, $false, $TLSProtocols, $true) | Out-Null;
} catch {
if ($null -ne $SSLStream) {
$SSLStream.Close();
$SSLStream.Dispose();
$SSLStream = $null;
}
2021-12-09 11:42:06 -05:00
Write-IcingaEventMessage -EventId 1500 -Namespace 'Framework' -ExceptionObject $_ -Objects $Client.Client;
return $null;
}
2020-03-24 07:42:14 -04:00
return $SSLStream;
}