Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[change] Use Standalone Certificate Templates as the underlying base for VpnClient certificate management

Aperta
#1,449 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@stktyagi ci sta già lavorando.

Dal 30/7/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

enhancement gsoc

Is your feature request related to a problem? Please describe.
Currently, VpnClient handles certificate management through custom, tied-in logic (calls on save and specific signal handlers for VPN clients). With the introduction of standalone Certificate Generator Templates and the DeviceCertificate model, we now have a generalized framework for generating, binding, renewing, and revoking device certificates. Maintaining two parallel paths for certificate generation creates code duplication, increases the maintenance burden, and introduces the risk that bug fixes or performance improvements made to one won't automatically benefit the other.

Describe the solution you'd like
Refactor the VpnClient certificate lifecycle logic to build upon or reuse the newly established Standalone Certificate Generator Template infrastructure.

  • Abstract Core Lifecycle Logic: Decouple the certificate creation, renewal, and revocation routines currently housed within VpnClient architecture and migrate them into a shared base class or utility that both VpnClient and DeviceCertificate can inherit from.
  • Unified Signal Management & Atomicity: Standardize the signal handlers across both implementations. Ensure that the transaction atomicity introduced in the standalone templates is actively applied to VpnClient operations to prevent partial database writes during certificate generation.
  • Synchronized CRL Updates: Tie the current newly added revocation logic to VpnClient certificates and make it consistent and error free across both DeviceCertificate and VpnClient.
  • Consistent renewal and regeneration: Implement shared methods to update and regenerate certificate details based on VpnClient attributes updation.

Certificate integrity bugs to fix during this refactor
The current VpnClient certificate handling has concrete gaps that the DeviceCertificate architecture already avoids. These should be addressed as part of this work:

  • Cascading certificate deletion: Deleting a certificate currently cascades to and silently deletes the bound VpnClient (along with its assigned IP, keys, etc.). DeviceCertificate uses RESTRICT, so a certificate that is still bound cannot be deleted. VpnClient should adopt the same protection.
  • Organization move of in-use certificates: A certificate bound to a VpnClient can be moved to another organization while still in use, risking cross-organization exposure of certificate and key material. DeviceCertificate locks the organization of a bound certificate; VpnClient should apply the same guard.
  • Revoked certificates still delivered: Revoked certificates (and their private keys) are still injected into the VPN client configuration context sent to devices. DeviceCertificate excludes revoked certificates from the configuration context; VpnClient should do the same.

Additional context
Unifying this under the hood adheres to DRY (Don't Repeat Yourself) principles and simplifies future maintainability.

Lingua principale
Python
Stelle
779
Fork
328
Merge medio
2g 19h
PR unite (30g)
7

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di openwisp/openwisp-controller

Tutte le issue di openwisp/openwisp-controller

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.