操作步骤
1.准备好密钥和证书文件
2.引入https和 fs服务
3.读入密钥和证书文件
4.创建HTTPS服务器
5.修改环境变量
完整代码如下:
#!/server/bin/www node // 修改bin文件夹里的www配置文件
/**
* Module dependencies.
*/
var app = require('../app')
var debug = require('debug')('server:server')
const config = require('../config')
// 引入https和 fs服务
var https = require('https')
var fs = require('fs')
// 读入密钥和证书文件
var privatekey = fs.readFileSync('bin/server.key', 'utf8')
var certificate = fs.readFileSync('bin/server.crt', 'utf8')
// 构造https服务器选项
var options = {
key: privatekey, cert: certificate }
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(config.port || process.env.PORT)
app.set('port', port)
// 创建HTTPS服务器
var server = https.createServer(options, app)
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port)
server.on('error', onError)
server.on('listening', onListening)
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10)
if (isNaN(port)) {
// named pipe
return val
}
if (port >= 0) {
// port number
return port
}
return false
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error
}
var bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges')
process.exit(1)
break
case 'EADDRINUSE':
console.error(bind + ' is already in use')
process.exit(1)
break
default:
throw error
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address()
var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port
debug('Listening on ' + bind)
console.log('Your application is running here: https://localhost:' + addr.port)
}
// 修改env.development环境变量文件,从http://localhost:3000/workbench改为https://localhost:3000/workbench
VUE_APP_DOMAIN = 'https://localhost:3000/workbench'