Merge pull request #2530 from plui29989/master
Added doc for self-signed certificates
This commit is contained in:
		@@ -29,6 +29,57 @@ devture_traefik_config_entrypoint_web_secure_enabled: false
 | 
			
		||||
 | 
			
		||||
## Using self-signed SSL certificates
 | 
			
		||||
 | 
			
		||||
Using self-signed certificates with Traefik is a somewhat involved processes, where you need to manually mount the files into the container and adjust the "static" configuration to refer to them.
 | 
			
		||||
To use self-signed SSL certificates, you need to:
 | 
			
		||||
 | 
			
		||||
Feel free to research this approach on your own and improve this guide!
 | 
			
		||||
- disable `certResolvers` in Traefik, so it won't attempt to retrieve SSL certificates using the default certificate resolver (using [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/))
 | 
			
		||||
- put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the `matrix-aux` role) or manually
 | 
			
		||||
- register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)
 | 
			
		||||
- put the SSL files on the server, with the help of this Ansible playbook (via the `matrix-aux` role) or manually
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
# Disable ACME / Let's Encrypt support
 | 
			
		||||
devture_traefik_config_certificatesResolvers_acme_enabled: false
 | 
			
		||||
 | 
			
		||||
# Unset the default certificate resolver
 | 
			
		||||
devture_traefik_certResolver_primary: ''
 | 
			
		||||
 | 
			
		||||
# Keep the SSL directory normally used for ACME / Let's Encrypt certificates.
 | 
			
		||||
# We need to explicitly enable this, because disabling ACME support (above) automatically disables it otherwise.
 | 
			
		||||
devture_traefik_ssl_dir_enabled: true
 | 
			
		||||
 | 
			
		||||
# Tell Traefik to load our custom configuration file (certificates.yml).
 | 
			
		||||
# The file is created below. See `matrix_aux_file_definitions`.
 | 
			
		||||
# The `/config/..` path is an in-container path, not a path on the host. Do not change it!
 | 
			
		||||
devture_traefik_configuration_extension_yaml: |
 | 
			
		||||
  providers:
 | 
			
		||||
    file:
 | 
			
		||||
      filename: /config/certificates.yml
 | 
			
		||||
      watch: true
 | 
			
		||||
 | 
			
		||||
# Use the matrix-aux role to create our custom files on the server.
 | 
			
		||||
# If you'd like to do this manually, you remove this `matrix_aux_file_definitions` variable.
 | 
			
		||||
matrix_aux_file_definitions:
 | 
			
		||||
  # Create the privkey.pem file on the server by
 | 
			
		||||
  # uploading a file from the computer where Ansible is running.
 | 
			
		||||
  - dest: "{{ devture_traefik_ssl_dir_path }}/privkey.pem"
 | 
			
		||||
    src: /path/on/your/Ansible/computer/to/privkey.pem
 | 
			
		||||
 | 
			
		||||
  # Create the cert.pem file on the server
 | 
			
		||||
  # uploading a file from the computer where Ansible is running.
 | 
			
		||||
  - dest: "{{ devture_traefik_ssl_dir_path }}/cert.pem"
 | 
			
		||||
    src: /path/on/your/Ansible/computer/to/cert.pem
 | 
			
		||||
 | 
			
		||||
  # Create the custom Traefik configuration.
 | 
			
		||||
  # The `/ssl/..` paths below are in-container paths, not paths on the host. Do not change them!
 | 
			
		||||
  - dest: "{{ devture_traefik_config_dir_path }}/certificates.yml"
 | 
			
		||||
    content: |
 | 
			
		||||
      tls:
 | 
			
		||||
        certificates:
 | 
			
		||||
          - certFile: /ssl/cert.pem
 | 
			
		||||
            keyFile: /ssl/privkey.pem
 | 
			
		||||
        stores:
 | 
			
		||||
          default:
 | 
			
		||||
            defaultCertificate:
 | 
			
		||||
              certFile: /ssl/cert.pem
 | 
			
		||||
              keyFile: /ssl/privkey.pem
 | 
			
		||||
```
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user