具有Greenlock-Express的通配符域的无效SNI错误

时间:2019-01-26 13:17:11

标签: node.js express ssl https greenlock

我需要使用greenlock-express保护* .keytap.xyz。我的DNS是DigitalOcean,我使用的是greenlock插件,但是无论是否插入,都会出现错误:

Fetching certificate for '*.keytap.xyz' to use as default for HTTPS server...
Unhandled rejection Error: invalid SNI

我正在使用2.6.7版的greenlock-express和2.1.0版的le-challenge-digitalocean。

我的代码是:

var leChallengeDigitalOcean = require('le-challenge-digitalocean').create({
  debug: false,
  doApiKey: 'xxxxxxxxxxxxxx'
});
require('greenlock-express').create({
  server: 'https://acme-staging-v02.api.letsencrypt.org/directory',
  challengeType: 'dns-01',
  challenges: {
    'dns-01': leChallengeDigitalOcean
  },
    email: 'archie@serveradmin.xyz',
    agreeTos: true,
    confDir: '~/.config/acme',
    approveDomains: ['*.keytap.xyz'],
    app: app
}).listen(80, 443);

我什至不知道SNI是什么。预先感谢。

1 个答案:

答案 0 :(得分:0)

SNI代表服务器名称指示(请参阅link)。

基本上,它允许多个网站在具有不同证书的同一ip /端口对中运行。域名未加密,因此Web服务器可以根据域名重定向每个请求到相关站点。

我认为您的错误是因为侦听器正在等待服务器名称/域名,而您却给了它一个通配符。

确定要使用通配符证书或SNI吗?