Giter VIP home page Giter VIP logo

caddy-keyless's Introduction

caddy-keyless

A Caddy module providing Keyless SSL support

Description

This Caddy module provides Keyless SSL support, bringing this Cloudflare technology into self-hosted environments.

It is based on a custom keyless certificate loader that offloads the TLS handshake to a Keyless SSL server.

This is an early POC; things will change!

Configuration

Currently only the Caddy JSON configuration format is supported. An example TLS configuration is shown below:

    "tls": {
        "certificates": {
            "keyless": {
                "cert": "/path/to/client/cert.pem",
                "key": "/path/to/client/key.pem",
                "ca": "/path/to/cacert.pem",
                "disable_verification": false,
                "server": "127.0.0.1:7000",
                "certificates": [
                    "/path/to/keyless/certificate.crt"
                ]
            }
        }
    }

The cert, key and CA bundle are required for mTLS between Caddy and the Keyless server. It is possible to disable TLS certificate validation, for example when the Keyless server uses a self-signed certificate that is not trusted, but this must not be used in production. The Keyless server to contact is running on the same host on port 7000. The certificates array contains paths to the certificates that are loaded by the keyless loader. TLS handshakes destined for hostnames that are in one of those certificates will be performed by the Keyless SSL server.

$ gokeyless --private-key-dirs "/path/to/private/keys"

This module (currently) does not offer a method to automatically retrieve the certificates to serve. This means that certificates for which the Keyless server manages keys should be made available to the Caddy instance using other means.

TODO

  • Add more configuration options and/or smarter defaults
  • Provide multiple means for loading the certs (from files, from directories, from remote, etc);
    • Reuse the existing certificate loaders for this?
  • Implement an CertMagic issuer backed by Keyless SSL?
    • Likely requires a layer on top of the plain Gokeyless server
  • Provide an example using Docker?
  • Caddyfile support
  • See other TODOs in code
  • ...

caddy-keyless's People

Contributors

hslatman avatar sadpencil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

sadpencil

caddy-keyless's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.