簡體   English   中英

在nodejs中設置https cookie

[英]setting up https cookie in nodejs

我也在嘗試在我的網站上設置登錄系統。

聽說 nodejs cookies 是一個很好的方法。

在以下鏈接中:
https://stackoverflow.com/a/21809393/322537
https://nodejs.org/dist/latest-v8.x/docs/api/https.html
我找到了如何創建 https 服務器的示例。 據我了解,每次客戶端發出請求時,createServer function 都應該運行。

所以我的代碼中有以下內容:

var server_https=modules.https.createServer({
    key: this.ssl_key,
    cert:this.ssl_cert
    },this.respond_to_client).listen(this.port);


mconnection.prototype.respond_to_client=function(request,response){
    console.log('responded to client');
    }

隨着網站的啟動和運行,服務器似乎運行良好。 function appears to never run as nodejs's log file never indicates the 'responded to client' string.但是 function 似乎永遠不會運行,因為 nodejs 的日志文件從未指示“響應客戶端”字符串。

怎么可能? 這可能與我稍后在代碼中將 https 服務器升級到 websocket 有關嗎?

計划是讓 cookies 識別客戶端,然后設置登錄系統。 但我堅持這一點。 /:

我已經復制了您的節點腳本以進行本地測試。 我首先在 http(vs https)上運行,並且能夠得到很好的響應。 但是,在移動到 https 后,服務器永遠不會收到請求。 在發送實際請求之前,瀏覽器必須首先建立安全連接。

嘗試在同一端口上運行多個服務器(https 和 ws)時,我遇到了類似的問題。 您所擁有的非常接近,但是您對 https.createServer({options}, handler) 的設置需要調整。

你在哪里:

var server_https= https.createServer({
        key: this.ssl_key,
        cert:this.ssl_cert
},respond_to_client).listen(this.port);

您還需要為“ca”添加一個選項:

var server_https= https.createServer({
        key: this.ssl_key,
        cert: this.ssl_cert,
        ca: this.ssl_ca,  // also add this
},respond_to_client).listen(this.port);

我用於“ca”的值是文件的內容:intermediate.crt 從證書簽名機構收到。


重要的

雖然可以使用自簽名證書來完成這項工作,但我從來沒有這樣做過,因為沒有簽名授權。


因此,就像您對其他證書文件所做的那樣,您也應該對 middle.crt 文件執行此操作。

//Where you read your other cert files: add another.
this.ssl_ca = modules.fs.readFileSync(this.ssl_ca_pathfile);

我發現這很困難,而且記錄不充分。 我不是 SSL/TSL 方面的專家,但是可以快速搜索中間證書:

中間證書是受信任的根頒發的專門用於頒發終端實體服務器證書的從屬證書。 結果是一個證書鏈,從受信任的根 CA 開始,通過中間證書並以頒發給您的 SSL 證書結束。 此類證書稱為鏈式根證書。 資源

middle.crt 將具有以下結構:

-----BEGIN CERTIFICATE-----
****
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
****
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
****
-----END CERTIFICATE-----

這是瀏覽器中的響應。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM