【问题标题】:Generate SSL certificates for multiple domains in SubjectAltName with Greenlock使用 Greenlock 为 SubjectAltName 中的多个域生成 SSL 证书
【发布时间】:2018-09-19 16:28:52
【问题描述】:

我正在使用 greenlock 生成证书,我传递了三个域,但我的 altnames 中只有 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 } }

如您所见,甚至不是我的前两个域最终出现在我的 altnames 中,而是那些已经在旧证书中的域(不确定这就是为什么)。

我没有嫁给 greenlock,如果有人作为更好的选择我也在听。

我尝试将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

【问题讨论】:

  • yo.panopli.shop 是您缺少的域吗?
  • 不,我会编辑以使其更清晰
  • 我缺少的域是 domain3
  • 如何创建绿锁实例?你在那里提供域名吗?因为 register() 会在你直接提供的内容和 greenlock 对象中已经存在的内容之间进行合并。
  • @PatrickMevzek 我编辑了我的问题来回答你的问题。

标签: node.js ssl ssl-certificate greenlock


【解决方案1】:

使用Greenlock v2.7+

所有与证书生成和域名和替代名关联相关的代码都已更新。

现在,当您更改域数组以包含更多域时,它会单独处理它们而不是作为一个组。

另外,证书的信息是直接从证书中读取的,所以“缓存”和“真相”之间不会有不匹配的情况。

如果您遇到更多问题,请直接告诉我们:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2011-11-25
    • 2022-08-06
    • 2021-07-24
    相关资源
    最近更新 更多