односторонний ssl с curl

односторонний ssl с curl

Я знаю, что существует множество тем и статей, но в этой теме я действительно запутался.

У меня есть экземпляр NodeJS, работающий на TLS. Мне нужен другой сервер для подключения к нему с помощью cURL. К сожалению, я не могу сделать это -kиз-за ограничений версии cURL, которую я использую.

Поэтому мне нужно, чтобы при подключении не было предупреждений о сертификатах.

Мои мысли таковы:

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.

Это имеет какой-то смысл или это наоборот? У меня большие проблемы с дифференциацией каждой части.

Спасибо,

Редактировать

Так что, судя по ответам, я понятия не имею, что делаю. Если бы я мог получить копию CA, открытого и закрытого ключей. Как бы я тогда поступил? Пожалуйста, будьте многословны.

решение1

К сожалению, я не могу выполнить команду -k из-за ограничений версии cURL, которую я использую.

Это неверный подход с самого начала. -kОн отключает любую проверку сертификата сервера и, таким образом, упрощает атаки типа «человек посередине», т.е. позволяет делать именно то, что https призван предотвратить.

  1. Настройте NodeJS дляотправьте CA, Cert и Key во время рукопожатий
  2. Попросите запрашивающий сервер выполнить команду cURL,указание сертификата в команде.

Я не совсем понимаю, чего вы пытаетесь добиться, но если я правильно вас понял, вы хотите сгенерировать сертификат на стороне сервера, а затем отправить этот сертификат клиенту, чтобы он в будущем сверился с этим сертификатом.

Проблема этого подхода в том, что вам нужно защитить отправку только что созданного сертификата с сервера на клиент. В противном случае человек посередине может просто обменять сертификат на тот, который был создан злоумышленником, и таким образом продолжить проводить необнаружимые атаки типа «человек посередине».

К сожалению, ваш вопрос описывает попытку решения неизвестной проблемы (см.проблема XY). Обычный способ сделать SSL — иметь центр сертификации (CA), которому клиент уже доверяет, и сертификат, выданный этим CA. В большинстве случаев для этого используется публичный CA, такой как Let's Encrypt, поскольку эти CA уже доверяют клиенту (поставляются с ОС или браузером). В вашем вопросе нет объяснения, почему вы не можете пойти этим устоявшимся путем и вместо этого должны придумать свое собственное решение.

Связанный контент