Skip to content

Node.js v0.12.7 session resumption (caching) is not working #3132

@Fr1ar

Description

@Fr1ar

I'm trying to run node.js with session resumption, but it doesn't work.

var tls = require('tls');
var fs = require('fs');
var credentials = {
    key: fs.readFileSync('/etc/ssl/private.key'),
    cert: fs.readFileSync('/etc/ssl/node/domain.crt'),
    ca: [ fs.readFileSync('/etc/ssl/node/root.crt') ],
    honorCipherOrder: true,
    ciphers: 'AES256+EECDH:AES256+EDH:!aNULL'
};
var server = tls.createServer(credentials);
server.listen(443, '172.64.51.208');

Everithing works fine with tickets:

$ openssl s_client -connect DOMAINNAME.COM:443 -reconnect 2>/dev/null | grep Session-ID:

Output:

    Session-ID: 6ED6DF08F215B3EE1059469314F1A7AE5429DF30F9D1DD8F80D79EA8F369A883
    Session-ID: 6ED6DF08F215B3EE1059469314F1A7AE5429DF30F9D1DD8F80D79EA8F369A883
    Session-ID: 6ED6DF08F215B3EE1059469314F1A7AE5429DF30F9D1DD8F80D79EA8F369A883
    Session-ID: 6ED6DF08F215B3EE1059469314F1A7AE5429DF30F9D1DD8F80D79EA8F369A883
    Session-ID: 6ED6DF08F215B3EE1059469314F1A7AE5429DF30F9D1DD8F80D79EA8F369A883
    Session-ID: 6ED6DF08F215B3EE1059469314F1A7AE5429DF30F9D1DD8F80D79EA8F369A883

However, with -no_ticket option it doesn't work:

$ openssl s_client -connect DOMAINNAME.COM:443 -reconnect -no_ticket 2>/dev/null | grep Session-ID:

Output:

    Session-ID: F78DAC5F641D784BED89B294D455A58A6865949737E2938A20F1CD4D0AE3B843
    Session-ID: 3ADCB81F4C86AEA45EA26C1A482A8FFD5A8EDAA7E18E080CC69548A9CF21C425
    Session-ID: BF694439560F429B1DAADCDCBDB6059574809D15690ED369ADD56C5FAD2EAE8D
    Session-ID: 5FC2773475D4F2725DCE5951C5B188A4B3FCC7913FB710FD3901E937734FD735
    Session-ID: 895149C5EFF7FC6B233E5F1C78A2E01AE46D091D46A8F0EA1C71E357B3591913
    Session-ID: 1005FB0D046B030F6216BED0D546F9B9DE27A5630ADBC2B87AA5C497FD7335B5

What am I doing wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionIssues that look for answers.tlsIssues and PRs related to the tls subsystem.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions