証明書署名要求 (CSR) を作成しました。認証局 (CA) に送信して、署名して .PFX 証明書を返してもらう必要があります。makecert.exe または openssl.exe を使用したくありません。また、証明書は自己署名されるべきではなく、C#でプログラムでこれを行う必要があります。
また、CA が PFX を作成するのか、それとも PFX に署名するだけなのかはわかりません。簡単に言えば、自己署名ではなく、C#.Net を使用して CA によって署名されたこの CSR から .PFX 証明書を生成する必要があると言えます。
このリンクから CSR 作成コードを取得しました。