javascript - precio - go daddy certificado ssl
AJAX, Subdominios y SSL (5)
Con plain-http AJAX: está hablando de hacer un dominio cruzado de XMLHttpRequest, que no está permitido por los navegadores. Hay una propuesta del W3C pendiente para implementar esto de manera segura en el futuro (implementada parcialmente por IE8, IIRC), pero definitivamente no es posible en este momento.
Sin embargo, hay soluciones para hacerlo de forma segura: Subespacio (que usa iframes y document.domain
), la técnica del identificador de fragmentos (de nuevo, usa iframes) y la técnica de window.name
(otra vez, iframes!).
En lo que respecta a SSL, puede comprar certificados por separado para el dominio y el subdominio, o un certificado de comodín único (* .foo.com) que los cubra a ambos (naturalmente, el certificado de comodín será más costoso).
Si tiene una página HTTPS que solicita elementos de otros dominios, todo estará bien siempre que todo sea HTTPS. Esto significa que si utiliza una de las soluciones provisionales de iframes, debe especificar un URL de esquema https://
en el atributo src
del iframe.
Una solución final, menos eficiente, es tener una secuencia de comandos en https://foo.com
que proxies solicitudes para inseguridad http://bar.foo.com
. (Esto también resuelve el problema del dominio cruzado XHR, por lo que puede ignorar las otras soluciones). Por supuesto, eso significa que está enviando la solicitud XHR a https://foo.com/someurl
, y luego está tocando http://bar.foo.com/someurl
, recibiendo la respuesta y enviándola de nuevo al navegador, por lo que, en lo que respecta al rendimiento, es mucho mejor que solo traslade la funcionalidad del servidor de bar.foo.com a foo.com, si tiene esa opción. Pero si no puede mover el script del servidor, entonces el proxy es el camino a seguir.
EDITAR: Cambié los últimos 3 grafs después de hacer algunas pruebas adicionales y obtener una solución alternativa de AJAX de iframe (el identificador de #fragmento) para trabajar en diferentes dominios HTTPS. Puede hacer SSL AJAX de dominios cruzados utilizando iframes siempre que todo sea https
y el esquema https
se use en ifrme src
. Resumiendo:
- Respuesta corta: no, verdadero XHR entre dominios no permitido
- Solución con iframes: más eficiente, necesita 2 certificados SSL (o certificado wildcard), algo complicado
- Solución alternativa con proxy: menos eficiente, puede hacer con 1 o 2 certificados SSL (1 con solicitud de back-end a bar.foo.com a través de http), algo complicado
Tengo un sitio, foo.com, que hace las solicitudes de ajax a bar.foo.com. Esto funcionara.
Además, si foo es una conexión segura, https, ¿necesita bar.foo.com ser https también? ¿Pueden estos dos sitios usar diferentes certificados?
La mayoría de los navegadores, dependiendo de su configuración de seguridad / privacidad, bloquean cualquier llamada externa realizada y solo permiten realizar llamadas AJAX al mismo dominio. Incluso los subdominios están bloqueados, porque en entornos compartidos podrían representar una amenaza real.
En resumen: solo realice llamadas AJAX a través del mismo dominio (tal vez llame a una página, que a su vez llame a otra página desde otro dominio - a través de curl / fopen / ...), o se encontrará con problemas. Eso también responde a su pregunta de SSL: no importa qué SSL esté usando o si son iguales: las llamadas se bloquearán, a pesar del SSL.
Puede combinar JavaScript TLS y Flash para realizar solicitudes seguras entre dominios. De esta forma, los visitantes pueden ingresar a https://foo.com y hacer XmlHttpRequests a https://bar.foo.com . Puedes hacer lo mismo con un http regular.
Necesitará comprar un certificado SSL en el que los navegadores de visitantes confiarán para foo.com, pero puede generar sus propios certificados SSL para bar.foo.com, bar2.foo.com, etc. Una alternativa más costosa que generar su propio navegador. Los certificados SSL (que es gratis) son para comprar un certificado SSL comodín para * .foo.com. Pero si solo hace solicitudes de dominios cruzados a esos sitios a través de foo.com, entonces no necesita gastar ese dinero extra.
Mira el proyecto Forge de opensource en github:
http://github.com/digitalbazaar/forge/blob/master/README
Los enlaces de blog al final proporcionan una explicación más detallada.
Sí, ciertamente puede hacer envíos de dominio cruzado ajax. Hicimos la misma configuración utilizando un certificado de comodín de ssl.com pero puede usar 2 certs estándar en 2 sitios.
Básicamente usarías JSONP (yahoo, google, fb, etc. usa esto). El valor de retorno está envuelto en una función y se ve como
someFunction("{...}");
Sí, puede obtener diferentes certs para ambos dominios. Todo depende de cómo decidas configurarlo.
Puede configurar un servidor web para foo.com y puede abrir el puerto 80 para no seguro y el puerto 443 para seguridad y usar ambos.
Puede configurar un servidor web diferente para bar.foo.com y hacer las mismas configuraciones de puerto.
Si necesita asegurarse de que está seguro en ambos, entonces necesita obtener certs para cada dominio diferente.
Es posible que pueda comprar un certificado * .foo.com que le permita copiar el certificado a otro sitio y usarlo.
Independientemente de si su solicitud tiene enlaces a http://bar.foo.com , no tendrá una conexión segura.
Tienes que tener los http "s" allí para decirle al servidor web que use el puerto 443 e intente validar el certificado.
Todos los certs realmente dicen que la fuente es de confianza. Incluso si no es de confianza y usted utiliza http "s" y hay un bloqueo en el navegador, sus datos se cifran de todos modos.