emqx / emqx/eip

certificate revocation

Open
#61 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Makefile
Stars
21
Forks
20
Avg merge
3d 18h
Merged PRs (30d)
1

Description

we had a few customers asked for client certificate revocation support.

there are a few options for us to support it:

1. Make use of the Erlang's builtin crl check and cache functionality
https://www.erlang.org/doc/man/ssl.html#type-crl_check
https://www.erlang.org/doc/man/ssl.html#type-crl_cache_opts

2. Like 1, but implement the cache callbacks by ourselves.

3. Provide custom verify callback in SSL options, and implement ourown check and cache
https://www.erlang.org/doc/man/ssl.html#type-custom_verify
return `{revoked, _} `, in case the cert is revoked.

No matter how it is implemented, we should have a configuration and an HTTP API to interface the users.

* Bootstrap the cache from a file (path of which is configurable)
* Persist the list in database
* Add CLI/HTTP APIs to add to / delete from the revocation list (and cache)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked Erlang ssl documentation for crl_check, crl_cache_opts, and custom_verify, then inspect the repository for existing configuration, database, CLI, and HTTP API entry points. Done means selecting and implementing a revocation approach that supports configurable file bootstrap, database persistence, and APIs for adding and deleting revoked certificates.

Written by the indexing model from the issue text.

Assessment

Tech stack
erlang
Domain
api, authentication, cli, databases, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.