MCPcopy Index your code
hub / github.com/evenh/intercert

github.com/evenh/intercert @v0.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.2 ↗ · + Follow
151 symbols 285 edges 17 files 41 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

isDNSNameAllowed
called by 11
server/whitelist.go
PrintErrorAndExit
called by 6
cmd/cmd.go
NewWhitelist
called by 5
server/whitelist.go
Register
called by 3
client/scheduler.go
logClient
called by 3
server/issuer.go
GetDialAddr
called by 3
config/config.go
absoluteFileName
called by 2
client/storage.go
NewCertReq
called by 2
client/queue.go

Shape

Method 88
Function 43
Struct 16
Interface 4

Languages

Go100%

Modules by API surface

api/api.pb.go94 symbols
server/issuer.go9 symbols
client/storage.go7 symbols
cmd/root.go5 symbols
client/scheduler.go5 symbols
server/whitelist_test.go4 symbols
config/config.go4 symbols
client/tasks.go4 symbols
client/queue.go4 symbols
client/client.go4 symbols
server/whitelist.go3 symbols
cmd/cmd.go3 symbols

For agents

$ claude mcp add intercert \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact