You are on page 1of 9

Para iniciar servicio WCF:

Crear el certificado: Notas: En App.config:


<FBSettingsCertificadoServidor Emisor="localhost"/>

En FBSWebServices:
serviceHost.Credentials.ServiceCertificate.SetCertificate( StoreLocation.LocalMachine, StoreName.Root, X509FindType.FindBySubjectName, FBSettingsCertificadoServidor.LeeConfiguracion().Emisor); http://msdn.microsoft.com/es-es/library/ms731899.aspx

http://msdn.microsoft.com/es-es/library/ms733813.aspx http://msdn.microsoft.com/es-es/library/ms788967.aspx

http://msdn.microsoft.com/es-co/library/ff647171.aspx

Crear e Instalar Temporary Certificates en WCF para Message Security Durante el Desarrollo
1. Crear un certificado para actuar como su Autoridad de Certificacin Raz En este paso, se utiliza la herramienta makecert para crear una CA raz que se utiliza para firmar el certificado. Este certificado ser autofirmado y slo tendr la clave pblica que se utiliza para hacer la validacin de cadena de confianza en el cifrado y firma de mensajes. El certificado autofirmado actuar como un certificado raz en s, en lugar de apuntar a una autoridad raz de una cadena de confianza. 1. Acceder desde cmd a la herramenta makecert que se encuentra en C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin. 2. Ejecutar el comando siguiente para crear la raz CA:

makecert -n "CN=RootCATest" -r -sv RootCATest.pvk RootCATest.cer

En este comando:

-n

Especifica el nombre de certificado del sujeto. Este nombre debe cumplir la norma X.500. El mtodo ms sencillo consiste en especificar el nombre entre comillas, precedido de CN=; por ejemplo, "CN=miNombre". -r Especifica que el certificado ser autofirmado. Esto significa que los certificados creados con este interruptor actuarn como un certificado raz. -sv Especifica el archivo de clave privada .pvk del sujeto. Si no existe archivo, se crear uno. RootCATest.cer Especifica el nombre del archivo que contiene la clave pblica del certificado. El archivo RootCATes.cer no tendr la clave privada. Es el certificado que ser instalado en el almacn para la validacin de la cadena de confianza en los equipos cliente y servidor. 3. En el cuadro de dialogo Create Private Key Password ingresar y confirmer el password y OK. Opcionalmente, puede hacer clic en ninguno sin introducir la contrasea, pero esto no se recomienda por razones de seguridad. 4. En el cuadro de dialogo Enter Private Key Password, ingrese el password y luego OK. Esta es la contrasea necesaria para acceder al archivo de clave privado RootCATest.pvk para generar el archivo RootCATest.cer que contiene la clave pblica. Esta es la contrasea necesaria para acceder al archivo de clave privado RootCATest.pvk para generar el archivo RootCATest.cer que contiene la clave pblica.

2. Crear un archivo de Lista de revocacin de certificados En este paso, se crea un archivo CRL que se importarn en los almacenes de certificados correctos de las mquinas cliente y servicio. Crear una CRL del certificado raz temporal. La CRL es necesaria porque los clientes WCF buscan la CRL al validar certificados. 1. Ejecutar el siguiente comando para crear el archivo CR:

makecert -crl -n "CN=RootCATest" -r -sv RootCATest.pvk RootCATest.crl

En este comando:

-crl Especifica que desea generar el archivo CRL del certificado raz. -n Especifica el nombre de certificado del sujeto. Este nombre debe cumplir la norma X.500. El mtodo ms sencillo consiste en especificar el nombre entre comillas, precedido de CN=; por ejemplo, "CN=miNombre". -r Especifica que el certificado ser autofirmado. Esto significa que los certificados creados con este interruptor actuarn como un certificado raz. -sv Especifica el archivo que contendr la clave privada para la generacin de archivo CRL. No hay necesidad para crear este archivo porque ya existe. Esto permitir la creacin de archivos CRL utilizando el archivo de clave privada por firmar. RootCaTest.crl se crea el archivo CRL con el comando.

3. Instalar el certificado de entidad emisora raz en el servidor y equipos cliente En este paso, se instala el certificado en la ubicacin de entidades de certificacin raz de confianza en el servidor y los equipos cliente. Todos los certificados que estn firmados con este certificado se confiar la mquina cliente. Nota: Importante: Asegrese de eliminar este certificado de la tienda despus de que haya terminado de desarrollar y probar para su aplicacin Repita los pasos siguientes en las mquinas de servidor y cliente:

Inicio Ejecutar mmc

Busque la ubicacin del archivo raz RootCATest.cer de autoridad de certificado firmado copiado en el paso 1, seleccione el archivo y, a continuacin, haga clic en abrir.

En el archivo de la pantalla de importacin, haga clic en siguiente. En la pantalla del almacn de certificados, acepte la opcin predeterminada y, a continuacin, haga clic en siguiente. En la finalizacin del Asistente para importacin de certificados de la pantalla, haga clic en Finalizar. El certificado de raz CA firmado se instala en las entidades de certificacin raz de confianza. Se puede expandir la subcarpeta de certificados en autoridades de certificacin de raz de confianza para ver el certificado de RootCATest instalado correctamente.

4. Instalar el Archivo de Lista de Revocacin de Certificados en el servidor y maquinas clientes. De igual forma como en el anterior paso importar el archivo RootCATest.crl.
La CRL del certificado de entidad emisora raz se instala en las entidades de certificacin raz de confianza. Para ver la CRL, haga clic en la carpeta de entidades de certificacin raz de confianza y luego presione la tecla F5. Se mostrar una subcarpeta denominada lista de revocacin de certificados. Ampliar esta carpeta y ver que la CRL RootCATest instalado correctamente.

