@@ -24,7 +24,7 @@ var pemCmd = &cobra.Command{
2424 return err
2525 }
2626
27- pem , err := certChainToPEM (certs )
27+ pem , cnt , err := certChainToPEM (certs )
2828
2929 if err != nil {
3030 return err
@@ -45,7 +45,7 @@ var pemCmd = &cobra.Command{
4545
4646 defer f .Close ()
4747 f .Write (pem )
48- fmt .Printf ("pem file %s with %d certificates created.\n " , fileName , len ( certs ) )
48+ fmt .Printf ("pem file %s with %d certificate(s) created.\n " , fileName , cnt )
4949 return nil
5050 },
5151}
@@ -55,13 +55,19 @@ func init() {
5555}
5656
5757// CertChainToPEM is a utility function returns a PEM encoded chain of x509 Certificates, in the order they are passed
58- func certChainToPEM (certChain []* x509.Certificate ) ([]byte , error ) {
58+ func certChainToPEM (certChain []* x509.Certificate ) ([]byte , int , error ) {
5959 var pemBytes bytes.Buffer
60+ cnt := 0
6061 for i , cert := range certChain {
61- fmt .Printf ("Adding certificate #%d: %s\n " , i , cert .Subject .CommonName )
62- if err := pem .Encode (& pemBytes , & pem.Block {Type : "CERTIFICATE" , Bytes : cert .Raw }); err != nil {
63- return nil , err
62+ if isToExport (i ) {
63+ fmt .Printf (" + Adding certificate #%d: %s\n " , i , cert .Subject .CommonName )
64+ if err := pem .Encode (& pemBytes , & pem.Block {Type : "CERTIFICATE" , Bytes : cert .Raw }); err != nil {
65+ return nil , 0 , err
66+ }
67+ cnt ++
68+ } else {
69+ fmt .Printf (" - Skipping certificate #%d: %s\n " , i , cert .Subject .CommonName )
6470 }
6571 }
66- return pemBytes .Bytes (), nil
72+ return pemBytes .Bytes (), cnt , nil
6773}
0 commit comments