Use Let's Encrypt on private (LAN) servers using DNS validation
  • Go 91.8%
  • Dockerfile 5.8%
  • Makefile 2.4%
Find a file
2023-12-08 11:40:38 +01:00
.github Upgrade to GitHub-native Dependabot 2023-12-08 11:40:38 +01:00
api Update Protobuf definition after dependency update 2019-10-25 09:02:10 +02:00
client Upgrade certmagic and lego 2019-10-25 21:22:35 +02:00
cmd Upgrade certmagic and lego 2019-10-25 21:22:35 +02:00
config Certificate renewal check happens server side 2019-04-27 14:20:43 +02:00
server Upgrade certmagic and lego 2019-10-25 21:22:35 +02:00
.gitignore Add Codecov 2019-01-09 08:37:51 +01:00
.goreleaser.yml goreleaser: add docker support 2019-05-01 18:49:12 +02:00
.travis.yml Update CI config to use Go 1.13 2019-10-25 09:01:40 +02:00
Dockerfile Bump Docker Go version to 1.13 2019-10-25 11:01:38 +02:00
Dockerfile.goreleaser Bump Docker Go version to 1.13 2019-10-25 11:01:38 +02:00
go.mod Upgrade go-domain-util 2019-10-25 21:27:24 +02:00
go.sum Upgrade go-domain-util 2019-10-25 21:27:24 +02:00
LICENSE Add README 2019-01-05 13:59:14 +01:00
main.go Fix golint warnings 2019-01-09 23:11:42 +01:00
Makefile Use Go modules in Travis/goreleaser 2019-04-26 13:52:16 +02:00
README.md Disable code coverage 2019-04-27 14:20:43 +02:00

intercert Build Status Go Report Card

Brings Let's Encrypt to LAN and other locked down environments.


This is a work in progress (unstable). Contributions are very welcome!

How it works

  1. A server instance is running somewhere in your network infrastructure, with network access to your DNS provider of choice and the ACME directory you'll want to use (Let's Encrypt most likely).
    The server is configured with the DNS names you control (e.g. somecompany.io and other.co).
  2. Clients are deployed on the machines where you need the certificates for your applications.
  3. Certificates magically appear on the client machine in the directory you've configured.

Deployment diagram

                                                                                        
                                             LAN                                        
  +------------------------------------------------------------------------------------+
  |                                                                                    |
  |                                                                                    |
  |                                                                                    |
  |                     Server 1                                                       |
  |  +--------------------------------------------+                                    |
  |  |                                            |                                    |
  |  | my-db.somecompany.io                       |                                    |
  |  |  app1.somecompany.io   intercert (client)  |                                    |
  |  |  app2.somecompany.io                       |          +-----------------------+ |
  |  +--------------------------------------------+----------|                       | |
  |                                                          |                       | |
  |                     Server N                             |   intercert (server)  | |
  |  +--------------------------------------------+----------|                       | |
  |  |                                            |          +-----------------------+ |
  |  | redis.somecompany.io                       |           /                   |    |
  |  |    intranet.other.co   intercert (client)  |          /                    |    |
  |  |                                            |         /                     |    |
  |  +--------------------------------------------+        /                      |    |
  |                                                       /                       |    |
  +------------------------------------------------------/------------------------|----+
                                      +------------------        +----------------|-+   
                                      |                 |        |                  |   
                                      |   DNS-provider  |        |   ACME provider  |   
                                      |                 |        |                  |   
                                      +-----------------+        +------------------+                                                   

Thanks

A huge thanks to these projects

  • certmagic - does the hard work for intercert
  • lego - the underpinning library for certmagic, and provides the DNS validation capability