Documentation
¶
Overview ¶
Package cert 提供证书管理功能,包括证书的签发、验证和吊销管理。
这个包主要用于软件授权管理,支持: - 证书签发和验证 - 证书吊销管理 - 版本控制 - 授权时间管理
Index ¶
- type Authorizer
- func (a *Authorizer) GenerateCA(info CAInfo) error
- func (a *Authorizer) GetCACertPEM() []byte
- func (a *Authorizer) IssueClientCert(info ClientInfo) (*Certificate, error)
- func (a *Authorizer) SaveCA(dirPath ...string) error
- func (a *Authorizer) SaveClientCert(cert *Certificate, dirPath ...string) error
- func (a *Authorizer) SetCurrentCertVersion(version string)
- func (a *Authorizer) ValidateCert(certPEM []byte, machineID string) error
- type CAInfo
- type Certificate
- type ClientInfo
- type Option
- type RevokeInfo
- type RevokeList
- type RevokeManager
- type RevokeOption
- type VersionInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Authorizer ¶
type Authorizer struct {
// contains filtered or unexported fields
}
Authorizer 授权管理器
func (*Authorizer) GenerateCA ¶
func (a *Authorizer) GenerateCA(info CAInfo) error
GenerateCA 生成新的CA证书和私钥,并更新授权管理器
func (*Authorizer) GetCACertPEM ¶
func (a *Authorizer) GetCACertPEM() []byte
GetCACertPEM 获取PEM格式的CA证书
func (*Authorizer) IssueClientCert ¶
func (a *Authorizer) IssueClientCert(info ClientInfo) (*Certificate, error)
IssueClientCert 签发客户端证书
func (*Authorizer) SaveCA ¶
func (a *Authorizer) SaveCA(dirPath ...string) error
SaveCA 保存CA证书到指定目录,如果不指定目录则使用当前工作目录
func (*Authorizer) SaveClientCert ¶
func (a *Authorizer) SaveClientCert(cert *Certificate, dirPath ...string) error
SaveClientCert 保存客户端证书到指定目录,如果不指定目录则使用当前工作目录 证书文件格式:{机器码}-{生效时间}-{结束时间}.crt
func (*Authorizer) SetCurrentCertVersion ¶ added in v1.0.4
func (a *Authorizer) SetCurrentCertVersion(version string)
SetCurrentCertVersion 设置当前证书格式版本
func (*Authorizer) ValidateCert ¶
func (a *Authorizer) ValidateCert(certPEM []byte, machineID string) error
ValidateCert 验证客户端证书
type CAInfo ¶
type CAInfo struct { // 基本信息 CommonName string // CA名称,如 "My Software Root CA" ValidDays int // 有效期天数 // 组织信息 Organization string // 组织名称,如公司名称 Country string // 国家代码,如 "CN" Province string // 省份 Locality string // 城市 // 证书参数 KeySize int // RSA密钥大小,默认4096 KeyUsages []string // 密钥用途,可选 }
CAInfo CA证书的配置信息
type Certificate ¶
type Certificate struct { CertPEM []byte // PEM格式的证书 KeyPEM []byte // PEM格式的私钥 MachineID string // 机器ID NotBefore time.Time // 生效时间 NotAfter time.Time // 过期时间 }
Certificate 证书信息
type ClientInfo ¶
type ClientInfo struct { // 基本信息 MachineID string // 机器码可以是单个或多个(用逗号分隔) ExpiryDate time.Time // 授权结束日期 // 公司信息 CompanyName string // 公司名称 Department string // 部门名称 ContactPerson string // 联系人 ContactPhone string // 联系电话 ContactEmail string // 联系邮箱 // 地址信息 Country string // 国家 Province string // 省份 City string // 城市 Address string // 详细地址 // 版本信息 Version string // 当前程序版本 ValidityPeriodDays int // 证书有效天数 }
ClientInfo 客户端信息
type Option ¶
type Option func(*Authorizer) error
Option 配置选项函数类型
func WithEnterpriseID ¶ added in v1.0.4
WithEnterpriseID 设置企业标识符
type RevokeInfo ¶
type RevokeInfo struct { SerialNumber string // 证书序列号 RevokeDate time.Time // 吊销时间 RevokeReason string // 吊销原因 MinValidVersion string // 最低有效版本 }
RevokeInfo 吊销信息
type RevokeList ¶
type RevokeList struct { UpdateTime time.Time // 列表更新时间 RevokedCerts map[string]*RevokeInfo // 已吊销证书 MinVersion string // 最低支持版本 }
RevokeList 吊销列表
type RevokeManager ¶
type RevokeManager struct {
// contains filtered or unexported fields
}
RevokeManager 吊销管理器
func NewRevokeManager ¶
func NewRevokeManager(version string, opts ...RevokeOption) (*RevokeManager, error)
NewRevokeManager 创建吊销管理器
func (*RevokeManager) IsRevoked ¶
func (rm *RevokeManager) IsRevoked(serialNumber string) (bool, string)
IsRevoked 检查证书是否被吊销
func (*RevokeManager) UpdateRevokeList ¶
func (rm *RevokeManager) UpdateRevokeList() error
UpdateRevokeList 更新吊销列表
type RevokeOption ¶
type RevokeOption func(*RevokeManager) error
RevokeOption 吊销管理器的配置选项
func WithRevokeListUpdater ¶
func WithRevokeListUpdater(updater func() ([]byte, error)) RevokeOption
WithRevokeListUpdater 设置吊销列表更新函数
type VersionInfo ¶
type VersionInfo struct { MinRequiredVersion string // 最低需要的客户端版本 CertVersion string // 证书格式版本 MaxValidDays int // 最大有效天数 }
VersionInfo 定义证书的版本信息