Configuração mTLS com Certificado AWS Nginx

EXIBINDO RESPOSTAS:

Avatar discord do usuario xic0te

xic0te

Pessoal, no meu sistema usamos o certificado da AWS, não configuramos o .pem no servidor, neste caso como podemos definir nestas duas linhas da configuração do nginx: ssl_certificate e ssl_certificate_key, estamos confusos em como fazer isso nesta parte.

Avatar discord do usuario rubenskuhl

rubenskuhl

AWS é mais prático usar o API Gateway... o <@!891428228793782352> fez recentemente, se entendi direito.

Avatar discord do usuario xic0te

xic0te

Como faço isso então?

Avatar discord do usuario marcelomarkus

marcelomarkus

Utilizamos AWS também, utilizamos nodejs (PM2)

Avatar discord do usuario marcelomarkus

marcelomarkus

const express = require("express");
const fs = require("fs");
const https = require("https");
const url = require('url');
const bodyParser = require("body-parser");
let FormData = require('form-data');
const axios = require("axios");
var logger = require('morgan');
const httpsOptions = {
cert: fs.readFileSync("fullchain.pem"), // Certificado fullchain do dominio
key: fs.readFileSync("privkey.pem"), // Chave privada
ca: fs.readFileSync("chain-pix-prod.crt"), // Certificado Gerencianet
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Mantenha como false para que os demais endpoints da API não rejeitem requisições sem MTLS
};
const app = express();
const httpsServer = https.createServer(httpsOptions, app);
//const PORT = 443;
const PORT = 3000;
app.use(logger('dev')); // Comente essa linha caso não queira que seja exibido o log do servidor no seu console
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.post("/webhook", (request, response) => {
if (request.socket.authorized) {
response.status(200).end();
})
.catch(function (error) {
//console.log
});
} else {
response.status(401).end();
//console.log("não autorizado!");
}
});
// Endpoind para recepção do webhook tratando o /pix
app.post("/webhook/pix", (request, response) => {
if (request.socket.authorized) {
response.status(200).end();
} else {
response.status(401).end();
}
});
httpsServer.listen(PORT, () =>
console.log(listen running on port ${PORT})
);

Avatar discord do usuario xic0te

xic0te

@Consultoria Técnica Alguém pode me ajudar com isso?

Avatar discord do usuario guilherme_efi

guilherme_efi

Bom dia, <@!237939353911820289>.
Por ser uma configuração de servidor específica e característica da hospedagem da AWS não conseguimos muitos detalhes neste quesito.
Em casos de clientes que utilizam este ambiente conseguiram solucionar a configuração de mTLS seguindo os passos do seguinte tutorial.
https://aws.amazon.com/pt/blogs/compute/introducing-mutual-tls-authentication-for-amazon-api-gateway/

Tendo realizado esta configuração conseguimos averiguar se a URL foi registrada com sucesso, e se está sendo enviada as notificações corretamente.