Containerized Self-Hosted ACME Server with Step-CA in Docker

Channel:
Subscribers:
14,500
Published on ● Video Link: https://www.youtube.com/watch?v=Gksq9Tx92j0



Category:
Tutorial
Duration: 3:05
661 views
11


#ACME #StepCA #LetsEncrypt #SSL

Full steps can be found at https://i12bretro.github.io/tutorials/0749.html

--------------------------------------------------------------------
What is Step-CA?
--------------------------------------------------------------------
[Step-CA is] a private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH. - https://github.com/smallstep/certificates
 
--------------------------------------------------------------------
Installing Docker
--------------------------------------------------------------------
   01. Log into the Linux based device
   02. Run the following commands in the terminal
         # install prerequisites
         sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y
         # add docker gpg key
         curl -fsSL https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
         # add docker software repository
         sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
         # install docker
         sudo apt install docker-ce docker-compose containerd.io -y
         # enable and start docker service
         sudo systemctl enable docker && sudo systemctl start docker
         # add the current user to the docker group
         sudo usermod -aG docker $USER
         # reauthenticate for the new group membership to take effect
         su - $USER
 
--------------------------------------------------------------------
Running Step-CA Server
--------------------------------------------------------------------
   01. Continue with the following commands in a terminal window
         # create a working directory
         mkdir ~/docker/step-ca -p
         # start the step-ca container
         # change the INIT_NAME and DNS_NAMES variables as needed
         docker run -d --name=step-ca -v ~/docker/step-ca:/home/step -p 9000:9000 -e DOCKER_STEPCA_INIT_NAME="i12bretro Certificate Authority" -e DOCKER_STEPCA_INIT_DNS_NAMES="$(hostname -f)" smallstep/step-ca
         # enable the acme provisioner
         docker exec -it step-ca step ca provisioner add acme --type ACME
         # restart the step-ca container
         docker restart step-ca
 
--------------------------------------------------------------------
Automating Certificate Requests
--------------------------------------------------------------------
   01. Log into the server needing to request a certificate
   02. Continue following commands in a terminal window
         # if on a remote server from the docker host, copy the root-ca.crt file
         scp ≪%user%≫@≪%dockerhostDNSorIP%≫:~/docker/step-ca/certs/root_ca.crt ~/root_ca.crt
         # remove apt version of certbot if installed
         sudo apt remove certbot -y
         # install snapd
         sudo apt install snapd -y
         # install snap core and update
         sudo snap install core; sudo snap refresh core
         # install certbot snap
         sudo snap install --classic certbot
         # create certbot symbolic link
         sudo ln -s /snap/bin/certbot /usr/bin/certbot
         # request the certificate
         sudo REQUESTS_CA_BUNDLE=~/root_ca.crt certbot certonly --standalone -d ≪%host-DNS-name%≫ --server https://≪%step-ca-docker-host%≫:9000/acme/acme/directory
   03. When prompted, enter an email address and agree to the terms of service
   04. Choose whether to share your email and receive emails from certbot
   05. Certbot will output information regarding the location of the certificate files
 
Documentation:  https://hub.docker.com/r/smallstep/step-ca
 
Sources:  https://certbot.eff.org/instructions?ws=other&os=debianbuster
 https://smallstep.com/docs/tutorials/acme-challenge/
 


### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro







Tags:
ACME
Certificate Authority
Certificates
Container
Containerization
Docker
Docker How To
Docker Installation Tutorial
Docker Made Easy
Docker Simplified
Docker Tutorial
Encryption
HTTPS
Home Lab
Home Lab Ideas
How To
IT Security
Install Guide
Let's Encrypt
Let's Encrypt Alternative
Linux
PKI
Public Key Infrastructure
SSL Certificates
Self-Hosted
Self-Hosted Let's Encrypt
Self-Signed
Self-Signed HTTPS
Self-Signed PKI
Self-Signed SSL
Tutorial
i12bretro