. . . . . . . . . . .
Dockerized CouchDB with nginx SSL terminator
Make your CouchDB a straight A SSL student!
NOTE: This image uses nginx to provide the SSL/TLS endpoint. CouchDB's SSL features are unused.
Version: CouchDB 1.6.1 and nginx 1.9.9.
Available in the docker index as klaemo/couchdb-ssl based on klaemo/couchdb
Note: Out of the box bogus self-signed certificates are being used. You should replace them with your real files (see below).
$ [sudo] docker pull klaemo/couchdb-ssl:latest
# expose it to the world on port 6984
$ [sudo] docker run -d -p 6984:6984 --name couchdb klaemo/couchdb-ssl
$ curl -k https://localhost:6984
6984 (https) of the containerYour CouchDB will get a straight A on the SSL Labs Server Test!
You can use klaemo/couchdb-ssl as the base image for your own couchdb instance.
You might want to provide your own version of the following files:
local.ini for CouchDB.nginx.conf for nginx configuration.server.crt for nginx configuration (certificate).server.key for nginx configuration (private key).dhparams.pem for nginx configuration (diffie-helman parameters).chain.pem for nginx configuration (all three above combined).Example Dockerfile:
FROM klaemo/couchdb-ssl
COPY local.ini /usr/local/etc/couchdb/
COPY nginx.conf /etc/nginx/
COPY server.crt /etc/nginx/certs/
COPY server.key /etc/nginx/certs/
COPY dhparams.pem /etc/nginx/certs/
COPY chain.pem /etc/nginx/certs/
and then build and run it
$ [sudo] docker build -t you/awesome-couchdb .
$ [sudo] docker run -d -p 5984:5984 -p 6984:6984 you/awesome-couchdb
et voilá you have your own CouchDB instance with SSL support on port 6984.
Heroku - Creating a Self-Signed SSL Certificate
$ openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
$ openssl rsa -passin pass:x -in server.pass.key -out server.key
writing RSA key
$ rm server.pass.key
$ openssl req -new -key server.key -out server.csr
...
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
...
A challenge password []:
...
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=localhost
Getting Private key
$ openssl dhparam -out dhparams.pem 2048
NOTE: For higher key size negotiation, you may wish to create a 4096 bit dhparams file. Just change the number above.
The chain.pem file contains your SSL key, certificates and DH parameters.
Specifically, the following information:
To create the PEM file, use something similar to the following:
$ cat server.key server.crt [intermediate_cert1.pem ...] dhparams.pem > chain.pem
Apache License 2.0
Content type
Image
Digest
sha256:3a98c422a…
Size
101 MB
Last updated
over 8 years ago
docker pull klaemo/couchdb-ssl