Программное создание самозаверяющего сертификата с помощью CERTENROLLLib в Windows Server 2012 R2

Я создаю самозаверяющий сертификат для преобразования веб-сайта IIS с http на https. По сути, я использую предложенный код здесь. Он отлично работает с Windows Server 2019. Однако, когда тот же код развертывается в Windows Server 2012 R2, я получаю сообщение об ошибке вокруг кода:

CX509PrivateKey privateKey = new CX509PrivateKey();

Я получаю исключение, которое выглядит так: * При выполнении операции создания возникло исключение:

Unable to cast COM object of type 'CERTENROLLLib.CX509PrivateKeyClass' to interface type 'CERTENROLLLib.IX509PrivateKey2'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{728AB362-217D-11DA-B2A4-000E7BBB2B09}' failed due to the following error: No such interface supported (0x80004002 (E_NOINTERFACE)).
at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
at CERTENROLLLib.CX509PrivateKeyClass.set_ProviderName(String pValue)"*

Я попробовал решения, предложенные здесь, но у меня ничего не работает.

Я использую .Net Core 5.0 для создания веб-сайта. Фактически, использование "CERTENROLLLib" для создания самозаверяющего сертификата и развертывания его на IIS веб-сайте было единственным решением, которое сработало для меня. Однако, когда сайт создан в Windows Server 2012 R2, я получил эту ошибку.


person user1748546    schedule 28.04.2021    source источник