3.1.0 (2026-07-07)

Warning

Old database migrations have been removed in this release. You can upgrade to this release only from version 2.3.0 or later.

Settings

OCSP and CRLs

Command-line

  • manage.py notify_expiring_certs:

    • The command now always sends all pending notifications. The --days parameter no longer has any effect and will be removed in django-ca==3.3.0.

    • The command now uses the Celery task internally to send notifications, so it will return instantly if Celery is configured. The improvements described below thus also apply to this command.

  • Add the manage.py generate_ocsp_responses command to generate OCSP responses from the command line.

Celery tasks

  • Add the notify_watchers() task to send notifications for expiring certificates in Celery:

    • The task remembers which notifications were already sent. It can thus be called multiple times a day to protect against outages.

    • In setups that use Celery, the task is configured to run every six hours.

  • Add the generate_ocsp_responses() task to cache OCSP responses periodically.

Python API

  • django_ca.models.CertificateAuthority.cache_crls was removed. Use generate_crls() instead.

Views

  • Support for passing an int as the expires parameter for OCSPView was removed (deprecated since 3.0.0).

Models and database support

  • Cleaned up QuerySEt methods to ensure consistency and more readable code. QuerySet methods are now documented in the model reference.

  • Removed initial set of migrations, squashed migrations where added in django-ca==2.3.0.

  • Reduced the maximum length for the name of certificate authorities to 255, from 256. The field is indexed and MariaDB does not allow an index with a length greater then 255 characters.

  • Names for watchers can now be up to 255 characters long (from 64).

Dependencies

  • BACKWARDS INCOMPATIBLE: Dropped support for acme~=5.2.0 and acme~=5.3.0.

  • Added support for cryptography~=47.0, cryptography~=48.0 and cryptography~=49.0.

  • Added support for pydantic~=2.13.0.

  • Added support for acme~=5.6.0.

Deprecation notices

  • This is the last release to support acme~=5.4.0 and acme~=5.5.0.

  • This is the last release to support pydantic~=2.12.0.

  • This is the last release to support cryptography~=46.0, cryptography~=47.0 and cryptography~=48.0.

Setup and packaging

  • Switch to hatch to build Python Wheels.