В зависимости от вашей ситуации вам, вероятно, потребуется сначала установить сертификат на сервере, чтобы повысить уровень доверия, прежде чем экспортировать файл .cer
.
Я должен был сделать это для аналогичного проекта, и здесь были мои заметки о том, как он был выполнен.
Замените Foo.cer
на экспорт сертификата, установленного на сервере. (Установите сертификат из файла pfx
, а затем экспортируйте его в файл cer
.)
Команда для IIS6, чтобы разрешить группе IIS_WPG доступ к ключу сертификата. Необходимо установить winhttpcertcfg
(Вы можете перейти по ссылке ниже, чтобы получить свою собственную копию).
C: \ Program Files \ Windows Resource Kits \ Tools> winhttpcertcfg -i (путь к файлу pfx, например, e: \ Certs \ Foo.pfx) -c LOCAL_MACHINE \ My -a IIS_WPG -p (пароль для файла pfx )
Выплевывает ключевую информацию и предоставляет привилегию
Предоставление доступа к личному ключу для учетной записи:
(SERVERNAME)\IIS_WPG
Скачать WinHttpCertCfg.msi
здесь , который устанавливает exe.
Более подробную информацию о том, как использовать конфигурацию сертификата, можно найти здесь .
Тогда все возвращается к тому, как вы выполняете аттестацию.
//Cert Challenge URL
Uri requestURI = new Uri("https://someurl");
//Create the Request Object
HttpWebRequest pageRequest = (HttpWebRequest)WebRequest.Create(requestURI);
//After installing the cert on the server export a client cert to the working directory as Foo.cer
string certFile = MapPath("Foo.cer");
X509Certificate cert = X509Certificate.CreateFromCertFile(certFile);
//Set the Request Object parameters
pageRequest.ContentType = "application/x-www-form-urlencoded";
pageRequest.Method = "POST";
pageRequest.AllowWriteStreamBuffering = false;
pageRequest.AllowAutoRedirect = false;
pageRequest.ClientCertificates.Add(cert);
Так я прошел сертификацию, но точно не знал, что вам нужно делать со своим сертификатом, поэтому для вас это может быть не так.