code: func (s *FileStorage) StoreSite(domain string, data *SiteData) error {
  	err := os.MkdirAll(s.site(domain), 0700)
  	if err != nil {
  		return fmt.Errorf("making site directory: %v", err)
  	}
  	err = ioutil.WriteFile(s.siteCertFile(domain), data.Cert, 0600)
  	if err != nil {
  		return fmt.Errorf("writing certificate file: %v", err)
  	}
  	err = ioutil.WriteFile(s.siteKeyFile(domain), data.Key, 0600)
  	if err != nil {
  		return fmt.Errorf("writing key file: %v", err)
  	}
  	err = ioutil.WriteFile(s.siteMetaFile(domain), data.Meta, 0600)
  	if err != nil {
  		return fmt.Errorf("writing cert meta file: %v", err)
  	}
  	return nil
  }
docs: // StoreSite implements Storage.StoreSite by writing it to disk. The base
  // directories needed for the file are automatically created as needed.