mirror of
https://github.com/grindsa/acme2certifier.git
synced 2025-12-31 01:51:01 +02:00
Page:
CA handler for OpenXPKI
Pages
# How to build an acme2certifier cluster on Ubuntu 22.04
<! wiki title: DEB Installation on Ubuntu 22.04
<! wiki title: External Account Binding
<! wiki title: Hooks
<! wiki title: Installation on Apache2 Running on Ubuntu 22.04
<! wiki title: Installation on NGINX Running on Alma Linux 9
<! wiki title: Pass Information from ACME Client to CA Handler
<! wiki title: Reporting and Housekeeping
<! wiki title: Support for ACME profiling
<! wiki title: Support for External Databases
ACME CA handler
Asynchronous Mode (`async_mode`) in acme2certifier
CA Handler for Microsoft Certification Authority Web Enrollment Service
CA Handler for Microsoft Windows Client Certificate Enrollment Protocol (MS WCCE)
CA Handler for NetGuard Certificate Lifecycle Manager
CA Handler for OpenXPKI
CA Handler for XCA
CA Handler for an OpenSSL based CA Stored on Local File System
CA Polling to Check Pending Enrollment Requests
CA Trigger
CA handler for Digicert CertCentral
CA handler for EJBCA
CA handler for Entrust ECS Enterprise
CA handler for Insta ActiveCMS
CA handler for Insta
CA handler for Microsoft Certification Authority Web Enrollment Service
CA handler for Microsoft Windows Client Certificate Enrollment Protocol (MS WCCE)
CA handler for NetGuard Certificate Lifecycle Manager
CA handler for NetGuard Certificate Manager and Insta Certifier
CA handler for OpenXPKI
CA handler for XCA
CA handler for an openssl based CA stored on local file system
CA handler using CMPv2 protocol
CA handler using EST protocol
CA polling to check pending enrollment requests
CA trigger
CA‐handler for Hashicorp Vault PKI
Configuration options for acme2certifier
Containerized Installation Using Apache2 or Nginx as Web Server with WSGI or Django
Containerized installation
DEB installation on Ubuntu 22.04
Database scheme
Enrollment of End User Certificates according to RFC8823
Enrollment profiling via external account binding
Example commands for acme clients
External Account Binding (EAB)
External Account Binding
Home
Hooks support
Hooks
How to Create Your Own CA Handler
How to build am acme2certifier cluster on Ubuntu 22.04
How to build an acme2certifier cluster on Alma Linux 9
How to build an acme2certifier cluster on Ubuntu 22.04
How to contribute to this project
How to create your own CA Handler
Installation on Apache2 Running on Ubuntu 22.04
Installation on NGINX Running on Alma Linux 9
Installation on Nginx Running on Ubuntu 22.04
Installation on nginx running on Ubuntu 22.04
Pass Information from ACME Client to CA Handler
Prevalidated Domain List Feature for ACME Authorization
Proxy Support in acme2certifier
Proxy support in acme2certifier
RPM Installation on AlmaLinux 9
RPM installation on Alma Linux 9
RPM installation on alma Linux 9
Reporting and Housekeeping support
SOAP CA Handler Prototype
SOAP CA handler protopype
Security Policy
Support for ACME profiling
Support for External Databases
Support for TNAuthList Identifier and tkauth 01 Challenges
Support for TNAuthList identifier and tkauth 01 challenges
Upgrading acme2certifier
Using cert manager to enroll certificate in Kubernetes environments
acme_srv.cfg configuration options
upgrading acme2certifier
vault
No results
5
CA handler for OpenXPKI
grindsa edited this page 2025-02-18 06:20:47 +00:00
Table of Contents
Connecting to OpenXPKI
This handler can be use to enroll certificates from OpenxPKI as ACME support seems to be available in a commercial version only.
Although a connection was already possible via the generic EST CA handler this handler should preferred as it supports revocation operations and provides the ability to specify a certifiate-profiles
Prerequisites
- OpenXPKI with activated RPC server
- you'll also need:
- an RPC endpoint supporting
RequestCertificate,RevokeCertificateandSearchCertificateas decribed in the example configuration - a client certificate and key in pem format to authenticate towards the OpenXPKI
- a certificate profile
- an RPC endpoint supporting
OpenXPKI configuration
The OpenXPKI configuration needs to be adjusted to interoperate with acme2certifier
- acme2certifier expects a full key chain (including the root certififcate) to be delivered as part of the response of a
RequestCertificatecall. That means that you need to adjust theexport_certificateparameter in the endpoint configuration file stored inconfig.d/realm.tpl/rpc/
policy:
export_certificate: fullchain
- Even though certificate polling is supported by configuring the
polling_timeoutparameter inacne_srv.cfgit is recommended to skip manual or dual approval to ensure smooth enrollment operations. Thus, we recommend to set theapproval_pointsparameter in the OpenXPKI endpoint configuration file stored inconfig.d/realm.tpl/rpc/to "1"
policy:
approval_points: 1
- CSRs generated by some acme clients like certbot do not contain any subject name and get refused by OpenXPKI. We overcame this issue by modifying the OpenXPKI certificate profile stored in
config.d/realm.tpl/profile/in a way that the first subject alternate name from the CSR will be used as common name. If you know a smarter way please let us know (we do not claim to be OpenXPKI experts)
style:
# rpc endpoint name, in our example "enroll"
enroll:
subject:
dn: CN=[% SAN_DNS.0 %]
- acme2certifier will issue certificates on behalf of the end nodes. This needs to be allowed in OpenXPKI. Please see more info on enroll modes (especially
Signer on Behalfsection) here: Enrollment Workflow. For this, you will need to set the client certificate as anauthorized_signerfor your RPC endpoint. You can set this inconfig.d/realm.tpl/rpc/enroll.yaml:
authorized_signer:
rule1:
# Full DN
subject: CN=cn-of-your-client-cert-here(?:,.+|$)
Configuration
- modify the acme2certifier configuration (
acme_srv.cfg) and add the following parameters
[CAhandler]
handler_file: examples/ca_handler/openxpki_ca_handler.py
host: <URL>
client_key: <filename>
client_cert: <filename>
ca_bundle: <filename>
cert_profile_name: <name>
endpoint_name: <name>
polling_timeout: <seconds>
- host - URL of the OpenXPKI-server
- cert_file - certicate in PEM format used authenticate towards OpenXPKI - can be in either pem or pkcs12 format
- either: key_file - key file in PEM format used to authenticate towards OpenXPKI
- or: cert_passphrase - phassphrase to access the pkcs#12 container
- or: cert_passphrase_variable - optional - name of the environment variable containing the cert_passphrase (a configured
cert_passphraseparameter in acme_srv.cfg takes precedence) - ca_bundle - optional - ca certificate chain in pem format needed to validate the OpenXPKI-server certificate - can be True/False or a filename (default: True)
- cert_profile_name - name of the certificate profile
- polling_timeout - timeout in seconds for enrollment operations (default 0 - polling disabled)
- request_timeout - optional - requests timeout in seconds for requests (default: 5s)
Use your favorite acme client for certificate enrollment. A list of clients used in our regression can be found in the disclaimer section of our README file