@@ -198,6 +198,9 @@ func (h *Handler) List(c droplet.Context) (interface{}, error) {
198
198
for _ , item := range ret .Rows {
199
199
ssl := & entity.SSL {}
200
200
_ = utils .ObjectClone (item , ssl )
201
+ x509_validity , _ := x509CertValidity (ssl .Cert )
202
+ ssl .ValidityStart = x509_validity .NotBefore
203
+ ssl .ValidityEnd = x509_validity .NotAfter
201
204
ssl .Key = ""
202
205
ssl .Keys = nil
203
206
list = append (list , ssl )
@@ -327,6 +330,35 @@ func (h *Handler) BatchDelete(c droplet.Context) (interface{}, error) {
327
330
return nil , nil
328
331
}
329
332
333
+ // validity allows unmarshaling the certificate validity date range
334
+ type validity struct {
335
+ NotBefore , NotAfter int64
336
+ }
337
+
338
+ func x509CertValidity (crt string ) (* validity , error ) {
339
+ if crt == "" {
340
+ return nil , consts .ErrSSLCertificate
341
+ }
342
+
343
+ certDERBlock , _ := pem .Decode ([]byte (crt ))
344
+ if certDERBlock == nil {
345
+ return nil , consts .ErrSSLCertificateResolution
346
+ }
347
+
348
+ x509Cert , err := x509 .ParseCertificate (certDERBlock .Bytes )
349
+
350
+ if err != nil {
351
+ return nil , consts .ErrSSLCertificateResolution
352
+ }
353
+
354
+ val := validity {}
355
+
356
+ val .NotBefore = x509Cert .NotBefore .Unix ()
357
+ val .NotAfter = x509Cert .NotAfter .Unix ()
358
+
359
+ return & val , nil
360
+ }
361
+
330
362
func ParseCert (crt , key string ) (* entity.SSL , error ) {
331
363
if crt == "" || key == "" {
332
364
return nil , consts .ErrSSLCertificate
@@ -383,8 +415,6 @@ func ParseCert(crt, key string) (*entity.SSL, error) {
383
415
384
416
ssl .Snis = snis
385
417
ssl .Key = key
386
- ssl .ValidityStart = x509Cert .NotBefore .Unix ()
387
- ssl .ValidityEnd = x509Cert .NotAfter .Unix ()
388
418
ssl .Cert = crt
389
419
390
420
return & ssl , nil
@@ -424,6 +454,10 @@ func (h *Handler) Validate(c droplet.Context) (interface{}, error) {
424
454
return nil , err
425
455
}
426
456
457
+ x509_validity , _ := x509CertValidity (input .Cert )
458
+ ssl .ValidityStart = x509_validity .NotBefore
459
+ ssl .ValidityEnd = x509_validity .NotAfter
460
+
427
461
return ssl , nil
428
462
}
429
463
0 commit comments