Как создать сертификат из файла .pfx в среде Azure? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь инициализировать новый экземпляр класса x509Certificate2 в C # в функции Azure следующим образом:

X509Certificate2 cert = new X509Certificate2((certPath + @"/integration_certificate.pfx"), "pw", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet| X509KeyStorageFlags.Exportable);

Это прекрасно работает, когда я выполняю функцию локально, но когда она выполняется в AzureЯ получаю следующую ошибку:

Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: The specified network password is not correct
   at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags)
   at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
   at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags)

Я использовал OpenSSL на Kudu, чтобы проверить, что я использую правильный пароль, и это подтвердилось.Я могу прочитать информацию о сертификате, и все выглядит правильно.

Я также пытался загрузить сертификат в Azure (похоже, правильный способ сделать это), не включая его в исходный код, ноЯ не могу заставить это работать, так как закрытый ключ имеет длину всего 1024 бита, поэтому Azure его не принимает.Сертификат генерируется третьей стороной, поэтому я не думаю, что я могу создать сертификат по-другому.

У кого-нибудь есть какие-либо предложения?В настоящее время я использую стандарт .NET 2.0 в качестве целевой платформы.

1 Ответ

0 голосов
/ 08 апреля 2019

Я полагаю, что процесс должен иметь доступ.

Кроме того, существует несколько требований, которым он должен соответствовать при загрузке SSL-сертификата в Azure.

• Сертификат должен содержать закрытый ключ.

• Сертификат должен быть создан для обмена ключами и экспортирован в файл обмена личной информацией (.pfx).

• Имя субъекта сертификата должно соответствовать домену, используемому для доступа к веб-сайту. Если вам нужно обслуживать несколько доменов с этим сертификатом, вам нужно будет использовать подстановочное значение или указать значения subjectAltName.

• Сертификат должен использовать минимальное 2048-битное шифрование.

И я надеюсь, что при загрузке сертификата вы опробовали приведенные ниже варианты.

Приложите подробную информацию в ссылку ниже, чтобы вы могли попробовать, если вы не пробовали это ранее.

Связывание сертификатов

1-й вариант

2-й вариант

Надеюсь, это поможет.

...