X.509 デジタル証明書についてもっと理解しようとしています。周りには多くの矛盾があるようです。を使用Bouncy Castle
して、キーペアを生成するために使用しています
public static void SaveToFile(X509Certificate newCert, AsymmetricCipherKeyPair kp, string filePath, string certAlias, string password)
{
var newStore = new Pkcs12Store();
var certEntry = new X509CertificateEntry(newCert);
newStore.SetCertificateEntry(certAlias, certEntry);
newStore.SetKeyEntry(certAlias,
new AsymmetricKeyEntry(kp.Private), new[] { certEntry });
using (var certFile = File.Create(filePath))
newStore.Save(certFile, password.ToCharArray(), new SecureRandom(new CryptoApiRandomGenerator()));
}
これにより、生成された証明書がディスクに保存されます。PRIVATE KEY
一部の記事では、証明書が保存されていないため、証明書をパスワードで保護する必要はないと述べています。次に、この記事では、証明書に実際にPRIVATE KEY
.
これを理解するのに役立つと思われる2つの質問があると思います。
- この方法でキーを生成する場合、パスワードは のパスフレーズと同じにする必要があります
PRIVATE KEY
か? - が私のものであることを証明するために X.509 証明書を配布しますか
PUBLIC KEY
(証明書で私の名前とペアになっています)、それとも証明書を と同じように安全かつ秘密に保つ必要がありPRIVATE KEY
ますか? また、自己署名証明書はどのような用途に使用されますか?