• package main

  • import (
  •     "crypto/x509"
  •     "flag"
  •     "fmt"
  •     "log"
  •     "os"
  •     "strconv"
  • )

  • var certname = flag.String("certname", "test.der", "input you certname")

  • func getCertInfo() {

  •     if len(os.Args) != 2 {
  •         log.Fatal("input certname....")
  •         return
  •     }
  •     flag.Parse()
  •     certCerFile, err := os.Open(*certname)

  •     if err != nil {
  •         log.Fatal(err)
  •     }
  •     derBytes := make([]byte, 1000)
  •     count, err := certCerFile.Read(derBytes)
  •     if err != nil {
  •         log.Fatal(err)
  •     }
  •     certCerFile.Close()
  •     cert, err := x509.ParseCertificate(derBytes[0:count])
  •     if err != nil {
  •         log.Fatal(err)
  •     }

  •     expiretime := strconv.FormatInt(cert.NotAfter.Unix(), 10)
  •     fmt.Printf(expiretime);
  •     extension := cert.Extensions

  •     if len(extension) > 0 {
  •         fmt.Printf(extension);
  •     }

  • }
  • func main() {
  •     getCertInfo()
  • }