Unfortunately I am not able to do a -k because of limitations of the version of cURL that I am using.
Essa é a abordagem errada desde o início. -k
desabilita qualquer validação do certificado do servidor e, assim, torna o homem no meio dos ataques fácil, isto é, permite exatamente o que o https pretende evitar.
- Configure NodeJS to send the CA, Cert, and Key during handshakes
- Have the requesting server do a cURL command, specifying the certificate in the command.
Não tenho certeza do que você está tentando alcançar aqui, mas se eu entendi corretamente, você deseja gerar um certificado no lado do servidor e, em seguida, enviar esse certificado para o cliente para que ele verifique esse certificado no futuro.
O problema com essa abordagem é que você precisa proteger o envio do certificado recém-criado do servidor para o cliente. Caso contrário, um homem no meio poderia apenas trocar o certificado contra um criado pelo atacante e assim continuar fazendo o homem indetectável nos ataques do meio.
Infelizmente, sua pergunta descreve uma tentativa de solucionar um problema desconhecido (consulte problema XY ). A maneira comum de fazer SSL é ter uma autoridade de certificação (CA) confiável já pelo cliente e um certificado emitido por essa CA. Na maioria dos casos, uma CA pública, como o Let's Encrypt, é usada para isso, pois essas autoridades de certificação já são confiáveis para o cliente (são fornecidas com sistema operacional ou navegador). Não há nenhuma explicação em sua pergunta por que você não pode seguir esse caminho estabelecido e, em vez disso, precisa inventar sua própria solução.