Skip to content

Signing pipeline for charger-submitted CSRs (follow-up to #186) #187

Description

@MostafaMoradii

Summary

#186 ships the inbound half of OCPP 1.6 Security Whitepaper §4.13 SignCertificate: the gateway accepts the charger's CSR, persists it to pending_certificate_signings, emits a cp.csr_submitted Kafka event, and replies Accepted.

This issue tracks the outbound half: actually signing the CSR and delivering the resulting cert chain back to the charger via CertificateSigned.req (Security Whitepaper §4.2).

Open questions

  1. Where is the signing authority?
    • In-house backend service (existing CA infra)?
    • AWS Private CA (or equivalent managed PCA)?
    • Manual operator-driven queue with offline signing?
  2. Trust posture — do we auto-sign for known chargers, or always require operator approval?
  3. Cert lifetime / renewal cadence — what does the charger fleet need?
  4. Failure handling — CA outage, rejected CSR, expired pending requests.

Scope (when this lands)

  • Operator-facing UI / API to review and approve / reject pending rows.
  • Integration with the chosen signing backend.
  • Outbound CertificateSigned.req dispatch (proto + REST + gRPC surface; mirrors the existing SendLocalList / InstallCertificate outbound shape).
  • Retry / replay semantics for charger-side delivery.

Until then

The pending_certificate_signings table accumulates rows. Operators can read them via direct DB query; chargers will see no CertificateSigned reply, which they treat as "request lost — retry later" per spec.

Refs #186.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogReal but deferred work — needs a fresh trigger to pick up

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions