Amazon S3允許靜態網站託管,但要求存儲桶名稱必須與您的域名匹配。這意味着您的存儲桶名稱將如下所示:mydomain.com。 Amazon S3還爲* .s3.amazonaws.com提供通配符SSL證書。根據TLS的規則,這意味着com.s3.amazonaws.com被證書覆蓋,但mybucket.com.s3.amazonaws.com不是。像連接到* .com.s3.amazonaws.com的節點應用程序,如Knox應該真的能夠信任該證書,即使它打破了TLS的規則,因爲knox庫是一個「封閉系統」:它只能連接到亞馬遜物業。覆蓋低級別node.js模塊
節點模塊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 2013-04-05 19:10:12
是:覆蓋該函數將覆蓋它在全局緩存中。我的例子顯示,在main.js中更改tls也會在mod.js中更改它 – 2013-04-05 20:46:58
謝謝,但如果全局緩存中有我的亞馬遜特定覆蓋,則覆蓋會爲其他節點應用程序帶來安全問題。 – regretoverflow 2013-04-08 21:03:54