Documentation
¶
Overview ¶
Package certificates provides certificate generation utilities for the Wazuh operator. Domain-specific types are defined in subpackages (common, opensearch, wazuh). This file re-exports them for backward compatibility.
Package certificates provides certificate generation utilities
Index ¶
- Constants
- Variables
- func AdminDN(opts DNOptions) string
- func CertificateDomainMismatch(cert *x509.Certificate) bool
- func DaysFromDuration(d time.Duration) int
- func DefaultAdminDN() string
- func DefaultNodesDN() string
- func DurationFromDays(days int) time.Duration
- func DurationFromHours(hours int) time.Duration
- func DurationFromMinutes(minutes int) time.Duration
- func ExtractDomainFromSAN(san string) (string, bool)
- func FormatCertDuration(d time.Duration) string
- func FormatDN(commonName, ou, org, locality, state, country string) string
- func GenerateDashboardSANs(clusterName, namespace string) []string
- func GenerateFilebeatSANs(clusterName, namespace string, workerReplicas int32) []string
- func GenerateIndexerNodeSANs(clusterName, namespace string, replicas int32) []string
- func GenerateManagerNodeSANs(clusterName, namespace string, workerReplicas int32) []string
- func GenerateSerialNumber() (*big.Int, error)
- func GetCertificateExpiry(certPEM []byte) (time.Time, error)
- func HoursFromDuration(d time.Duration) int
- func MinutesFromDuration(d time.Duration) int
- func MustParseCertDuration(s string) time.Duration
- func NodesDN(opts DNOptions) string
- func ParseCertDuration(s string) (time.Duration, error)
- func ParseCertificateFromPEM(certPEM []byte) (*x509.Certificate, error)
- func RequiresDomainRegeneration(cert *x509.Certificate, secretName, namespace string, log logr.Logger) bool
- type AdminCertConfig
- type AdminCertResult
- type CAConfig
- type CAResult
- type CertificateOptions
- func (o *CertificateOptions) GetAdminRenewalThreshold() time.Duration
- func (o *CertificateOptions) GetAdminValidity() time.Duration
- func (o *CertificateOptions) GetCARenewalThreshold() time.Duration
- func (o *CertificateOptions) GetCAValidity() time.Duration
- func (o *CertificateOptions) GetDashboardRenewalThreshold() time.Duration
- func (o *CertificateOptions) GetDashboardValidity() time.Duration
- func (o *CertificateOptions) GetFilebeatRenewalThreshold() time.Duration
- func (o *CertificateOptions) GetFilebeatValidity() time.Duration
- func (o *CertificateOptions) GetNodeValidity() time.Duration
- func (o *CertificateOptions) GetRenewalThreshold() time.Duration
- func (o *CertificateOptions) ShouldRenewAdmin(cert *AdminCertResult) bool
- func (o *CertificateOptions) ShouldRenewCA(ca *CAResult) bool
- func (o *CertificateOptions) ShouldRenewDashboard(cert *DashboardCertResult) bool
- func (o *CertificateOptions) ShouldRenewFilebeat(cert *FilebeatCertResult) bool
- func (o *CertificateOptions) ShouldRenewNode(cert *NodeCertResult) bool
- type CertificateResult
- type DNOptions
- type DashboardCertConfig
- type DashboardCertResult
- type DomainValidationResult
- type ECDSACurve
- type FilebeatCertConfig
- type FilebeatCertResult
- type KeyAlgorithm
- type NodeCertConfig
- type NodeCertResult
Constants ¶
const ( DefaultKeySize = certcommon.DefaultKeySize DefaultOrganization = certcommon.DefaultOrganization DefaultOrganizationalUnit = certcommon.DefaultOrganizationalUnit DefaultCountry = certcommon.DefaultCountry DefaultState = certcommon.DefaultState DefaultLocality = certcommon.DefaultLocality DefaultAdminCommonName = certcommon.DefaultAdminCommonName KeyAlgorithmRSA = certcommon.KeyAlgorithmRSA KeyAlgorithmECDSA = certcommon.KeyAlgorithmECDSA ECDSACurveP256 = certcommon.ECDSACurveP256 ECDSACurveP384 = certcommon.ECDSACurveP384 ECDSACurveP521 = certcommon.ECDSACurveP521 DefaultCAValidityStr = certcommon.DefaultCAValidityStr DefaultNodeValidityStr = certcommon.DefaultNodeValidityStr DefaultCARenewalThresholdStr = certcommon.DefaultCARenewalThresholdStr DefaultNodeRenewalThresholdStr = certcommon.DefaultNodeRenewalThresholdStr )
const (
DefaultDashboardCommonName = opensearchcerts.DefaultDashboardCommonName
)
const (
DefaultFilebeatCommonName = wazuhcerts.DefaultFilebeatCommonName
)
Variables ¶
var ErrInvalidCertificatePEM = certcommon.ErrInvalidCertificatePEM
ErrInvalidCertificatePEM is returned when the certificate PEM data is invalid.
Functions ¶
func CertificateDomainMismatch ¶
func CertificateDomainMismatch(cert *x509.Certificate) bool
CertificateDomainMismatch checks if a certificate's SANs match the configured cluster domain
func DaysFromDuration ¶
DaysFromDuration converts a time.Duration to days (rounded down)
func DefaultAdminDN ¶
func DefaultAdminDN() string
DefaultAdminDN returns the default Distinguished Name for admin certificates
func DefaultNodesDN ¶
func DefaultNodesDN() string
DefaultNodesDN returns the default Distinguished Name pattern for node certificates
func DurationFromDays ¶
DurationFromDays converts days to time.Duration
func DurationFromHours ¶
DurationFromHours converts hours to time.Duration
func DurationFromMinutes ¶
DurationFromMinutes converts minutes to time.Duration
func ExtractDomainFromSAN ¶
ExtractDomainFromSAN extracts the cluster domain from a Kubernetes FQDN SAN
func FormatCertDuration ¶
FormatCertDuration formats a time.Duration as a human-readable string
func GenerateDashboardSANs ¶
GenerateDashboardSANs generates Subject Alternative Names for dashboard
func GenerateFilebeatSANs ¶
GenerateFilebeatSANs generates Subject Alternative Names for filebeat
func GenerateIndexerNodeSANs ¶
GenerateIndexerNodeSANs generates Subject Alternative Names for indexer nodes
func GenerateManagerNodeSANs ¶
GenerateManagerNodeSANs generates Subject Alternative Names for manager nodes
func GenerateSerialNumber ¶
GenerateSerialNumber generates a random serial number for certificates
func GetCertificateExpiry ¶
GetCertificateExpiry extracts the expiry time from a PEM-encoded certificate
func HoursFromDuration ¶
HoursFromDuration converts a time.Duration to hours (rounded down)
func MinutesFromDuration ¶
MinutesFromDuration converts a time.Duration to minutes (rounded down)
func MustParseCertDuration ¶
MustParseCertDuration parses a duration string and panics on error
func ParseCertDuration ¶
ParseCertDuration parses a duration string like "365d", "24h", "30m"
func ParseCertificateFromPEM ¶
func ParseCertificateFromPEM(certPEM []byte) (*x509.Certificate, error)
ParseCertificateFromPEM parses a PEM-encoded certificate
func RequiresDomainRegeneration ¶
func RequiresDomainRegeneration(cert *x509.Certificate, secretName, namespace string, log logr.Logger) bool
RequiresDomainRegeneration checks if a certificate needs regeneration due to domain mismatch
Types ¶
type AdminCertConfig ¶
type AdminCertConfig = opensearchcerts.AdminCertConfig
AdminCertConfig holds configuration for admin certificate generation
func DefaultAdminCertConfig ¶
func DefaultAdminCertConfig() *AdminCertConfig
DefaultAdminCertConfig returns an AdminCertConfig with default values
type AdminCertResult ¶
type AdminCertResult = opensearchcerts.AdminCertResult
AdminCertResult contains the generated admin certificate and private key
func GenerateAdminCert ¶
func GenerateAdminCert(config *AdminCertConfig, ca *CAResult) (*AdminCertResult, error)
GenerateAdminCert generates an admin certificate signed by the CA
func ParseAdminCert ¶
func ParseAdminCert(certPEM, keyPEM []byte) (*AdminCertResult, error)
ParseAdminCert parses an admin certificate and private key from PEM data
type CAConfig ¶
type CAConfig = certcommon.CAConfig
CAConfig holds configuration for CA certificate generation
func DefaultCAConfig ¶
DefaultCAConfig returns a CAConfig with default values
type CAResult ¶
type CAResult = certcommon.CAResult
CAResult contains the generated CA certificate and private key
func GenerateCA ¶
GenerateCA generates a new CA certificate and private key
type CertificateOptions ¶
type CertificateOptions struct {
// CAValidity is the validity period for CA certificates
// Default: 3650 days (10 years)
CAValidity time.Duration
// CARenewalThreshold is the duration before CA expiry to trigger renewal
// Default: 60 days
CARenewalThreshold time.Duration
// NodeValidity is the validity period for node certificates (indexer)
// Default: 365 days (1 year)
NodeValidity time.Duration
// RenewalThreshold is the duration before expiry to trigger renewal for node certs
// Default: 30 days
RenewalThreshold time.Duration
// AdminValidity is the validity period for admin certificates
// Admin certs are used for OpenSearch security API authentication
// Default: 365 days (1 year)
AdminValidity time.Duration
// AdminRenewalThreshold is the duration before expiry to trigger renewal for admin certs
// Default: 30 days
AdminRenewalThreshold time.Duration
// DashboardValidity is the validity period for dashboard certificates
// Dashboard certs are used for HTTPS on the Wazuh Dashboard
// Renewal requires dashboard pod restart
// Default: 365 days (1 year)
DashboardValidity time.Duration
// DashboardRenewalThreshold is the duration before expiry to trigger renewal for dashboard certs
// Default: 30 days
DashboardRenewalThreshold time.Duration
// FilebeatValidity is the validity period for filebeat certificates
// Filebeat certs are used for TLS between managers and indexer
// Renewal requires manager pod restart
// Default: 365 days (1 year)
FilebeatValidity time.Duration
// FilebeatRenewalThreshold is the duration before expiry to trigger renewal for filebeat certs
// Default: 30 days
FilebeatRenewalThreshold time.Duration
// Country is the country code for certificate subject (e.g., "US", "FR")
// Default: "US"
Country string
// State is the state/province for certificate subject
// Default: "California"
State string
// Locality is the city/locality for certificate subject
// Default: "San Francisco"
Locality string
// Organization is the organization name for certificate subject
// Default: "Wazuh"
Organization string
// OrganizationalUnit is the organizational unit for certificate subject
// Default: "Security"
OrganizationalUnit string
// CommonName is the common name for certificates (may be overridden per cert)
// Default: derived from cluster name
CommonName string
// KeyAlgorithm specifies the key algorithm to use (RSA or ECDSA)
// Default: RSA
KeyAlgorithm KeyAlgorithm
// ECDSACurve specifies the ECDSA curve to use when KeyAlgorithm is ECDSA
// Default: P256
ECDSACurve ECDSACurve
}
CertificateOptions holds the certificate generation options from the CRD These options are used to configure certificate validity, renewal thresholds, and subject fields
func DefaultCertificateOptions ¶
func DefaultCertificateOptions() *CertificateOptions
DefaultCertificateOptions returns the default certificate options
func (*CertificateOptions) GetAdminRenewalThreshold ¶
func (o *CertificateOptions) GetAdminRenewalThreshold() time.Duration
GetAdminRenewalThreshold returns the admin cert renewal threshold
func (*CertificateOptions) GetAdminValidity ¶
func (o *CertificateOptions) GetAdminValidity() time.Duration
GetAdminValidity returns the admin certificate validity period
func (*CertificateOptions) GetCARenewalThreshold ¶
func (o *CertificateOptions) GetCARenewalThreshold() time.Duration
GetCARenewalThreshold returns the CA renewal threshold
func (*CertificateOptions) GetCAValidity ¶
func (o *CertificateOptions) GetCAValidity() time.Duration
GetCAValidity returns the CA validity period
func (*CertificateOptions) GetDashboardRenewalThreshold ¶
func (o *CertificateOptions) GetDashboardRenewalThreshold() time.Duration
GetDashboardRenewalThreshold returns the dashboard cert renewal threshold
func (*CertificateOptions) GetDashboardValidity ¶
func (o *CertificateOptions) GetDashboardValidity() time.Duration
GetDashboardValidity returns the dashboard certificate validity period
func (*CertificateOptions) GetFilebeatRenewalThreshold ¶
func (o *CertificateOptions) GetFilebeatRenewalThreshold() time.Duration
GetFilebeatRenewalThreshold returns the filebeat cert renewal threshold
func (*CertificateOptions) GetFilebeatValidity ¶
func (o *CertificateOptions) GetFilebeatValidity() time.Duration
GetFilebeatValidity returns the filebeat certificate validity period
func (*CertificateOptions) GetNodeValidity ¶
func (o *CertificateOptions) GetNodeValidity() time.Duration
GetNodeValidity returns the node certificate validity period
func (*CertificateOptions) GetRenewalThreshold ¶
func (o *CertificateOptions) GetRenewalThreshold() time.Duration
GetRenewalThreshold returns the node cert renewal threshold
func (*CertificateOptions) ShouldRenewAdmin ¶
func (o *CertificateOptions) ShouldRenewAdmin(cert *AdminCertResult) bool
ShouldRenewAdmin checks if an admin certificate should be renewed based on options
func (*CertificateOptions) ShouldRenewCA ¶
func (o *CertificateOptions) ShouldRenewCA(ca *CAResult) bool
ShouldRenewCA checks if a CA certificate should be renewed based on options
func (*CertificateOptions) ShouldRenewDashboard ¶
func (o *CertificateOptions) ShouldRenewDashboard(cert *DashboardCertResult) bool
ShouldRenewDashboard checks if a dashboard certificate should be renewed based on options
func (*CertificateOptions) ShouldRenewFilebeat ¶
func (o *CertificateOptions) ShouldRenewFilebeat(cert *FilebeatCertResult) bool
ShouldRenewFilebeat checks if a filebeat certificate should be renewed based on options
func (*CertificateOptions) ShouldRenewNode ¶
func (o *CertificateOptions) ShouldRenewNode(cert *NodeCertResult) bool
ShouldRenewNode checks if a node certificate should be renewed based on options
type CertificateResult ¶
type CertificateResult = certcommon.CertificateResult
CertificateResult is the common interface for all certificate results
type DNOptions ¶
type DNOptions = certcommon.DNOptions
DNOptions holds the options for generating Distinguished Names
func DefaultDNOptions ¶
func DefaultDNOptions() DNOptions
DefaultDNOptions returns the default DN options
type DashboardCertConfig ¶
type DashboardCertConfig = opensearchcerts.DashboardCertConfig
DashboardCertConfig holds configuration for dashboard certificate generation
func DefaultDashboardCertConfig ¶
func DefaultDashboardCertConfig() *DashboardCertConfig
DefaultDashboardCertConfig returns a DashboardCertConfig with default values
type DashboardCertResult ¶
type DashboardCertResult = opensearchcerts.DashboardCertResult
DashboardCertResult contains the generated dashboard certificate and private key
func GenerateDashboardCert ¶
func GenerateDashboardCert(config *DashboardCertConfig, ca *CAResult) (*DashboardCertResult, error)
GenerateDashboardCert generates a dashboard certificate signed by the CA
func ParseDashboardCert ¶
func ParseDashboardCert(certPEM, keyPEM []byte) (*DashboardCertResult, error)
ParseDashboardCert parses a dashboard certificate and private key from PEM data
type DomainValidationResult ¶
type DomainValidationResult = certcommon.DomainValidationResult
DomainValidationResult contains the result of a certificate domain validation
func ValidateCertificateDomain ¶
func ValidateCertificateDomain(cert *x509.Certificate) DomainValidationResult
ValidateCertificateDomain performs a detailed validation of certificate SANs
type ECDSACurve ¶
type ECDSACurve = certcommon.ECDSACurve
ECDSACurve represents the elliptic curve used for ECDSA
type FilebeatCertConfig ¶
type FilebeatCertConfig = wazuhcerts.FilebeatCertConfig
FilebeatCertConfig holds configuration for filebeat certificate generation
func DefaultFilebeatCertConfig ¶
func DefaultFilebeatCertConfig() *FilebeatCertConfig
DefaultFilebeatCertConfig returns a FilebeatCertConfig with default values
type FilebeatCertResult ¶
type FilebeatCertResult = wazuhcerts.FilebeatCertResult
FilebeatCertResult contains the generated filebeat certificate and private key
func GenerateFilebeatCert ¶
func GenerateFilebeatCert(config *FilebeatCertConfig, ca *CAResult) (*FilebeatCertResult, error)
GenerateFilebeatCert generates a filebeat certificate signed by the CA
func ParseFilebeatCert ¶
func ParseFilebeatCert(certPEM, keyPEM []byte) (*FilebeatCertResult, error)
ParseFilebeatCert parses a filebeat certificate and private key from PEM data
type KeyAlgorithm ¶
type KeyAlgorithm = certcommon.KeyAlgorithm
KeyAlgorithm represents the algorithm used for key generation
type NodeCertConfig ¶
type NodeCertConfig = opensearchcerts.NodeCertConfig
NodeCertConfig holds configuration for node certificate generation
func DefaultNodeCertConfig ¶
func DefaultNodeCertConfig(commonName string) *NodeCertConfig
DefaultNodeCertConfig returns a NodeCertConfig with default values
type NodeCertResult ¶
type NodeCertResult = opensearchcerts.NodeCertResult
NodeCertResult contains the generated node certificate and private key
func GenerateNodeCert ¶
func GenerateNodeCert(config *NodeCertConfig, ca *CAResult) (*NodeCertResult, error)
GenerateNodeCert generates a node certificate signed by the CA
func ParseNodeCert ¶
func ParseNodeCert(certPEM, keyPEM []byte) (*NodeCertResult, error)
ParseNodeCert parses a node certificate and private key from PEM data
Directories
¶
| Path | Synopsis |
|---|---|
|
Package reconciler provides helper reconcilers for Wazuh components
|
Package reconciler provides helper reconcilers for Wazuh components |