使用Greenlock为SubjectAltName中的多个域生成SSL证书

时间:2018-09-19 16:28:52

标签: node.js ssl ssl-certificate greenlock

我正在使用greenlock生成证书,我将其传递给三个域,但在我的替代名称中仅获得2个:

const greenlock = Greenlock.create({
  agreeTos: true,
  email: myemail,
  communityMember: false,
  version: 'draft-12',
  server: 'https://acme-v02.api.letsencrypt.org/directory',
  configDir: '/etc/letsencrypt',
  debug: true,
  log: (debug) => { console.log(debug) },
})  
console.log({ domains })
return greenlock.register({
      domains,
      email: myemail,
      challengeType: 'dns-01',
    })
.then((result) => {
    console.log(result)
})

这是我的日志:

{ domains:
 [ 'domain1',
   'domain3',
   'domain2' ] }
true
true
true
{ result:
{ 
  privkey: '-----BEGIN PRIVATE KEY-----\n\n-----END CERTIFICATE-----\n',    
  chain:  '-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n',
  subject: 'domain2',
  altnames: [ 'domain1', 'domain2' ],
  _issuedAt: 2018-09-19T14:43:31.000Z,
  _expiresAt: 2018-12-18T14:43:31.000Z,
  issuedAt: 1537368211000,
  expiresAt: 1545144211000 } }

您可以看到,以我的altname结尾的不是我的前两个域名,而是旧证书中已经存在的域名(不确定这是为什么)。

如果有人作为更好的选择,我也正在听格林洛克的婚姻。

我尝试将approveDomains传递给我的greenlock构造函数,它似乎变化不大。 我的证书中仍然没有列出我的新域(domain2):

openssl x509 -text < /etc/letsencrypt/live/domain1/fullchain.pem  | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'

domain1 domain3

1 个答案:

答案 0 :(得分:1)

使用Greenlock v2.7 +

与证书生成,域名和altname关联有关的所有代码均已更新。

现在,当您将domains数组更改为包括更多域时,它将单独而不是作为一个整体来处理它们。

此外,直接从证书中读取有关证书的信息,因此“缓存”和“真相”之间不会出现不匹配。

如果您遇到其他问题,请直接让我们知道: