Есть 2 приложения (node.js в моем случае), между которыми я хочу установить шифрованный канал и обмениваться сообщениями.
Это почти полностью решается TLS и клиентской аутентификацией. Например как-то так:
https://gist.github.com/pcan/e384fcad2a83e3ce20f9a... .
Однако есть проблема:
Такой подход предполагает создание серверного сертификата, который привязан к доменному имени:
Specify server Common Name, like 'localhost' or 'server.localhost'. The client will verify this, so make sure you have a vaild DNS name for this.
А мне хотелось бы избежать привязки, так как условный сервер в данном случае не имеет и не может иметь ни доменного имени, ни статического IP.
Таким образом хочется получить схему, где есть 2 хоста у которых может меняться IP и нет доменного имени. И они должны иметь возможность подключиться друг к другу (инициатором-"клиентом" соединения может выступать любой) как-то так например:
connectTo('123.123.123.123:8000');
При этом есть возможность заранее обменяться ключами / сертификатами.
Возможно ли это с помощью TLS?
И насколько адекватно и безопасно использовать обычные сокеты и шифровать контент? (примерно так
https://stackoverflow.com/questions/22738754/node-...