diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9f49b61..59005f7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,3 +17,8 @@ repos: language: system pass_filenames: false types: [go] + + - repo: https://github.com/gitleaks/gitleaks + rev: v8.30.1 + hooks: + - id: gitleaks diff --git a/README.md b/README.md index 1958b53..c53de03 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,17 @@ ## How It Works -When a client successfully completes an ACME challenge, `acme-proxy` forwards the certificate signing request to an external certificate authority (CA) that supports External Account Binding (EAB). The external CA signs the certificate and returns it to the client through `acme-proxy`. +`acme-proxy` runs as an ACME server inside your enterprise environment, acting as an intermediary between your internal infrastructure and an external certificate authority service (such as Sectigo). When a client successfully completes an ACME challenge, `acme-proxy` forwards the certificate signing request to an external certificate authority (CA) that supports External Account Binding (EAB). The external CA signs the certificate and returns it to the client through `acme-proxy`. + +**Certificate Request Flow:** + +1. Your internal server (behind a firewall perimeter) requests a certificate from `acme-proxy` using standard ACME clients like certbot, acme.sh or cert-manager.io if you're using Kubernetes. +2. `acme-proxy` presents cryptographic challenges to verify domain ownership +3. Once validation succeeds, `acme-proxy` forwards the certificate signing request to your external CA using External Account Binding (EAB) +4. The external CA signs the certificate +5. `acme-proxy` retrieves the certificate bundle and returns it to your server + + **Note:** LetsEncrypt does not support EAB. However, commercial CAs such as Sectigo and ZeroSSL do. @@ -40,20 +50,6 @@ Using ACME with commercial CAs in enterprise environments provides several advan - Leverage standard ACME clients (Certbot, acme.sh, cert-manager.io) for certificate issuance, automatic renewals. - Enable self-service certificate requests for development teams -## ACME Proxy Workflow - -`acme-proxy` runs as an ACME server inside your enterprise environment, acting as an intermediary between your internal infrastructure and an external certificate authority service (such as Sectigo). - -**Certificate Request Flow:** - -1. Your internal server (behind a firewall perimeter) requests a certificate from `acme-proxy` using standard ACME clients like certbot, acme.sh or cert-manager.io if you're using Kubernetes. -2. `acme-proxy` presents cryptographic challenges to verify domain ownership -3. Once validation succeeds, `acme-proxy` forwards the certificate signing request to your external CA using External Account Binding (EAB) -4. The external CA signs the certificate -5. `acme-proxy` retrieves the certificate bundle and returns it to your server - - - ## Quick Start ```sh @@ -118,7 +114,6 @@ The most important parts of the config are - "account_email": "", "eab_kid": "", "eab_hmac_key": "", - "certlifetime": 30, "metrics": { "enabled": true, "port": 9234, diff --git a/docs/assets/highlevel-flow.png b/docs/assets/highlevel-flow.png new file mode 100644 index 0000000..6528c56 Binary files /dev/null and b/docs/assets/highlevel-flow.png differ diff --git a/docs/content/examples.md b/docs/content/examples.md deleted file mode 100644 index 816dd8f..0000000 --- a/docs/content/examples.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = 'Examples' -weight = 50 -BookToC = true -+++ diff --git a/docs/content/troubleshoot.md b/docs/content/troubleshoot.md new file mode 100644 index 0000000..d111324 --- /dev/null +++ b/docs/content/troubleshoot.md @@ -0,0 +1,5 @@ ++++ +title = 'Troubleshoot' +weight = 20 +BookToC = true ++++ diff --git a/docs/public/categories/index.html b/docs/public/categories/index.html index b4b6753..ccbe32c 100644 --- a/docs/public/categories/index.html +++ b/docs/public/categories/index.html @@ -136,6 +136,8 @@