1

我对设置 ssl 服务器非常陌生,我只是在探索一个名为 greelock 的包

https://www.npmjs.com/package/greenlock

相信我,我正在使用真实域来设置 ssl。

安装所有软件包后,我运行此代码。

'use strict';

require('greenlock-express').create({

  // Let's Encrypt v2 is ACME draft 11
  version: 'draft-11'

  // Note: If at first you don't succeed, switch to staging to debug
  // https://acme-staging-v02.api.letsencrypt.org/directory
        // https://acme-v02.api.letsencrypt.org/directory
, server: 'https://acme-staging-v02.api.letsencrypt.org/directory'

  // Where the certs will be saved, MUST have write access
, configDir: '~/.config/acme/'

  // You MUST change this to a valid email address
, email: 'somename@gmail.com'

  // You MUST change these to valid domains
  // NOTE: all domains will validated and listed on the certificate
, approveDomains: [ 'awesomedomain.com','*.awesomedomain.com' ]

  // You MUST NOT build clients that accept the ToS without asking the user
, agreeTos: true

, app: require('express')().use('/', function (req, res) {
    res.setHeader('Content-Type', 'text/html; charset=utf-8')
    res.end('Hello, World!\n\n   .js');
  })

  // Join the community to get notified of important updates
, communityMember: true

  // Contribute telemetry data to the project
, telemetry: true

//, debug: true

}).listen(80, 443);

上面的代码对于awesomedomain.com的基本域可以正常工作,但是当我尝试访问一些随机子域时,我遇到了这个错误

 [Error] approveDomains rejected tls sni 'david.awesomedomain.com'
    [Error] (see https://git.coolaj86.com/coolaj86/greenlock.js/issues/11)
4

1 回答 1

2

使用Greenlock v2.7+

在 Greenlock v2.7 之前,您必须手动执行许多操作才能使通配符注册工作。

我写了一个新的文件存储插件,这样它就不会被不允许的文件系统绊倒*

我还让它在dns-01根据需要和http-01允许的情况下使用变得更聪明一些。

请参阅https://git.coolaj86.com/coolaj86/greenlock-express.js/src/branch/master/examples/wildcard.js中的示例

DNS-01 插件

你仍然需要一个 dns-01 插件。如果您尝试 README 的插件部分中列出的问题之一并且它不起作用,请联系我:

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

其中一些已经很老了,尽管我已经尝试通过很多痛苦来保持向后兼容性,但可能有什么不对劲。

于 2019-04-03T05:53:28.037 回答