mirror of
https://github.com/chaitin/SafeLine.git
synced 2026-02-10 10:43:31 +08:00
75 lines
2.0 KiB
Go
75 lines
2.0 KiB
Go
package cmd
|
|
|
|
import (
|
|
"crypto/x509/pkix"
|
|
"path/filepath"
|
|
|
|
"chaitin.cn/patronus/safeline-2/management/webserver/pkg/config"
|
|
"chaitin.cn/patronus/safeline-2/management/webserver/pkg/constants"
|
|
"chaitin.cn/patronus/safeline-2/management/webserver/utils"
|
|
)
|
|
|
|
func GenCerts() error {
|
|
if err := genServerCert(); err != nil {
|
|
return err
|
|
}
|
|
if err := genClientCACert(); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func genServerCert() error {
|
|
certPath := filepath.Join(config.GlobalConfig.MgtResDir, constants.CertsPath, "server.crt")
|
|
keyPath := filepath.Join(config.GlobalConfig.MgtResDir, constants.CertsPath, "server.key")
|
|
if err := utils.WriteCertIfNotExist(
|
|
certPath,
|
|
keyPath,
|
|
func() ([]byte, []byte, error) {
|
|
return utils.GenerateCert(
|
|
[]string{},
|
|
3650,
|
|
4096,
|
|
&pkix.Name{
|
|
Country: []string{"CN"},
|
|
Province: []string{"Beijing"},
|
|
Locality: []string{"Beijing"},
|
|
Organization: []string{"Beijing WAF Technology Co., Ltd."},
|
|
OrganizationalUnit: []string{"Service Infrastructure Department"},
|
|
CommonName: "WAF Management Server",
|
|
},
|
|
false,
|
|
)
|
|
}); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func genClientCACert() error {
|
|
certPath := filepath.Join(config.GlobalConfig.MgtResDir, constants.CertsPath, "client_ca.crt")
|
|
keyPath := filepath.Join(config.GlobalConfig.MgtResDir, constants.CertsPath, "client_ca.key")
|
|
if err := utils.WriteCertIfNotExist(
|
|
certPath,
|
|
keyPath,
|
|
func() ([]byte, []byte, error) {
|
|
return utils.GenerateCert(
|
|
[]string{},
|
|
3650,
|
|
4096,
|
|
&pkix.Name{
|
|
Country: []string{"CN"},
|
|
Province: []string{"Beijing"},
|
|
Locality: []string{"Beijing"},
|
|
Organization: []string{"Beijing WAF Technology Co., Ltd."},
|
|
OrganizationalUnit: []string{"Service Infrastructure Department"},
|
|
CommonName: "WAF Client Certificate Authority",
|
|
},
|
|
true,
|
|
)
|
|
}); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|