Non esiste un comando ben noto noto come "mkcert" (apparentemente c'è uno sotto quel nome in alcuni Sistemi IBM ). Dato che stai parlando di IIS, suppongo che intendi MakeCert .
I certificati seguono uno standard chiamato "X.509" (*). Ci sono diversi strumenti là fuori che possono creare certificati. La virtù principale di un certificato deve essere firmata da una Autorità di certificazione perché è quello che fanno i certificati: trasferiscono fiducia nelle associazioni dei nomi chiave da una "CA radice" alle entità finali (ad es. Server SSL ). Un certificato autofirmato non trasferisce molto; quando si utilizza un certificato autofirmato, si sta effettivamente tentando di inserire alcune chiavi pubbliche nel formato esterno di un certificato, in modo tale che i protocolli che richiedono un certificato non presentino crisi di apoplessia quando lo vedono.
Per il tuo servizio WCF, avrai bisogno del server per possedere un certificato (e la corrispondente chiave privata), e il cliente dovrà fidarsi di quel certificato. Lo strumento che crea quel certificato non ha importanza finché si può chiedere a IIS di usare quel certificato-e-chiave, e si può configurare il client in modo che si consideri attendibile il certificato. Dal momento che IIS è in grado di creare la coppia di chiavi e il certificato in pochi clic, e in ogni caso è necessario che IIS sia installato, utilizzare le abilità intrinseche di IIS alla creazione del certificato è probabilmente il metodo più semplice. Useresti MakeCert.exe se davvero preferisci, per ragioni estetiche, usare uno strumento da riga di comando; e useresti OpenSSL anche se sei allergico agli strumenti di Microsoft (ma allora, perché dovresti usare IIS e WCF?).
Il punto veramente importante è che hai bisogno di un certificato perché il tuo servizio utilizzerà SSL o qualche altro meccanismo di protezione, e lo fai perché temi gli attacchi maligni . L'utilizzo dei certificati ti aiuterà solo se ti assicuri che il client si fidi solo del certificato che hai generato e installato sul server, quindi questo significa che devi occuparti di dove generi e archivi il privato chiave e, preferibilmente, capisci cosa stai facendo.