¿Falló la solicitud de Ajax debido a un certificado SSL no válido?

Estoy jugando con jQuery para fortalecer mis habilidades de front-end y me he encontrado con un error que espero haya sido causado por un problema de certificación SSL.

Fui a la URL en bruto de la API que estaba tratando de usar y me dio esta advertencia en Chrome:

The site's security certificate is not trusted! You attempted to reach theAPI, but the server presented a certificate issued by an entity that is not trusted by your computer's operating system. This may mean that the server has generated its own security credentials, which Chrome cannot rely on for identity information, or an attacker may be trying to intercept your communications. 

Aquí está el código básico configurado que estaba usando (extraído de aquí ):

  
$( document ).ready(function() { $.ajax({ url: "https:theAPI", cache: false, success: function(html){ $(".results").append(html); } }); });

¿Debería investigar más mi configuración o hay un problema válido del certificado SSL que me impediría?

Tienes dos problemas. Primero, el certificado autofirmado nunca funcionaría para una aplicación de acceso público, ya que necesitaría que cada usuario acepte ese certificado como de confianza (lo que, como han dicho otros, no es posible a través de AJAX).

En segundo lugar, incluso si supera el problema de SSL, es probable que tenga un problema de solicitud entre dominios. Es decir, AJAX no se puede usar para hacer llamadas entre dominios a menos que esté utilizando JSONP o el servidor de destino haya configurado correctamente la política de CORS (que supongo que no es el caso teniendo en cuenta el certificado autofirmado).

Su mejor apuesta puede ser exponer una API de backend en su servidor al que puede llamar a través de AJAX, con el backend para luego realizar la llamada entre dominios y exponer los datos en respuesta a la solicitud de AJAX. Incluso podría almacenar en caché los resultados de la llamada remota localmente si tiene sentido.

Este es un certificado autofirmado que está utilizando. No hay una autoridad superior para establecer la “confianza”. Siempre causará esta nota de error, excepto en los casos en que el navegador del cliente ya haya establecido el intercambio de claves privadas. Esto es cierto en las conexiones directas a través del navegador web, así como en las llamadas $.ajax() entre bastidores.

Los certificados autofirmados son útiles para pruebas o aplicaciones privadas, pero cuando se pongan en producción, necesitará un certificado firmado por una autoridad de certificación.

http://en.wikipedia.org/wiki/Self-signed_certificate

Tiene que agregar una excepción de certificado al navegador para que funcione.

Me gusta Abre esta dirección = 1390422014472 “> https://wcc-dev-api.dyndns.info/pubtimeslots/?categoryid=20&=1390422014472
en su navegador Chrome haga clic en “proceder de todos modos”. Agregará una excepción al navegador Chrome.

Y está haciendo una solicitud json al exterior del servidor, tiene que hacer JSONP para que funcione