107 lines
3.1 KiB
Markdown
107 lines
3.1 KiB
Markdown
# Deprecated
|
|
|
|
`le-store-certbot` has been replaced with [`le-store-fs`](https://git.coolaj86.com/coolaj86/le-store-fs.js).
|
|
|
|
The new storage strategy **keeps file system compatibility**, but **drops support** for Python config files.
|
|
|
|
Unless you're running `certbot` and Greenlock side-by-side, or interchangeably, you switch to `le-store-fs`.
|
|
|
|
## Migrating to `le-store-fs`
|
|
|
|
It's **painless** and all of your existing certificates will be **preserved**
|
|
(assuming you use the same `configDir` as before).
|
|
|
|
```js
|
|
Greenlock.create({
|
|
|
|
// Leave configDir as it, if you've been setting it yourself.
|
|
// Otherwise you should explicitly set it to the previous default:
|
|
configDir: '~/letsencrypt/etc'
|
|
|
|
// le-store-fs takes the same options as le-store-certbot,
|
|
// but ignores some of the ones that aren't important.
|
|
, store: require('le-store-fs').create({})
|
|
|
|
...
|
|
})
|
|
```
|
|
|
|
## Alternatives
|
|
|
|
* Search npm for ["le-store-"](https://www.npmjs.com/search?q=le-store-) to find many alternatives.
|
|
|
|
# le-store-certbot
|
|
|
|
The "certbot" storage strategy for
|
|
[Greenlock.js](https://git.coolaj86.com/coolaj86/le-store-certbot.js).
|
|
|
|
This le storage strategy aims to maintain compatibility with the
|
|
configuration files and file structure of the official certbot client.
|
|
|
|
Note: You cannot use this strategy on ephemeral instances (heroku, aws elastic).
|
|
|
|
Usage
|
|
-----
|
|
|
|
```bash
|
|
npm install --save le-store-certbot@2.x
|
|
```
|
|
|
|
```bash
|
|
var leStore = require('le-store-certbot').create({
|
|
configDir: require('homedir')() + '/acme/etc' // or /etc/acme or wherever
|
|
, privkeyPath: ':configDir/live/:hostname/privkey.pem' //
|
|
, fullchainPath: ':configDir/live/:hostname/fullchain.pem' // Note: both that :configDir and :hostname
|
|
, certPath: ':configDir/live/:hostname/cert.pem' // will be templated as expected by
|
|
, chainPath: ':configDir/live/:hostname/chain.pem' // greenlock.js
|
|
|
|
, logsDir: require('homedir')() + '/tmp/acme/log'
|
|
|
|
, webrootPath: '~/acme/srv/www/:hostname/.well-known/acme-challenge'
|
|
|
|
, debug: false
|
|
});
|
|
```
|
|
|
|
The store module can be used globally with Greenlock like this:
|
|
|
|
```
|
|
var Greenlock = require('greenlock');
|
|
|
|
Greenlock.create({
|
|
...
|
|
, store: leStore
|
|
});
|
|
```
|
|
|
|
Example File Structure
|
|
----------------------
|
|
|
|
```
|
|
~/acme/
|
|
└── etc
|
|
├── accounts
|
|
│ └── acme-staging.api.letsencrypt.org
|
|
│ └── directory
|
|
│ └── cd96ac4889ddfa47bfc66300ab223342
|
|
│ ├── meta.json
|
|
│ ├── private_key.json
|
|
│ └── regr.json
|
|
├── archive
|
|
│ └── example.com
|
|
│ ├── cert0.pem
|
|
│ ├── chain0.pem
|
|
│ ├── fullchain0.pem
|
|
│ └── privkey0.pem
|
|
├── live
|
|
│ └── example.com
|
|
│ ├── cert.pem
|
|
│ ├── chain.pem
|
|
│ ├── fullchain.pem
|
|
│ ├── privkey.pem
|
|
│ └── privkey.pem.bak
|
|
└── renewal
|
|
├── example.com.conf
|
|
└── example.com.conf.bak
|
|
```
|