2010-03-24 12 views
5

Sigo diciendo que si quiero usar la autenticación en WCF, entonces necesito instalar un certificado en mi servidor que WCF usará para cifrar los datos que pasan entre mi servidor y el cliente.Certificado de desarrollador versus certificado comprado para WCF

Para fines de desarrollo, creo que puedo usar la utilidad makecert.exe. para hacer un certificado de desarrollo

¿Cuál es el peor que puede suceder si uso este certificado en el entorno de producción?

y ...

Por qué no puedo utilizar este certificado en el entorno de producción?

y ...

¿Qué es el certificado en realidad va a hacer en este escenario?

[Editar: Se ha añadido otra pregunta]

finalmente ...

En un escenario en el sitio web se ha instalado un certificado para proporcionar soporte HTTPS puede el mismo certificado se utiliza para los servicios WCF así?

Nota sobre mi aplicación: es un cliente y servicio de servidor NetTCP. Los usuarios iniciarán sesión con el mismo nombre de usuario y contraseña que utilizan para el sitio web que se transmite en texto claro. Me encantaría pasar el u/n + p/w en texto claro a WCF, pero esto no está permitido por el marco y un certificado debe estar en su lugar. Sin embargo, ¡no quiero comprar un certificado debido a restricciones presupuestarias!

(Disculpa la pregunta posiblemente estúpida pero realmente no entiendo esto, por lo que te agradecería algo de ayuda con esto).

Respuesta

9

Bueno, no pasará nada importante si utiliza un certificado de desarrollador en el entorno de producción, después de todo, un certificado es un certificado y el cifrado que proporciona es el mismo que el de cualquier certificado comercial.

Sin embargo, como el certificado no está firmado por una autoridad certificadora de confianza, no garantiza al cliente que es usted. Permítanme decirlo de otra manera: si su servicio fuera una página web simple, el navegador diría que el certificado no es válido.

Un certificado para proporcionar SSL en un servidor web, es un certificado que le dice al cliente que el dominio es un dominio confiable y verificado, y que la Autoridad Certificadora puede responder por él.

Por lo tanto, un certificado hecho por makecert.exe sería como escribir su nombre en un papel y decir, digamos un oficial de la ley, que esta es su licencia de conducir.

+0

¡Me gusta la analogía del permiso de conducir! Entonces, cuando solicito el certificado, la CA visitará mi sitio y de alguna manera probará que mi sitio es legítimo y luego emitirá el certificado. – Remotec

+1

@ en realidad no, no visitará su sitio, sin embargo, puede responder porque solo el administrador de un sitio web puede instalar el certificado. –

+0

Entendido. Pero, ¿qué es lo que me impide comprar un certificado para www.abc.com y luego instalarlo en www.xyz.com? Supongo que cuando el navegador visita el sitio, comprobará que el nombre del sitio al que se accede coincide con el nombre del certificado. – Remotec

3

"¿Qué es lo peor que puede pasar si utilizo este certificado en el entorno de producción? La seguridad fallará, lo que afectará a su servicio completo.

"¿Por qué no puedo usar este certificado en el entorno de producción?"
La autoridad de certificación especificada en el certificado generado no es conocida por los clientes, por lo tanto, el certificado no se puede validar/utilizar.

"¿Qué va a hacer realmente el certificado en este escenario?" La clave pública es utilizada por los clientes para encriptar la comunicación. Esto guarentee que sólo el propietario de la clave privada (el servidor en este caso) puede descifrar de nuevo (pares de claves privada-pública son el cifrado asimétrico)

Espero que esto ayude,

+0

Gracias Marvin, entonces solo hay una cantidad conocida de CA en el mundo y el certificado debe ser generado por uno de ellos? ¿Cómo sabrá mi servicio WCF que este es el caso? ¿El cliente que usa una aplicación de Windows Forms obtendrá un error o algo? (Estoy tratando de entender qué * pasará * en este escenario). – Remotec

+0

La cantidad de CA no es fija. Cualquiera puede convertirse en CA (de hecho, cuando utiliza makeCert.exe, usted es la CA de ese certificado). Entonces, ¿qué CA se conocen? Se instalan en su tienda de certificados como 'una CA'. Esto está preinstalado cuando instala 'Windows OS', por ejemplo. Los CA también son "encadenados", i.o.w. CA # 1 puede decir, confío en CA # 2 como si confiara en mí mismo. Esto permite la distribución de las CA en todo el mundo. Puede hacer un certificado que sea un certificado de CA. Tendrá que instalar ese certificado en todos los clientes como CA de confianza, luego también puede usar su certificado de desarrollo. –

4
  1. A las necesidades de certificados a ser emitido por una llamada Autoridad de Certificación para ser confiable. Los certificados autofirmados (creados por makecert, etc.) no son confiables, y todos los que accedan a su sitio recibirán un 'Certificado inválido' (más específico: 'El certificado no es de confianza porque está autofirmado'). Por lo tanto, peor caso, las personas no irán a su sitio porque no confían en él.

  2. Puede usar su certificado autofirmado en producción, pero no es aconsejable por las razones explicadas anteriormente.

  3. El certificado se utiliza para establecer una conexión segura (HTTPS) entre el cliente y el servidor. Junto a eso, está destinado a verificar la identidad del servidor. La identidad de su servidor no se puede garantizar si su certificado está autofirmado.

  4. En IIS, si instala un certificado en un sitio web, todos los servicios de WCF desplegados en ese sitio web pueden usar el certificado.

En resumen, utilizar un certificado autofirmado para el desarrollo (mirar en una herramienta llamada SSL Diagnostics para la generación de certificados fácil en IIS), pero en realidad no utilizar un certificado de producción para la producción!

+0

+1 para el consejo de Diagnóstico SSL – bob

Cuestiones relacionadas