簡體   English   中英

Node.js SSL身份驗證

[英]Node.js SSL authentication

我設置了HTTPS node.js服務器,但是在理解如何正確使用它方面遇到了麻煩。

app.get('/test', function(req, res){
    console.log('got in');
    if(req.client.authorized){
        res.send(200, 'certified');
    }else{
        res.send(200, 'idk who you are');
    }
});

require('https').createServer({
    key: fs.readFileSync('key.pem'),
    cert: fs.readFileSync('cert.pem'),
    requestCert: true,
    rejectUnauthorized: false
}, app).listen(8080);

客戶端必須做什么才能在我的服務器上獲得“授權”?

我可以瀏覽到

https://localhost:8080/test

並告訴我我的證書不受信任(沒關系,SSL現在是自簽名的。)。 無論如何,我都會繼續,但是我總是去'idk you are',這意味着SSL身份驗證失敗。

我很確定我在這里錯過了一步。

PS,如果很重要,我正在設置SSL以用於加密。

由於客戶端提供的證書未由受信任的證書頒發機構簽名,因此authorized屬性為false。 被視為rejectUnauthorized為假,不拒絕連接,而是將其標記為未授權。

看到這里-https://github.com/joyent/node/blob/master/lib/_tls_wrap.js#L512

暫無
暫無

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

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