Create and Apply SSL Certificates for Portainer

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



Duration: 4:26
840 views
14


#Portainer #SSL #HTTPS

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

Prerequisites
   - A XCA PKI database  https://youtu.be/ezzj3x207lQ
 
Create Your SSL Certificate
   01. Launch XCA
   02. Open the PKI database if it is not already (File ≫ Open DataBase), enter password
   03. Click on the Certificates tab, right click on your Intermediate CA certificate
   04. Select New
   05. On the Source tab, make sure Use this Certificate for signing is selected
   06. Verify your Intermediate CA certificate is selected from the drop down
   07. Click the Subject tab
   08. Complete the Distinguished Name section
         internalName: ctr.i12bretro.local
         countryName: US
         stateOrProvinceName: Virginia
         localityName: Northern
         organizationName: i12bretro
         organizationUnitName: i12bretro Certificate Authority
         commonName: ctr.i12bretro.local
   09. Click the Generate a New Key button
   10. Enter a name and set the key size to at least 2048
   11. Click Create
   12. Click on the Extensions tab
   13. Select End Entity from the type list
   14. Click Edit next to Subject Alternative Name
   15. Add any DNS or IP addresses that the certificate will identify
   16. Update the validity dates to fit your needs
   17. Click the Key Usage tab
   18. Under Key Usage select Digital Signature, Key Encipherment
   19. Under Extended Key Usage select Web Server and Web Client Authentication
   20. Click the Netscape tab
   21. Select SSL Server
   22. Click OK to create the certificate
 
Exporting Required Files
   01. In XCA, click on the Certificates tab
   02. Right click the SSL certificate ≫ Export ≫ File
   03. Set the file name to ssl.crt verify the export format is PEM (*.crt)
   04. Click OK
   05. Click the Private Keys tab
   06. Right click the private key generated for the SSL certificate ≫ Export ≫ File
   07. Set the file name to ssl.key and verify the export format is PEM Private (*.pem)
   08. Click OK
 
Method 1: Applying SSL Certificates to Portainer Web UI
   01. If the Portainer container wasn't setup to listen on 9443, connect to the Docker host and run the following commands
         # list running containers to find the name of the portainer container
         docker ps
         # stop the running portainer container
         docker stop portainer
         # remove the running portainer container
         docker rm portainer --force
         # recreate the portainer container with port 9443
         # modify as needed
         docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/portainer:/data portainer/portainer-ce
   02. Open a web browser and navigate to http://DNSorIP:9000
   03. Log into Portainer
   04. Click Settings in the left navigation
   05. Scroll to the SSL certificate section
   06. Click Select file under Upload X.509 certificate ≫ Browse to and select the ssl.crt file created earlier
   07. Click Select file under Upload a private key ≫ Browse to and select the ssl.key file created earlier
   08. Click the Apply Changes button
   09. Update the browser URL to https://DNSorIP:9443
   10. Welcome to Portainer running via SSL
 
Method 2: Applying SSL Certificates to Portainer CLI
   01. Download WinSCP  https://winscp.net/eng/downloads.php
   02. Extract WinSCP and run the executable
   03. Connect to the Portainer host IP address via WinSCP
   04. Copy the exported .pem files to the Portainer host
   05. Connect to the Docker host and run the following commands
         # list running containers to find the name of the portainer container
         docker ps
         # stop the running portainer container
         docker stop portainer
         # remove the running portainer container
         docker rm portainer --force
         # recreate the portainer container with ssl enabled
         # modify as needed
         docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/portainer:/data portainer/portainer-ce --ssl --sslcert /data/ssl.crt --sslkey /data/ssl.key
   06. Open a web browser and navigate to https://DNSorIP:9443
   07. Welcome to Portainer running via SSL
 
Further Reading:  https://documentation.portainer.io/v2.0/deploy/ssl/
 


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







Tags:
Apply SSL Certificates To Portainer
Browser Based
Certificates
Containerization
Docker
Docker Made Easy
Docker Management
HTTPS
HTTPS Portainer Web Interface
Home Lab
Home Lab Ideas
Homelab
Homelab Ideas
How To
Linux
PKI
Portainer
Private Key Infrastructure
SSL
Self-Hosted
Tutorial
Web Based
Web Based Tools
XCI
i12bretro