【问题标题】:greenlock-express for simple nodejs webappgreenlock-express 用于简单的 nodejs webapp
【发布时间】:2017-05-10 17:48:59
【问题描述】:

我正在尝试为我的 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'));
});

我应该如何进行?

【问题讨论】:

  • 我也在苦苦挣扎。根据说明,我认为我可以将 express 应用程序包装在 greenlock-express thingy 中——但这只会让我的应用程序消失。我想知道 greenlock-express 是否不是 https 的包装器,我可以从中填充我的 ExpressJS 应用程序 - 而是更新证书的代理。如果是这样,这必须与我的应用程序并行运行。我希望有更多知识的人能回答。
  • 好像greenlock-express 是废话

标签: node.js ssl https greenlock


【解决方案1】:

v2,视频教程,更新文档

首先,请确保您使用的是最新版本 (v2) 的 Greenlock™。

https://git.coolaj86.com/coolaj86/greenlock-express.js

有一个简短易懂的视频教程以及一个简单而全面的故障排除部分(也在视频中进行了解释)。

第二,您需要做的就是不要使用 express'app.listen() 而是将您的应用传递给 Greenlock:

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'));
//});
module.exports = app;

greenlock-app.js:

'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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2020-11-16
    • 2016-09-20
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    相关资源
    最近更新 更多