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

371
Vistas
Instale certificados SSL en mi secuencia de comandos canary puppeteer de AWS

Estoy tratando de escribir un script para probar mi API que se implementa en AWS EKS en Cloudwatch Synthetics (Canary). Pero no veo la disposición para agregar mi certificado y clave junto con mi solicitud de API.

¿Cómo puedo insertar el certificado junto con el encabezado de solicitud de la API? En mi local, agrego los certificados usando fs y los agrego a los encabezados de axios. Si es necesario agregar el certificado en el script del titiritero, ¿cómo puedo lograrlo?

Mensaje de error para referencia

ERROR: Solicitud fallida. Solicitud: https://myapirequestdns.com/api/v1.0/testroute/testdomain ERROR: Motivo de la falla: Error: leer ECONNRESET Pila: Error: leer ECONNRESET en TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20) en TLSWrap.callbackTrampoline (interno/async_hooks.js:130:17)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Este es el código que usamos en la parte superior de nuestra función Canary que ejecuta syn-nodejs-puppeteer-3.5 para recuperar y usar un certificado, una clave privada y una CA del administrador de secretos de AWS:

 const synthetics = require('Synthetics'); const log = require('SyntheticsLogger'); const syntheticsConfiguration = synthetics.getConfiguration(); const AWS = require('aws-sdk'); AWS.config.update({region: 'us-east-1'}); const secretsManager = new AWS.SecretsManager(); // We need to load a client certificate to authenticate to endpoints that require mTLS, specified in these env variables const secretName = process.env.SECRET_NAME const keyItemName = process.env.KEY_ITEM_NAME const certItemName = process.env.CERT_ITEM_NAME const caItemName = process.env.CA_ITEM_NAME // Function to retrieve specified key/cert from specified secret and return them as plain strings const getKeyAndCertAndCA = async function () { // Retrieve secret const data = await secretsManager.getSecretValue({SecretId: process.env.SECRET_NAME}).promise(); // Turn secret string into object const secret = JSON.parse(data.SecretString); // Base64 decode the cert and key and return them const key = Buffer.from(secret[keyItemName], 'base64').toString('ascii'); const cert = Buffer.from(secret[certItemName], 'base64').toString('ascii'); const ca = Buffer.from(secret[caItemName], 'base64').toString('ascii'); return [ key, cert, ca ]; }

Luego, justo dentro de la función apiCanaryBlueprint , cargue la clave/cert/CA

 const apiCanaryBlueprint = async function () { // Load TLS client cert and key for calls requiring TLS const [ key, cert, ca ] = await getKeyAndCertAndCA();

y luego, al configurar requestOptions , especifique los parámetros key , cert y ca :

 let requestOptions = { hostname: url.host, method: 'GET', path: url.path, port: '443', protocol: 'https:', body: "", headers: {}, key: key, cert: cert, ca: ca };
  • Debe configurar sus variables de entorno Canary para especificar el nombre del secreto y en qué claves (no clave privada) se almacenan el certificado, la clave privada y la CA dentro del secreto;
  • El elemento secreto debe tener el certificado, la clave privada y la CA incluidos como cadenas base64.
about 4 years ago · Juan Pablo Isaza 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