我在Mac OS X上运行节点v4.1.1和npm 2.14.4。对于同一个快速应用程序,我想启动http和https服务器。 HTTP则运行得完美,但对方崩溃,随之而来的错误:启动https服务器快车时出错
if (process.features.tls_npn && !opts.NPNProtocols) {
^
TypeError: Cannot read property 'NPNProtocols' of undefined
at new Server (https.js:13:40)
at Object.exports.createServer (https.js:37:10)
下面的代码运行整个快递应用程序,并调用HTTP方法:
#!/usr/bin/env node
var app = require('./src')
, config = require('./config')
, cmd = require('commander')
, http = require('http')
, https = require('https')
, path = require('path')
cmd
.version('0.1.42')
.option('-p, --port <n>', 'Port to start the HTTP server', parseInt)
.parse(process.argv)
// Launch server with web sockets
var server = http.createServer(app)
var sslServer = https.createServer({
key: fs.readFileSync('ryans-ley.pem'),
cert: fs.readFileSync('ryans-cert.pem')
}, app)
// Listen on provided port, on all network interfaces.
server.listen(config.port || cmd.port, function() {
console.log('http marketplace started on %s:%s',
server.address().address,
server.address().port)
})
sslServer.listen(443, function() {
console.log('https marketplace started on %s:%s',
sslServer.address().address,
sslServer.address().port)
})
这些证书已与此产生的指导:https://nodejs.org/api/tls.html#tls_tls_ssl。
如果我运行相同的代码,不提供选项https.createServer
它不会粉碎。然而,当试图达成https://localhost与ERR_SSL_VERSION_OR_CIPHER_MISMATCH
(Chrome浏览器)浏览器的答案
,卷曲
curl https://localhost
curl: (35) Unknown SSL protocol error in connection to localhost:-9824
同样的问题,除了我有一个“官方”证书/密钥对。你有没有进步? – david
是的,它恰巧是一个错字。虽然这真的很沉默。如果key + cert配对良好,并且这些文件完全可读,则不应出现错误。仔细检查路径。 – jsdario