Ryan Burnette c82e718022 | ||
---|---|---|
db | ||
.gitignore | ||
LICENSE | ||
README.md | ||
convert-wildcard.js | ||
greenlock-store-sequelize.js | ||
make-safe-sha-str.js | ||
merge-options.js | ||
package-lock.json | ||
package.json | ||
sync.js |
README.md
greenlock-store-sequelize
A database-driven Greenlock storage plugin with wildcard support.
Usage
To use, provide this Greenlock storage plugin as the store
attribute when you
invoke create
.
var store = require('le-store-sequelize');
var gl = greenlock.create({
store,
approveDomains,
...
});
Wildcards & AltNames
Working with wildcards and multiple altnames requires Greenlock >= v2.7
.
To do so you must set opts.subject
and opts.domains
within the
approvedomains()
callback.
subject
refers to "the subject of the ssl certificate" as opposed to domain
which indicates "the domain servername used in the current request". For
single-domain certificates they're always the same, but for multiple-domain
certificates subject
must be the name no matter what domain
is receiving a
request. subject
is used as part of the name of the file storage path where
the certificate will be saved (or retrieved).
domains
should be the list of "altnames" on the certificate, which should
include the subject
.
Example
function approveDomains() {
}
Configuration
Defaults
No configuration is required. By default, you'll get a baked-in Sequelize database running sqlite3.
greenlock.create({
store: require('le-store-sequelize'),
...
});
Database Connection
Without config.dbOptions
, the baked-in sequelize object uses sqlite3 with
default options. If config.dbOptions
is provided, you can configure the
database connection per the Sequelize documentation.
var store = require('le-store-sequelize')({
dbConfig: {
username: 'mysqluser',
password: 'mysqlpassword',
database: 'mysqldatabase,
host: '127.0.0.1',
dialect: 'mysql'
}
});
greenlock.create({
store,
...
});
The database can also be configured using an env variable.
var store = require('le-store-sequelize')({
dbConfig: {
use_env_variable: 'DB_URL'
}
});
Custom Database Object
If you already have a Sequelize object, you can pass that in as config.db
,
circumventing the baked-in database entirely.
var db = require('./db');
var store = require('le-store-sequelize')({
db
});
greenlock.create({
store,
...
});