Как настроить подстановочный домен ssl с letsencrypt greenlock? - PullRequest
0 голосов
/ 26 сентября 2018

Я довольно плохо знаком с настройкой 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)

1 Ответ

0 голосов
/ 03 апреля 2019

Использование 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

Некоторые из них довольно старые и хотя япытался поддерживать обратную совместимость через большую боль, возможно, что-то не так.

...