nats-io/nats-server · error
OCSP staple's signer missing authorization by CA to act as O
Error message
OCSP staple's signer missing authorization by CA to act as OCSP signer
What it means
Peer-verification callback: the OCSP response was signed by a delegate certificate, but that delegate lacks the OCSPSigning extended key usage, so it is not authorized by the CA to act as an OCSP signer.
Source
Thrown at server/ocsp.go:520
}
// Response signature of issuer or issuer delegate is checked in the library parse
resp, err := ocsp.ParseResponseForCert(oresp, peerLeaf, peerIssuer)
if err != nil {
return fmt.Errorf("failed to parse OCSP response from %s peer: %w", kind, err)
}
// If signer was issuer delegate double-check issuer delegate authorization
if resp.Certificate != nil {
ok := false
for _, eku := range resp.Certificate.ExtKeyUsage {
if eku == x509.ExtKeyUsageOCSPSigning {
ok = true
break
}
}
if !ok {
return fmt.Errorf("OCSP staple's signer missing authorization by CA to act as OCSP signer")
}
}
// Check that the OCSP response is effective, take defaults for clockskew and default validity
peerOpts := certidp.OCSPPeerConfig{ClockSkew: -1, TTLUnsetNextUpdate: -1}
sLog := certidp.Log{Debugf: srv.Debugf}
if !certidp.OCSPResponseCurrent(resp, &peerOpts, &sLog) {
return fmt.Errorf("OCSP staple from %s peer not current", kind)
}
if resp.Status != ocsp.Good {
return fmt.Errorf("bad status for OCSP Staple from %s peer: %s", kind, ocspStatusString(resp.Status))
}
return nil
}
// When server makes a peer connection, need to also present an OCSP Staple.View on GitHub (pinned to 3a66a489d2)
Solutions
- Have the CA issue the responder delegate a cert with the OCSPSigning EKU
- Use a responder signed directly by the issuer CA
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/ocsp.go:520 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of nats-io/nats-server@3a66a489d2 (2026-09-02).
Data as JSON: /api/errors/f2a241d16b447f83.
Report an issue: GitHub.