Skip to content

Commit c12def3

Browse files
nekolabmichael-ciniawsky
authored andcommitted
fix(Server): set tls.DEFAULT_ECDH_CURVE to 'auto' (#1531)
1 parent e719959 commit c12def3

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

‎lib/Server.js‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const fs = require('fs');
1313
constpath=require('path');
1414

1515
constip=require('ip');
16+
consttls=require('tls');
1617
consturl=require('url');
1718
consthttp=require('http');
1819
consthttps=require('https');
@@ -40,6 +41,16 @@ const createCertificate = require('./utils/createCertificate');
4041
constvalidateOptions=require('schema-utils');
4142
constschema=require('./options.json');
4243

44+
// Workaround for node ^8.6.0, ^9.0.0
45+
// DEFAULT_ECDH_CURVE is default to prime256v1 in these version
46+
// breaking connection when certificate is not signed with prime256v1
47+
// change it to auto allows OpenSSL to select the curve automatically
48+
// See https://github.com/nodejs/node/issues/16196 for more infomation
49+
constversion=parseFloat(process.version.slice(1));
50+
if(version>=8.6&&version<10){
51+
tls.DEFAULT_ECDH_CURVE='auto';
52+
}
53+
4354
constSTATS={
4455
all: false,
4556
hash: true,
@@ -581,7 +592,7 @@ function Server (compiler, options = {}, _log) {
581592
// - https://github.com/nodejs/node/issues/21665
582593
// - https://github.com/webpack/webpack-dev-server/issues/1449
583594
// - https://github.com/expressjs/express/issues/3388
584-
if(+process.version.match(/^v(\d+)/)[1]>=10){
595+
if(version>=10){
585596
this.listeningApp=https.createServer(options.https,app);
586597
}else{
587598
this.listeningApp=spdy.createServer(options.https,app);

0 commit comments

Comments
 (0)