С# программно установить/обновить сертификат TLS/SSL на размещенном сайтеC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 С# программно установить/обновить сертификат TLS/SSL на размещенном сайте

Сообщение Anonymous »

Я создаю приложение C# Winforms для обслуживания сертификатов TLS с помощью Let’s Encrypt. В настоящее время после выдачи сертификата обновление сертификата веб-сайта через панель управления размещенной средой выполняется вручную «Копировать и вставить». Я хотел бы автоматизировать этот шаг вручную.
Мои знания о размещенных средах ограничиваются управлением несколькими сайтами с помощью cPanel. Возможна ли автоматизация? Должен ли пользователь иметь «корневой доступ» в «общей» размещенной среде?
Если автоматизация возможна, то единственный код, который я нашел отдаленно похожим по назначению, предназначен для IIS и выполнения из в конкретной среде IIS (код можно найти здесь, на SO):

Код: Выделить всё

        public void RegisterCertificate(string webSiteName, string certificateFilePath, string certificatePassword)
{
// USE WMI TO DERIVE THE INSTANCE NAME
ManagementScope managementScope = new ManagementScope(@"\\.\root\MicrosoftIISv2");
managementScope.Connect();
ObjectQuery queryObject = new ObjectQuery("SELECT Name FROM IISWebServerSetting WHERE ServerComment = '" + webSiteName + "'");
ManagementObjectSearcher searchObject = new ManagementObjectSearcher(managementScope, queryObject);
ManagementObjectCollection instanceNameCollection = searchObject.Get();
ManagementObject instanceName = (from i in instanceNameCollection.Cast() select i).FirstOrDefault();

// USE IIS CERT OBJ TO IMPORT CERT - THIS IS A COM OBJECT
var IISCertObj = new CERTOBJLib.IISCertObjClass();
IISCertObj.InstanceName = instanceName["Name"].ToString();
IISCertObj.Import(certificateFilePath, certificatePassword, false, true); // OVERWRITE EXISTING
}
Можно ли адаптировать приведенный выше код под мои нужды (я предполагаю, что certificatePassword является закрытым ключом сертификата)? Моя интерпретация блока ManagementScope-ManagementObject, основанная на документации MSDN, заключается в том, что он получает местоположение сертификата сайта в хранилище сертификатов (поправьте меня, если я ошибаюсь). Блок CERTOBJLib.IISCertObjClass() необходимо заменить чем-то, что обновляет сертификат в магазине, но я не знаю, с чего начать это искать.
Если это невозможно быть адаптированы, существует ли какой-либо другой механизм, обычно используемый для автоматизации установки/обновления сертификата на «общем» размещенном веб-сайте?

Подробнее здесь: https://stackoverflow.com/questions/791 ... osted-site
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»