code: def fetch_certs(certificate_list, user_agent=None, timeout=10):
      
  
      output = []
  
      if user_agent is None:
          user_agent = 'certvalidator %s' % __version__
      elif not isinstance(user_agent, str_cls):
          raise TypeError('user_agent must be a unicode string, not %s' % type_name(user_agent))
  
      for url in certificate_list.issuer_cert_urls:
          request = Request(url)
          request.add_header('Accept', 'application/pkix-cert,application/pkcs7-mime')
          request.add_header('User-Agent', user_agent)
          response = urlopen(request, None, timeout)
  
          content_type = response.headers['Content-Type'].strip()
          response_data = response.read()
  
          if content_type == 'application/pkix-cert':
              output.append(x509.Certificate.load(response_data))
  
          elif content_type == 'application/pkcs7-mime':
              signed_data = cms.SignedData.load(response_data)
              if isinstance(signed_data['certificates'], cms.CertificateSet):
                  for cert_choice in signed_data['certificates']:
                      if cert_choice.name == 'certificate':
                          output.append(cert_choice.chosen)
          else:
              raise ValueError('Unknown content type of %s when fetching issuer certificate for CRL' % repr(content_type))
  
      return output
docs: Fetches certificates from the authority information access extension of
      an asn1crypto.crl.CertificateList object and places them into the
      cert registry.
  
      :param certificate_list:
          An asn1crypto.crl.CertificateList object
  
      :param user_agent:
          The HTTP user agent to use when requesting the CRL. If None,
          a default is used in the format "certvalidation 1.0.0".
  
      :param timeout:
          The number of seconds after which an HTTP request should timeout
  
      :raises:
          urllib.error.URLError/urllib2.URLError - when a URL/HTTP error occurs
          socket.error - when a socket error occurs
  
      :return:
          A list of any asn1crypto.x509.Certificate objects that were fetched