Skip to content

Commit 4bebe71

Browse files
committed
MINOR: runtime: add support for dumping SSL certificates
1 parent 3f87c8c commit 4bebe71

3 files changed

Lines changed: 25 additions & 0 deletions

File tree

runtime/certs.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,3 +242,15 @@ func (s *SingleRuntime) DeleteCertificate(storageName string) error {
242242
}
243243
return nil
244244
}
245+
246+
func (s *SingleRuntime) DumpCertificate(filename string) (string, error) {
247+
if filename == "" {
248+
return "", fmt.Errorf("%s %w", "Argument filename empty", native_errors.ErrGeneral)
249+
}
250+
cmd := "dump ssl cert " + filename
251+
response, err := s.ExecuteWithResponse(cmd)
252+
if err != nil {
253+
return "", fmt.Errorf("%s %w", err.Error(), native_errors.ErrGeneral)
254+
}
255+
return response, nil
256+
}

runtime/interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ type SSL interface {
155155
ShowCerts() (models.SslCertificates, error)
156156
GetCert(name string) (*models.SslCertificate, error)
157157
ShowCertificate(name string) (*models.SslCertificate, error)
158+
DumpCertificate(name string) (string, error)
158159
NewCertEntry(name string) error
159160
SetCertEntry(name, payload string) error
160161
CommitCertEntry(name string) error

runtime/runtime_client.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1245,6 +1245,18 @@ func (c *client) ShowCertificate(name string) (*models.SslCertificate, error) {
12451245
return cert, nil
12461246
}
12471247

1248+
// DumpCertificate returns the contents of a certificate as a PEM file
1249+
func (c *client) DumpCertificate(name string) (string, error) {
1250+
if !c.runtime.IsValid() {
1251+
return "", errors.New("no valid runtime found")
1252+
}
1253+
pem, err := c.runtime.DumpCertificate(name)
1254+
if err != nil {
1255+
return "", fmt.Errorf("%s %w", c.runtime.socketPath, err)
1256+
}
1257+
return pem, nil
1258+
}
1259+
12481260
// ShowCrlFiles returns Crl files description from runtime
12491261
func (c *client) ShowCrlFiles() (models.SslCrls, error) {
12501262
if !c.runtime.IsValid() {

0 commit comments

Comments
 (0)