我正在尝试为我的nodejs webapp设置HTTPS加密。根据我的学习, greenlock-express (以前称为letsencrypt-express)是最简单的方法。
我的应用非常简单,但我很难按照https://git.coolaj86.com/coolaj86/greenlock-express.js
中的使用说明进行操作这是文件的整体结构:
.
|-- app.json
|-- index.js
|-- node_modules
|-- package.json
|-- Procfile
|-- public
|-- README.md
`-- views
这是index.js:
var express = require('express');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
// views is directory for all template files
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.get('/', function(request, response) {
response.render('pages/index');
});
app.listen(app.get('port'), function() {
console.log('Node app is running on port', app.get('port'));
});
我该怎么办?
答案 0 :(得分:1)
首先,请确保您使用的是最新版本的Greenlock™。
https://git.coolaj86.com/coolaj86/greenlock-express.js
有一个简短易懂的视频教程以及一个简单但彻底的故障排除部分(也在视频中进行了解释)。
第二,您需要做的就是不要使用快递'app.listen()
,而是将您的应用传递给Greenlock:
var express = require('express');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
// views is directory for all template files
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.get('/', function(request, response) {
response.render('pages/index');
});
//app.listen(app.get('port'), function() {
// console.log('Node app is running on port', app.get('port'));
//});
module.exports = app;
'use strict';
var homedir = require('path').join(require('os').homedir();
require('greenlock-express').create({
version: 'draft-11'
, server: 'https://acme-staging-v02.api.letsencrypt.org/directory' // staging
, email: 'john.doe@example.com' // CHANGE THIS
, agreeTos: true
, approveDomains: [ 'example.com', 'www.example.com' ] // CHANGE THIS
, configDir: homedir, 'acme', 'etc')
//, app: require('express')().use('/', function (req, res) {
// res.setHeader('Content-Type', 'text/html; charset=utf-8')
// res.end('Hello, World!\n\n .js');
// })
app: require('./index.js')
, communityMember: true
//, debug: true
}).listen(80, 443);