CA、publicおよびがあることに関して、私は証明書についてほとんど何も知りませprivate keyん。を使用してSSOログインを作成していますが、要素SAML 2を追加することを除いて作業してい<Signature>ます。
証明書の作成:
makecert.exeディレクトリにandのコピーがありpvk2pfx.exeます。開いcmdて次のように入力します。
makecert -r -pe -n "CN=Test Cert" -sky exchange -sv testcert.pvk testcert.cer
ダイアログ ボックスが表示され、パスワードとパスワードの確認を求められます。これを入力します。別のダイアログ ボックスがポップアップ表示され、パスワードを要求されます (これは、以前に入力したものと同じだと思います)。これによりtestcert.cer、同じディレクトリに が作成されます。
次に、これを入力しますcmd
pvk2pfx -pvk testcert.pvk -spc testcert.cer -pfx testcert.pfx
編集:パスワードを要求されます。private keyを作成したときと同じパスワード ( ) を入力しますcer。
pfxディレクトリにファイルを作成します。
ここで私は混乱しています。cerファイルをにインポートするとMMC、アクセスできます。
X509Certificate2 cert = null;
var store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var storeCollection = store.Certificates.Find(X509FindType.FindBySubjectName, "Test Cert", false);
if (storeCollection.Count == 1)
{
cert = storeCollection[0];
}
if (cert == null)
{
throw new ArgumentNullException("Certificate", "No certificate found.");
}
store.Close();
ただし、これを行うと、秘密鍵 (プロパティ) はnull. 秘密鍵がpfxファイルにあると読みました。したがって、ストアにアクセスする代わりに、次のようにします。
privateKeyを使用して証明書を作成するときに使用した秘密鍵ですmakecert.exe
X509SigningCredentials clientSigningCredentials = new X509SigningCredentials(
X509Certificate2(@"c:\directory\testcert.pfx", privateKey, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable));
エラーが表示されます:The specified network password is not correct.
また、ファイルの代わりに にpfxファイルをインポートしようとしました。パスワードを要求されます。を使用して証明書を作成するために使用したパスワードを入れました。パスワードが間違っていることを常に教えてくれます。MMCcermakecert.exe
私は何を間違っていますか?