golang解析x509证书(二进制)的扩展字段 | shiyiLiu
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()
}