Skip to content

grindsa/acme2certifier

Repository files navigation

acme2certifier

GitHub release GitHub last commit (branch) GitHub last commit (branch) CII Best Practices

Codecov main Codecov devel

Security Rating Maintainability Rating Reliability Rating Quality Gate Status

acme2certifier is development project to create an ACME protocol proxy. Main intention is to provide ACME services on CA servers which do not support this protocol yet. It consists of two libraries:

  • acme_srv/*.py - a bunch of classes implementing ACME server functionality based on rfc8555
  • ca_handler.py - interface towards CA server. The intention of this library is to be modular that an adaption to other CA servers should be straight forward. As of today the following handlers are available:
E - Certificte Enrollment, R - Certificte Revocation, P - EAB Profiling E R P
DigiCert® CertCentral
Entrust ECS Enterprise
EJBCA
Generic ACME protocol handler supporting Letsencrypt, BuyPass.com and ZeroSSL
Generic CMPv2 protocol handler
Generic EST protocol handler
Insta ActiveCMS
Microsoft Certificate Enrollment Web Services
Microsoft Windows Client Certificate Enrollment Protocol (MS-WCCE) via RPC/DCOM
NetGuard Certificate Lifecycle Manager
NetGuard Certificate Manager/Insta Certifier
Openssl
OpenXPKI
XCA
acme2dfn (external; ACME proxy for the German research network's PKI

For more up-to-date information and further documentation, please visit the project's home page at: https://github.com/grindsa/acme2certifier

ChangeLog

Release notes and ChangLog can be found at https://github.com/grindsa/acme2certifier/releases

Disclaimer

Following acme-clients are used for regular testing of server functionality

Other clients are on my list for later testing. In case you are bored, feel free to test other ACME clients and raise issues if something does not work as expected.

Command-line parameters used for testing

I am not a professional developer. Keep this in mind while laughing about my code and don’t forget to send patches.

Features

Following challenge types are supported:

Additional functionality will be added over time. If you are badly missing a certain feature please raise an issue to let me know.

Installation

The proxy can run either as plain wsgi-script on either apache or nginx or as django project. Running acme2certifier as django project allows to use other database backends than SQLite.

The fastest and most convenient way to install acme2certifier is to use docker containers. There are ready made images available at dockerhub and ghcr.io as well as instructions to build your own container. In addition rpm packages for AlmaLinux/CentOS Stream/Redhat EL 9 and deb packages for Ubuntu 22.04 will be provided with every release.

Software Bill Of Material

SBOMs for all containers will be automatically created during build process and stored in my SBOM repository

Contributing

Please read CONTRIBUTING.md for details on my code of conduct, and the process for submitting pull requests. Please note that I have a life besides programming. Thus, expect a delay in answering.

Versioning

I use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the GPLv3 - see the LICENSE file for details