Я автор Greenlock Express, который называется Let's Encrypt для Node.js, Express и т. Д.
Я все еще нахожусь в процессе написания v3 документации (множество неработающих ссылок на примеры, которые еще не были преобразованы из v2), но установка выглядит примерно так:
require("greenlock-express")
.init(function getConfig() {
return {
package: require("./package.json")
manager: 'greenlock-manager-fs',
cluster: false,
configFile: '~/.config/greenlock/manager.json'
};
})
.serve(httpsWorker);
function httpsWorker(server) {
// Works with any Node app (Express, etc)
var app = require("./my-express-app.js");
// See, all normal stuff here
app.get("/hello", function(req, res) {
res.end("Hello, Encrypted World!");
});
// Serves on 80 and 443
// Get's SSL certificates magically!
server.serveApp(app);
}
Он использует http2 по умолчанию на узле v12 +, а также работает с кластером узлов, так что вы можете использовать преимущества нескольких ядер.
Он использует SNICallback
для динамического добавления сертификатов на лету.
Управление сайтом
Плагин менеджера по умолчанию использует файлы в файловой системе, но есть отличная документация о том, как создать свой собственный.
Просто для началафайловый плагин выглядит следующим образом:
~/.config/greenlock/manager.json
:
{
"subscriberEmail": "letsencrypt-test@therootcompany.com",
"agreeToTerms": true,
"sites": [
{
"subject": "example.com",
"altnames": ["example.com", "www.example.com"]
}
]
}
Управление ключами и сертификатами
Аналогично, плагин Key and Cert по умолчанию - файловая система-основанный (фактически основанный на certbot, с первых дней), ноесть плагины для подключения к базам данных (greenlock-store-sequelize
), чтобы вы могли управлять своими сертификатами так, как вам нравится.
Плагин по умолчанию сохраняет их в ~/.config/greenlock/
.
DNS-01 и HTTP-01 подключаемые модули для вызовов
Существуют подключаемые модули для различных поставщиков DNS (Name.com, NameCheap, DNSimple, GoDaddy и т. Д.), А также набор тестов, который позволяет легко написать паруобратных вызовов, которые необходимо создать самостоятельно:
API управления
Уже есть API, который я не буду здесь документировать, потому что занят (сейчас) написанием официальной документации для него, но по сути вы будете делать что-то вроде этого:
greenlock.add({
subject: 'example.com',
altnames: ['example.com', '*.example.com']
})
В процессе разработки находятся некоторые инструменты CLI, и Greenlock Pro, как ожидается, будет иметь пользовательский интерфейс для него, а также инструменты маршрутизации (то есть обслуживать домен X из этого каталога, прокси-домен Y дляпорт 2345 с поддержкой веб-сокетов и т. д.)
Я вернусь
Как только у меня будет больше официальных документов, я вернусь и добавлю некоторые обновления сюда.
Не стесняйтесь связаться со мной на Keypairs. Я @ coolaj86 там.