2.2 KiB
certdb usage
Using a database enables additional functionality for existing commands when a db config is provided:
sign
andgencert
add a certificate to the certdb after signing itserve
enables database functionality for the sign and revoke endpoints
A database is required for the following:
revoke
marks certificates revoked in the database with an optional reasonocsprefresh
refreshes the table of cached OCSP responsesocspdump
outputs cached OCSP responses in a concatenated base64-encoded format
Setup/Migration
This directory stores goose db migration scripts for various DB backends. Currently supported:
- MySQL in mysql
- PostgreSQL in pg
- SQLite in sqlite
Get goose
go get bitbucket.org/liamstask/goose/cmd/goose
Use goose to start and terminate a MySQL DB
To start a MySQL using goose:
goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/mysql up
To tear down a MySQL DB using goose
goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/mysql down
Note: the administration of MySQL DB is not included. We assume the databases being connected to are already created and access control is properly handled.
Use goose to start and terminate a PostgreSQL DB
To start a PostgreSQL using goose:
goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/pg up
To tear down a PostgreSQL DB using goose
goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/pg down
Note: the administration of PostgreSQL DB is not included. We assume the databases being connected to are already created and access control is properly handled.
Use goose to start and terminate a SQLite DB
To start a SQLite DB using goose:
goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/sqlite up
To tear down a SQLite DB using goose
goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/sqlite down
CFSSL Configuration
Several cfssl commands take a -db-config flag. Create a file with a JSON dictionary:
{"driver":"sqlite3","data_source":"certs.db"}
or
{"driver":"postgres","data_source":"postgres://user:password@host/db"}
or
{"driver":"mysql","data_source":"user:password@tcp(hostname:3306)/db?parseTime=true"}