Amazon S3 позволяет использовать статический хостинг веб-сайтов, но с требованием, чтобы имя ведра соответствовало вашему доменному имени. Это означает, что ваше имя в виде ковша будет выглядеть так: mydomain.com. Amazon S3 также предоставляет SSL-сертификат подстановки для * .s3.amazonaws.com. По правилам TLS это означает, что com.s3.amazonaws.com IS покрыт сертификатом, но mybucket.com.s3.amazonaws.com - нет. Приложения Node, такие как Knox, которые подключаются к * .com.s3.amazonaws.com, действительно должны иметь возможность доверять этому сертификату, даже если он нарушает правила TLS, поскольку библиотека knox является «закрытой системой»: она только когда-либо соединяется к собственности Amazon.Переопределение модуля node.js низкого уровня
Модуль Node https
опирается на tls.js
и tls.js
имеет эту функцию:
function checkServerIdentity(host, cert) {
...
// "The client SHOULD NOT attempt to match a presented identifier in
// which the wildcard character comprises a label other than the
// left-most label (e.g., do not match bar.*.example.net)."
// RFC6125
if (!wildcards && /*/.test(host) || /[.*].**/.test(host) ||
/*/.test(host) && !/*.*..+..+/.test(host)) {
return /$./;
}
Что будет правильно возвращать ошибку «Сертификат несовпадение». Может ли верхний уровень модуля Knox переопределить функцию checkServerIdentity, которая несколько уровней вниз и не вызвана непосредственно Knox? Я знаю, как переопределить функцию в требуемой библиотеке, но не библиотеки, которые включены в эти библиотеки.
Просьба уточнить: вы хотите сказать, что мое включение tls в мое приложение и переопределение функции также переопределит его в глобальном кеше, или вы говорите, делая это через ваш псевдокод, НЕ модифицируйте глобальный кеш? – regretoverflow
Да: переопределение функции переопределит ее в глобальном кеше. Мой пример показывает, что изменение tls в main.js также меняет его в mod.js –
Спасибо, но переопределение откроет проблемы с безопасностью для других приложений узла, если в глобальном кеше была моя специфическая переопределенность Amazon. – regretoverflow