Я создал свой docker образ для локального запуска сервера HTTPS Node.js со всеми необходимыми и хорошо настроенными сертификатами TLS:
...
var port = config.port || 9010, https;
var tlsOptions = {
pfx: fs.readFileSync('./tls/keystore.p12'),
passphrase: ******,
honorCipherOrder: true,
secureOptions: constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_SSLv3
};
try {
https = require('https').Server(tlsOptions, app);
} catch (e) {
console.error('Fail to start HTTPS server ' + e);
}
...
Я успешно проверил его внутри контейнера, а также в хост, используя curl
.
Я бы сейчас опубликовал sh https://localhost:9010
контейнера, связывающего его с https://localhost:9010
хоста docker. Я использовал следующую команду:
docker container run --publish 9010:9010 --detach --name https_server_container https_server:1.0
Когда я запускаю curl https://localhost:9010
с хоста docker, моего локального компьютера, я получаю эту ошибку:
curl: (35) schannel: failed to receive handshake, SSL/TLS connection failed
I попытался выполнить docker do c Защитить Docker сокет демона , но ничего.
Какие шаги следует выполнить, чтобы правильно опубликовать sh сервер узла https в контейнер?
спасибо