Я пытаюсь понять больше о цифровых сертификатах X.509. Кажется, что существует много противоречий. Я использую Bouncy Castle
для создания пары ключей, используяX.509 Самостоятельные сертификаты
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
. Затем this article говорит, что сертификат действительно содержит PRIVATE KEY
.
Я думаю, у меня есть два вопроса, которые, мы надеемся, поможет мне понять это:
- Если я генерировать ключи в этом случае, если пароль такой же, как ключевой фразы для
PRIVATE KEY
? - Предоставить сертификат X.509, чтобы доказать, что
PUBLIC KEY
принадлежит мне (сопряженному с моим именем в сертификате) или должен хранить сертификат как безопасный и секретный, какPRIVATE KEY
, и какое использование является самозаверяющим сертификатом?
Спасибо! Просто уточните, могу ли я это сделать? Вы сказали: «Это считается« публичным ». Поэтому я могу распространять файл .p12 (через защищенный канал), и если я предоставляю пароль, люди могут (1) использовать это, чтобы подтвердить мое имя/адрес электронной почты (2) шифровать информацию, предназначенную исключительно для меня, и (3) не может нарушить/получить доступ к «закрытому ключу» в результате его распространения? – JDubya13
Нет. Только СЕРТИФИКАТ считается общедоступным. Вы не должны распространять .p12-файл кому-либо, так как он содержит ваш закрытый ключ. Сохраните ЧАСТЫЙ ключ PRIVATE и сделайте PUBLIC (или сертификат) PUBLIC. Вы НИКОГДА не хотите распространять закрытый ключ или файл PKCS # 12 (.p12). Только сертификат. – Shadowman
PKI - это тяжелое поле. Я собираюсь рискнуть глупо, я понял, что файл .p12 был моим сертификатом? Нужно ли мне «извлекать» сертификат из этого файла для распространения для проверки? – JDubya13