Client library for Anchor PKI. See https://anchor.dev/ for details'
Project description
Anchor
Python client for Anchor PKI. See https://anchor.dev/ for details
Configuration
The Following environment variables are available to configure the default
AutoCert::Manager
.
HTTPS_PORT
- the TCP numerical port to bind SSL to.ACME_ALLOW_IDENTIFIERS
- A comma separated list of hostnames for provisioning certsACME_DIRECTORY_URL
- the ACME provider's directoryACME_KID
- your External Account Binding (EAB) KID for authenticating with the ACME directory above with anACME_HMAC_KEY
- your EAB HMAC_KEY for authenticating with the ACME directory aboveACME_RENEW_BEFORE_SECONDS
- optional Start a renewal this number number of seconds before the cert expires. This defaults to 30 days (2592000 seconds)ACME_RENEW_BEFORE_FRACTION
- optional Start the renewal when this fraction of a certificate's valid window is left. This defaults to 0.5, which means when the cert is in the last 50% of its lifespan a renewal is attempted.AUTO_CERT_CHECK_EVERY
- optional the number of seconds to wait between checking if the certificate has expired. This defaults to 1 hour (3600 seconds)
If both ACME_RENEW_BEFORE_SECONDS
and ACME_RENEW_BEFORE_FRACTION
are set,
the one that causes the renewal to take place earlier is used.
Example:
- Cert start (not_before) moment is :
2023-05-24 20:53:11 UTC
- Cert expiration (not_after) moment is :
2023-06-21 20:53:10 UTC
ACME_RENEW_BEFORE_SECONDS
is1209600
(14 days)ACME_RENEW_BEFORE_FRACTION
is0.25
- which equates to a before seconds value of604799
(~7 days)
The possible moments to start renewing are:
- 14 days before expiration moment -
2023-06-07 20:53:10 UTC
- when 25% of the valid time is left -
2023-06-14 20:53:11 UTC
Currently the AutoCert::Manager
will use whichever is earlier.
Example configuration
HTTPS_PORT=44300
ACME_ALLOW_IDENTIFIERS=my.lcl.host,*.my.lcl.host
ACME_DIRECTORY_URL=https://acme-v02.api.letsencrypt.org/directory
ACME_KID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ACME_HMAC_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Notes
The HTTP User Agent for the anchor-autocert client is
anchor-pki autocert python client v{VERSION}
Development
Development and distribution is facilitated with poetry.
- lint the project - 2 steps:
poetry run black ./
poetry run pylint ./src/anchor_pki
- run tests
poetry run pytest tests/
- run tests with coverage
poetry run pytest --cov-report=term-missing --cov=./src/anchor_pki/ tests/
- build
poetry build
Development assumes a .env
file at the root of the python module.
Currently the only required items in it are:
ACME_KID=...
ACME_HMAC_KEY=...
VCR_RECORD_MODE=none # set to have new tests record new cassets
To re-record all cassettes
Make sure the ACME_KID
and ACME_HMAC_KEY
values in the
tests/anchor_pki/autocert/test_manager.py
is kept in sync with the values in the .env
file when re-recording the
cassettes as the values will need to be available during CI to match the
cassette data.
Update the .env
file with:
VCR_RECORD_MODE=all
Then update the value for vcr_recorded_at
in tests/anchor_pki/autocert/test_manager.py
to be sometime after the cassettes were recorded but before the certificates expire.
License
The python packages is available as open source under the terms of the MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file anchor_pki-0.3.0.tar.gz
.
File metadata
- Download URL: anchor_pki-0.3.0.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3374df8691f1795826e90e6b158f6d3dd6b04e8085ae2d8ee732072082b5b483 |
|
MD5 | 768425d8660ec953fc1fbdf536d189ed |
|
BLAKE2b-256 | c2626054c09ceaf6059e429848784ffac43a630595a204ac6ab773ab19869522 |
File details
Details for the file anchor_pki-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: anchor_pki-0.3.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4eb58452a9c3d3d2494dbcf064b785430873ca8d8f5d68c2dc0f2d76cd6cb0ca |
|
MD5 | 4a4fee9a680706506de356ed0ea65680 |
|
BLAKE2b-256 | a804b6d5716f9094f1d07aab6561cce787fea67caedfbc1a6ea4a29ba4446b88 |