SSL unidirecional com curl

SSL unidirecional com curl

Eu sei que existem muitos tópicos e artigos por aí, mas estou realmente girando neste.

Tenho uma instância do NodeJS em execução em TLS. Preciso de outro servidor para me conectar a ele usando cURL. Infelizmente não consigo fazer isso -kdevido às limitações da versão do cURL que estou usando.

Portanto, preciso que não haja avisos de certificado durante a conexão.

Meu pensamento é este:

1. to generate a cert 
2. generate a certificate signing request
3. acquire the CA
4. sign the certificate with the CA
5. Configure NodeJS to send the CA, Cert, and Key during handshakes
6. Have the requesting server do a cURL command, specifying the certificate in the command.

Isso faz algum sentido ou está ao contrário? Tenho muita dificuldade em diferenciar cada parte dele.

obrigado,

Editar

Aparentemente, não tenho ideia do que estou fazendo com base nas respostas. Se eu pudesse obter uma cópia da CA, das chaves públicas e privadas. Como então eu procederia? Por favor, seja detalhado.

Responder1

Infelizmente não consigo fazer um -k devido às limitações da versão do cURL que estou usando.

Essa é a abordagem errada desde o início. -kdesativa qualquer validação do certificado do servidor e, portanto, facilita os ataques man in the middle, ou seja, permite exatamente o que o https pretende evitar.

  1. Configurar o NodeJS paraenvie o CA, o certificado e a chave durante os handshakes
  2. Faça com que o servidor solicitante execute um comando cURL,especificando o certificado no comando.

Não tenho certeza do que você está tentando alcançar aqui, mas se bem entendi, você deseja gerar um certificado no lado do servidor e, em seguida, enviar esse certificado ao cliente para que ele verifique esse certificado no futuro.

O problema com esta abordagem é que você precisa proteger o envio do certificado recém-criado do servidor para o cliente. Caso contrário, um intermediário poderia simplesmente trocar o certificado por um criado pelo invasor e, assim, continuar a realizar ataques intermediários indetectáveis.

Infelizmente, sua pergunta descreve uma tentativa de resolver um problema desconhecido (consulteProblema XY). A maneira comum de fazer SSL é ter uma autoridade de certificação (CA) já confiável para o cliente e um certificado emitido por esta CA. Na maioria dos casos, uma CA pública como Let's Encrypt é usada para isso, uma vez que essas CA já são confiáveis ​​pelo cliente (fornecidas com sistema operacional ou navegador). Não há 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.

informação relacionada