code: func (s *Server) CertificateFile() (string, error) {
  	if s.caFile != "" {
  		return s.caFile, nil
  	}
  
  	f, err := ioutil.TempFile("", "vcsim-")
  	if err != nil {
  		return "", err
  	}
  	defer f.Close()
  
  	s.caFile = f.Name()
  	cert := s.Certificate()
  	return s.caFile, pem.Encode(f, &pem.Block{Type: "CERTIFICATE", Bytes: cert.Raw})
  }
docs: // CertificateFile returns a file name, where the file contains the PEM encoded Server.Certificate.
  // The temporary file is removed when Server.Close() is called.