Como criar um certificado autoassinado usando c #?

Eu preciso criar um certificado auto-assinado (para criptografia local - não é usado para proteger as comunicações), usando c #.

Eu vi algumas implementações que usamP / Invoke comCrypt32.dll, mas eles são complicados e é difícil atualizar os parâmetros - e eu também gostaria de evitar o P / Invoke se for possível.

Eu não preciso de algo que é cross-plataforma - rodando apenas no Windows é bom o suficiente para mim.

Idealmente, o resultado seria um objeto X509Certificate2 que eu possa usar para inserir no armazenamento de certificados do Windows ou exportar para um arquivo PFX.

questionAnswers(5)

yourAnswerToTheQuestion