5. Crear e instalar Certificado de Servicio Temporal En este paso, creacin e instalacin del certificado temporal en el servidor de la raz CA firmada creado en el paso anterior. 1. Ejecute el siguiente comando para crear un certificado firmado por el certificado de entidad emisora raz:

makecert -sk MyKeyName -iv RootCATest.pvk -n "CN=tempCert" -ic RootCATest.cer -sr localmachine -ss Root -sky exchange -pe

En este comando:

-sk Especifica el nombre del contenedor de claves del certificado. Esto debe ser nico para cada certificado que se crea. -iv Especifica el archivo de clave privada desde la que se crear el certificado temporal. Debe especificar el nombre de archivo de clave privada del certificado raz que se cre en el paso anterior y asegurarse de que est disponible en el directorio actual. Se utilizar para firmar el certificado y para generacin de claves. -n Especifica el nombre de certificado del sujeto. Este nombre debe cumplir la norma X.500. El mtodo ms sencillo consiste en especificar el nombre entre comillas, precedido de CN=; por ejemplo, "CN=miNombre". -ic Especifica el archivo que contiene la raz CA archivo del certificado generado en el paso anterior.

-sr Especifica la ubicacin del almacen donde se instalar el certificado. La ubicacin predeterminada es Currentuser, pero desde el certificado debe estar disponible para todos los usuarios, se debe usar la opcin de localmachine. -ss Especifica el nombre del almacn para el certificado. My es la ubicacin del almacn personal del certificado. -sky Especifica el tipo de clave, que podra ser firma o exchange. Usando exchange hace el certificado capaz de firmar y cifrar el mensaje. -pe Especifica que la clave privada es generada en el certificado e instalada con l en el almacn de certificados. Cuando hace doble clic en el certificado, en la ficha General, ver un mensaje en la parte inferior que indica, You have a private key that corresponds to this certificate. Este es un requisito para la seguridad de los mensajes. Si el certificado no tiene la clave privada correspondiente, no puede utilizarse para la seguridad de los mensajes.

2. En el cuadro de dilogo Introducir contrasea de clave privada, introduzca la contrasea del raz CA del archivo de clave privada especificado en el paso 2 y haga clic en Aceptar.

6. Dar el Proceso de Acceso Identidad WCF a la clave privada del certificado Temporal En este paso, usted da la identidad de proceso de los permisos de acceso del servicio WCF a la clave privada del certificado. Si su servicio est alojado en los servicios de Internet Information Server (IIS), la identidad es tpicamente "NT AUTHORITY\NETWORK SERVICE"; (Para usuarios de w7 espaol usar "NT AUTHORITY\SERVICIO DE RED";)en un escenario de produccin, o si su servicio est alojado en un servicio de Windows, podra ser una cuenta de servicio de dominio personalizado. 1. Ejecutar el siguiente comando:

FindPrivateKey.exe Root LocalMachine -n "CN=tempCert"

En este comando:

My es el nombre de la tienda donde ha instalado su certificado temporal. LocalMachine es el nombre de la tienda donde ha instalado su certificado temporal.n "CN=tempCert" es el nombre comn para el certificado temporal.

Nota:

Para utilizar la herramienta FindPrivateKey http://msdn.microsoft.com/es-co/library/aa717039.aspx Descargar WCF Samples de (Samples Frameworck 3.5): http://www.microsoft.com/enus/download/details.aspx?id=11413 Compilar el proyecto WCF Samples\WCF\Setup\CS\FindPrivateKey\FindPrivateKey.sln Trabajar con FindPrivateKey.exe generado en la carpeta ...\bin

2. FindPrivateKey retorna la ubicacion de la clave pribada para el certificado, similar a:

Private key directory: C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys Private key file name: 261e60b18f66f34ad8c1509eced064e0_e6f0fecc-666e-4c6e-886a-e55f40c2865d

3. Ejecute el siguiente comando para asignar permisos de acceso a la identidad del proceso del servicio WCF (Debe dar permisos de slo lectura a la clave privada):

cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308d2ad-4e58-91a8-6e87f354b030" /E /G "NT AUTHORITY\SERVICIO DE RED":R Nota: Usar "NT AUTHORITY\SERVICIO DE RED" para Windows espaol Nota: cacls.exe se encuentra en la carpeta system32 En este comando: 1. /E edita la lista de control de acceso (ACL) de la clave privada en cambio o sustitucin. Usted nunca debe reemplazar la ACL pero slo debe agregar el permiso necesario para la identidad de proceso. 2. /G concede el permiso a la identidad de proceso. 3. :R da permisos de slo lectura a "NT AUTHORITY\NETWORK SERVICE ". Debera ver lo siguiente en la salida de este comando:

NT AUTHORITY\NETWORK SERVICE:R

Utilizar la herramienta FindPrivateKey http://msdn.microsoft.com/es-co/library/aa717039.aspx Descargar WCF Samples de (Samples Frameworck 3.5): http://www.microsoft.com/enus/download/details.aspx?id=11413 Compilar el proyecto WCF Samples\WCF\Setup\CS\FindPrivateKey\FindPrivateKey.sln Trabajar con FindPrivateKey.exe generado en la carpeta ...\bin

You might also like