Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1K
Vistas
No se pudo establecer la conexión SSL: System.Security.Authentication.AuthenticationException

El código de mi servidor (que se ejecuta en un AWS Lambda .net Core 3.1) de repente dejó de autenticarse con mi servidor API. Ha estado funcionando durante años, pero hoy dejó de funcionar tanto en entornos de producción como de desarrollo simultáneamente. Los errores que estoy recibiendo son

 System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.

El código fuente relevante es

 WebRequest httpWebRequest2 = WebRequest.Create(APIurl); httpWebRequest2.Method = "GET"; httpWebRequest2.Accept = "application/json" httpWebRequest2.Timeout = 60 * 1000 httpWebRequest2.Headers.Add("Authorization", _APIToken); WebResponse response = httpWebRequest2.GetResponseAsync().Result;

Estoy usando letsencrypt para generar certificados, y ninguno de los certificados (para mi URL de API de desarrollo o URL de API de producción) ha caducado. Las consultas HTTPS tienen éxito en todas las demás plataformas que he probado.

En este punto, ni siquiera sé qué más solucionar. Puedo dar tanta más información como sea necesario.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Este es un problema con Amazon Linux 2 que las funciones de Lambda utilizan para ejecutar sus entornos de tiempo de ejecución. A partir de esta publicación, Amazon Linux 2 utiliza OpenSSL 1.0 (específicamente el paquete openssl-1.0.2k-19.amzn2.0.6.x86_64 ). A partir de hoy, 30 de septiembre de 2021, el certificado anterior de Let's Encrypt de DST Root CA X3 venció y una peculiaridad de esto es que la cadena de certificados preferida predeterminada de Let's Encrypt ya no funciona con OpenSSL 1.0.

Puede solucionar este problema como se indica en esta publicación , según cómo haya generado sus certificados de Let's Encrypt. Por ejemplo, utilizamos CertBot y necesitábamos pasar el --preferred-chain 'ISRG Root X1' para generar un certificado compatible para OpenSSL 1.0.

Con suerte, el entorno de tiempo de ejecución subyacente será compatible pronto con la preferencia de cadena predeterminada.

over 4 years ago · Santiago Trujillo Denunciar

0

También encontré una solución temporal para poner en funcionamiento las funciones de Lambda. Solo logré que funcione en el tiempo de ejecución netcoreapp3.1, no en el 2.1.

Esencialmente, fui y descargué el certificado R3 intermedio "correcto" de Let's Encrypt

Lo agregué a las carpetas de proyecto de mis funciones, configuré el archivo para que se "copie en el directorio de salida":

 <ItemGroup> <None Update="lets-encrypt-r3.pem"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup>

Después de esto, agregué la siguiente variable de entorno a mi función:

 "SSL_CERT_FILE" = "/var/task/lets-encrypt-r3.pem"

Al hacer este cambio, los errores de SSL desaparecieron. Según tengo entendido, la variable de entorno SSL_CERT_FILE le indicará a OpenSSL que use el certificado dado para la validación, aunque es posible que solo use el certificado dado, así que pruébelo en sus propias funciones antes de enviarlo a producción :-) Dicho esto, uno de mis las funciones se conectan a MailGun, que funcionó

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda