Quando um arquivo é baixado do proxy de nuvem para um endpoint Windows, ele pode falhar devido a protocolos de segurança.

Problema

O download do script falha em uma plataforma Windows com a seguinte mensagem:
A solicitação foi anulada: não foi possível criar o canal seguro SSL/TLS.
Há três tipos de scripts do PowerShell hospedados no proxy de nuvem que podem ser baixados e executados nas VMs de endpoint Windows para diferentes finalidades:
  • Para instalar o Telegraf personalizado usando um script (download.ps1).
  • Para instalar o Telegraf personalizado em um servidor físico (unmanagedagent_setup_sample.ps1).
  • Para configurar o Telegraf de software livre em VMs gerenciadas ou não gerenciadas (open_source_telegraf_monitor.ps1).

Solução

Ignore o ServerCertificateValidationCallback usando o seguinte comando.
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type)
{
$certCallback = @"
    using System;
    using System.Net;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    public class ServerCertificateValidationCallback
    {
        public static void Ignore()
        {
            if(ServicePointManager.ServerCertificateValidationCallback ==null)
            {
                ServicePointManager.ServerCertificateValidationCallback +=
                    delegate
                    (
                        Object obj,
                        X509Certificate certificate,
                        X509Chain chain,
                        SslPolicyErrors errors
                    )
                    {
                        return true;
                    };
            }
        }
    }
"@
    Add-Type $certCallback
 }
[ServerCertificateValidationCallback]::Ignore()
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Depois de baixar e executar o script necessário, ServerCertificateValidationCallback pode ser ativado.