nats-io/nats-server · error
server not OCSP valid
Error message
server not OCSP valid
What it means
The VerifyConnection callback installed by plugServerTLSOCSPPeer rejected a server-to-server TLS connection (route/gateway/leafnode): the remote server's certificate chain failed OCSP peer validation (tlsServerOCSPValid returned false). A reject event is emitted and the handshake fails.
Source
Thrown at server/ocsp_peer.go:196
return nil
}
return tc, true, nil
}
func (s *Server) plugServerTLSOCSPPeer(config *tlsConfigKind) (*tls.Config, bool, error) {
if config == nil || config.tlsConfig == nil || config.tlsOpts == nil {
return nil, false, errors.New(certidp.ErrUnableToPlugTLSServer)
}
tc := config.tlsConfig
tcOpts := config.tlsOpts
kind := config.kind
if tcOpts.OCSPPeerConfig == nil || !tcOpts.OCSPPeerConfig.Verify {
return tc, false, nil
}
tc.VerifyConnection = func(cs tls.ConnectionState) error {
if !s.tlsServerOCSPValid(cs.VerifiedChains, tcOpts.OCSPPeerConfig) {
s.sendOCSPPeerRejectEvent(kind, peerFromVerifiedChains(cs.VerifiedChains), certidp.MsgTLSServerRejectConnection)
return errors.New(certidp.MsgTLSServerRejectConnection)
}
return nil
}
return tc, true, nil
}
// tlsServerOCSPValid evaluates verified chains (post successful TLS handshake) against OCSP
// eligibility. A verified chain is considered OCSP Valid if either none of the links are
// OCSP eligible, or current "good" responses from the CA can be obtained for each eligible link.
// Upon first OCSP Valid chain found, the Server is deemed OCSP Valid. If none of the chains are
// OCSP Valid, the Server is deemed OCSP Invalid. A verified self-signed certificate (chain length 1)
// is also considered OCSP Valid.
func (s *Server) tlsServerOCSPValid(chains [][]*x509.Certificate, opts *certidp.OCSPPeerConfig) bool {
s.Debugf(certidp.DbgNumServerChains, len(chains))
return s.peerOCSPValid(chains, opts)
}
// tlsClientOCSPValid evaluates verified chains (post successful TLS handshake) against OCSPView on GitHub (pinned to 3a66a489d2)
Solutions
- Ensure the remote server's certificates have valid OCSP status
- Fix OCSP responder reachability from this server
- Re-issue or update certificates whose OCSP status is revoked or unknown
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/ocsp_peer.go:196 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/0757e6c1c7279ea4.
Report an issue: GitHub.