code: func NewCertificateAuthority(config *certutil.Config) (*x509.Certificate, crypto.Signer, error) {
  	key, err := NewPrivateKey()
  	if err != nil {
  		return nil, nil, errors.Wrap(err, "unable to create private key while generating CA certificate")
  	}
  
  	cert, err := certutil.NewSelfSignedCACert(*config, key)
  	if err != nil {
  		return nil, nil, errors.Wrap(err, "unable to create self-signed CA certificate")
  	}
  
  	return cert, key, nil
  }
docs: // NewCertificateAuthority creates new certificate and private key for the certificate authority