Обновлено 24.11.2016
Добрый день уважаемые читатели блога Pyatilistnik.org, меня уже на протяжении этого месяца, несколько раз спрашивали в электронной почте, где хранятся сертификаты в windows системах, ниже я подробнейшим образом вам расскажу про этот вопрос, рассмотрим структуру хранилища, как находить сертификаты и где вы это можете использовать на практике, особенно это интересно будет для тех людей, кто часто пользуется ЭЦП (электронно цифровой подписью)
Для чего знать где хранятся сертификаты в windows
Давайте я вам приведу основные причины, по которым вы захотите обладать этим знанием:
- Вам необходимо посмотреть или установить корневой сертификат
- Вам необходимо посмотреть или установить личный сертификат
- Любознательность
Ранее я вам рассказывал какие бывают сертификаты и где вы их можете получить и применять, советую ознакомиться с данной статьей, так как информация изложенная в ней является фундаментальной в этой теме.
Во всех операционных системах начиная с Windows Vista и вплоть до Windows 10 Redstone 2 сертификаты хранятся в одном месте, неком таком контейнере, который разбит на две части, один для пользователя, а второй для компьютера.
В большинстве случаев в Windows поменять те или иные настройки вы можете через mmc оснастки, и хранилище сертификатов не исключение. И так нажимаем комбинацию клавиш WIN+R и в открывшемся окне выполнить, пишем mmc.
Вы конечно можете ввести команду certmgr.msc, но таким образом вы сможете открыть только личные сертификаты
Теперь в пустой mmc оснастке, вы нажимаете меню Файл и выбираете Добавить или удалить оснастку (сочетание клавиш CTRL+M)
В окне Добавление и удаление оснасток, в поле Доступные оснастки ищем Сертификаты и жмем кнопку Добавить.
Тут в диспетчере сертификатов, вы можете добавить оснастки для:
- моей учетной записи пользователя
- учетной записи службы
- учетной записи компьютера
Я обычно добавляю для учетной записи пользователя
и компьютера
У компьютера есть еще дополнительные настройки, это либо локальный компьютер либо удаленный (в сети), выбираем текущий и жмем готово.
В итоге у меня получилось вот такая картина.
Сразу сохраним созданную оснастку, чтобы в следующий раз не делать эти шаги. Идем в меню Файл > Сохранить как.
Задаем место сохранения и все.
Как вы видите консоль хранилище сертификатов, я в своем примере вам показываю на Windows 10 Redstone, уверяю вас интерфейс окна везде одинаковый. Как я ранее писал тут две области Сертификаты — текущий пользователь и Сертификаты (локальный компьютер)
Сертификаты — текущий пользователь
Данная область содержит вот такие папки:
- Личное > сюда попадают личные сертификаты (открытые или закрытые ключи), которые вы устанавливаете с различных рутокенов или etoken
- Доверительные корневые центры сертификации > это сертификаты центров сертификации, доверяя им вы автоматически доверяете всем выпущенным ими сертификатам, нужны для автоматической проверки большинства сертификатов в мире. Данный список используется при цепочках построения доверительных отношений между CA, обновляется он в месте с обновлениями Windows.
- Доверительные отношения в предприятии
- Промежуточные центры сертификации
- Объект пользователя Active Directory
- Доверительные издатели
- Сертификаты, к которым нет доверия
- Сторонние корневые центры сертификации
- Доверенные лица
- Поставщики сертификатов проверки подлинности клиентов
- Local NonRemovable Certificates
- Доверительные корневые сертификаты смарт-карты
В папке личное, по умолчанию сертификатов нет, если вы только их не установили. Установка может быть как с токена или путем запроса или импорта сертификата.
В мастере импортирования вы жмете далее.
далее у вас должен быть сертификат в формате:
- PKCS # 12 (.PFX, .P12)
- Стандарт Cryprograhic Message Syntax — сертификаты PKCS #7 (.p7b)
- Хранилище сериализованных сертификатов (.SST)
На вкладке доверенные центры сертификации, вы увидите внушительный список корневых сертификатов крупнейших издателей, благодаря им ваш браузер доверяет большинству сертификатов на сайтах, так как если вы доверяете корневому, значит и всем кому она выдал.
Двойным щелчком вы можете посмотреть состав сертификата.
Из действий вы их можете только экспортировать, чтобы потом переустановить на другом компьютере.
Экспорт идет в самые распространенные форматы.
Еще интересным будет список сертификатов, которые уже отозвали или они просочились.
Список пунктов у сертификатов для компьютера, слегка отличается и имеет вот такие дополнительные пункты:
- AAD Token Issue
- Windows Live ID Token
- Доверенные устройства
- Homegroup Machine Certificates
Думаю у вас теперь не встанет вопрос, где хранятся сертификаты в windows и вы легко сможете найти и корневые сертификаты и открытые ключи.
Данный материал является переводом оригинальной статьи «ATA Learning : Michael Soule : Manage Certs with Windows Certificate Manager and PowerShell».
Работа с сертификатами обычно является одной из тех дополнительных задач, которые вынужден брать на себя системный администратор Windows. Диспетчер Сертификатов Windows (Windows Certificate Manager) — это один из основных инструментов, который позволяет выполнять эту работу.
В этой статье мы рассмотрим работу с сертификатами применительно к операционной системе Windows. Если же вы хотите узнать больше о том, как работают сертификаты в целом, ознакомьтесь с сопутствующей статьей «Your Guide to X509 Certificates».
Понимание хранилищ сертификатов
В диспетчере сертификатов Windows все сертификаты находятся в логических хранилищах, называемых «хранилищами сертификатов». Хранилища сертификатов – это «корзины», в которых Windows хранит все сертификаты, которые в настоящее время установлены, и сертификат может находиться более чем в одном хранилище.
К сожалению, хранилища сертификатов — не самая интуитивно понятная концепция для работы. О том, как различать эти хранилища и как с ними работать, вы прочитаете ниже.
Каждое хранилище находится в Реестре Windows и в файловой системе. При работе с сертификатом в хранилище вы взаимодействуете с логическим хранилищем, не изменяя напрямую реестр или файловую систему. Этот более простой способ позволяет вам работать с одним объектом, в то время как Windows заботится о том, как представить этот объект на диске.
Иногда можно встретить хранилища сертификатов, называемые физическими или логическими хранилищами. Физические хранилища ссылаются на фактическую файловую систему или место в реестре, где хранятся разделы реестра и / или файл(ы). Логические хранилища — это динамические ссылки, которые ссылаются на одно или несколько физических хранилищ. С логическими хранилищами намного проще работать, чем с физическими хранилищами для наиболее распространенных случаев использования.
Windows хранит сертификаты в двух разных областях — в контексте пользователя и компьютера. Сертификат помещается в один из этих двух контекстов в зависимости от того, должен ли сертификат использоваться одним пользователем, несколькими пользователями или самим компьютером. В остальной части этой статьи сертификат в контексте пользователя и компьютера будет неофициально называться сертификатами пользователей и сертификатами компьютеров.
Сертификаты пользователей
Если вы хотите, чтобы сертификат использовался одним пользователем, то идеальным вариантом будет хранилище пользовательских сертификатов внутри Диспетчера сертификатов Windows. Это общий вариант использования процессов аутентификации на основе сертификатов, таких как проводной IEEE 802.1x.
Сертификаты пользователей находятся в профиле текущего пользователя и логически отображаются только в контексте этого пользователя. Сертификаты пользователей «сопоставлены» и уникальны для каждого пользователя даже в одних и тех же системах.
Компьютерные сертификаты
Если сертификат будет использоваться всеми пользователями компьютера или каким-либо системным процессом, его следует поместить в хранилище в контексте компьютера. Например, если сертификат будет использоваться на веб-сервере для шифрования связи для всех клиентов, размещение сертификата в контексте компьютера будет подходящим вариантом.
Вы увидите, что хранилище сертификатов компьютера логически сопоставлено для всех пользовательских контекстов. Это позволяет всем пользователям использовать сертификаты в хранилище сертификатов компьютера в зависимости от разрешений, настроенных для закрытого ключа.
Сертификаты компьютера находятся в кусте реестра локального компьютера и в подкаталогах ProgramData. Сертификаты пользователя находятся в кусте реестра текущего пользователя и в подкаталогах AppData. Ниже вы можете увидеть, где каждый тип хранилища находится в реестре и файловой системе.
Контекст | Путь реестра | Объяснение |
---|---|---|
User | HKEY_CURRENT_USER SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей |
User | HKEY_CURRENT_USER SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей, установленных объектами групповой политики Active Directory (AD) (GPO) |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище общедоступных ключей для всей машины |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftCryptographyServices |
Физическое хранилище ключей, связанных с определенной службой |
Computer | HKEY_LOCAL_MACHINE SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище открытых ключей для всей машины, установленных объектами групповой политики. |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftEnterpriseCertificates |
Физическое хранилище общедоступных ключей, установленных корпоративными контейнерами PKI в домене AD |
Контекст | Расположение файла | Объяснение |
---|---|---|
User | $env:APPDATAMicrosoftSystemCertificates | Физическое хранилище для пользовательских открытых ключей и указателей на закрытые ключи |
User | $env:APPDATAMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для конкретных пользователей |
Computer | $env:ProgramDataMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для всей машины |
Предварительные требования
В оставшейся части этой статьи вы найдете несколько примеров, демонстрирующих взаимодействие с хранилищами сертификатов Windows. Чтобы воспроизвести эти примеры, убедитесь, что выполняются следующие требования:
- Windows Vista, Windows Server 2008 или более новая операционная система. В показанных примерах используется Windows 10 Корпоративная версии 1903.
- Знакомство с PowerShell. Хотя это и не обязательно, этот язык будет использоваться для ссылки на сертификаты, где это необходимо. Все показанные примеры были созданы с помощью Windows PowerShell 5.1.
- Вам не потребуется устанавливать какие-либо специальные сертификаты, но использование самозаверяющего сертификата полезно.
Управление сертификатами в Windows
В Windows есть три основных способа управления сертификатами:
- Оснастка консоли управления Microsoft (MMC) сертификатов (certmgr.msc)
- PowerShell
- Инструмент командной строки certutil
В этой статье вы узнаете, как управлять сертификатами с помощью оснастки Certificates MMC и PowerShell. Если вы хотите узнать больше о том, как использовать certutil, ознакомьтесь с документацией Microsoft.
PowerShell против диспетчера сертификатов Windows
Поскольку в Windows можно управлять сертификатами несколькими способами, встаёт вопрос выбора, что лучше использовать — GUI (MMC) или командную строку с PowerShell.
Во-первых, рассмотрим жизненный цикл сертификата. Если вы собираетесь установить или удалить один сертификат только один раз, рассмотрите возможность использования MMC. Но если вы управляете несколькими сертификатами или выполняете одну и ту же задачу снова и снова, использование командной строки может оказаться правильным решением. Даже если вы не умеете писать сценарии PowerShell, вам стоит этому научиться, если у вас есть много разных сертификатов, которыми нужно управлять.
Давайте сначала посмотрим, как обнаружить сертификаты, установленные в Windows, с помощью диспетчера сертификатов и PowerShell.
Использование диспетчера сертификатов Windows (certmgr.msc)
Чтобы просмотреть сертификаты с помощью MMC, откройте Диспетчер сертификатов: откройте меню «Пуск» и введите certmgr.msc. Это вызовет Windows Certificates MMC. Это начальное представление предоставит обзор всех логических хранилищ, отображаемых в левом окне.
На снимке экрана ниже видно, что выбрано логическое хранилище доверенных корневых центров сертификации
Просмотр физических хранилищ
По умолчанию Диспетчер сертификатов Windows не отображает физические хранилища. Чтобы показать их, в верхнем меню оснастки выбирайте «View» > «Options«. Затем вы увидите варианты отображения физических хранилищ сертификатов. Включение этого параметра упрощает определение конкретных путей в Windows.
Теперь вы можете видеть, что дополнительные контейнеры показаны в примере логического хранилища доверенных корневых центров сертификации, показанном ранее. Сертификаты по-прежнему сгруппированы относительно их логических хранилищ, но теперь вы можете увидеть физическое хранилище «Реестр».
Проверка атрибутов в диспетчере сертификатов Windows
Есть много атрибутов сертификата, которые вы можете увидеть при просмотре их с помощью MMC. Например, вы, вероятно, захотите выбрать определенные сертификаты по их атрибутам. Самый простой способ сделать это — указать Serial Number сертификата или значение Thumbprint. Если сертификат был подписан центром сертификации (CA), при выдаче он будет иметь серийный номер. Thumbprint вычисляется каждый раз при просмотре сертификата.
Вы можете увидеть некоторые атрибуты сертификата, открыв его в MMC, как показано ниже.
Следует отметить одну важную особенность — встроенные закрытые ключи. Сертификаты в Windows также могут иметь соответствующий закрытый ключ. Эти закрытые ключи хранятся в соответствующих физических хранилищах в виде зашифрованных файлов.
Чтобы быстро отличать сертификаты с соответствующим закрытым ключом и без него, посмотрите на значок сертификата. В Диспетчере сертификатов Windows, если значок просто выглядит как лист бумаги с лентой, соответствующий закрытый ключ отсутствует. Если у сертификата есть закрытый ключ, вы увидите ключ на значке MMC, и ключ в нижней части вкладки «Общие» при открытии сертификата
Использование PowerShell по физическому хранилищу
Как и в случае с MMC, вы можете просматривать сертификаты и управлять ими с помощью PowerShell. Давайте сначала проверим сертификаты в их физических хранилищах (реестр и файловая система).
Используя PowerShell командлет Get-ChildItem, вы можете перечислить все ключи и значения внутри родительского пути в реестре. Приведенная ниже команда перечислит все сертификаты вошедшего в систему пользователя в логическом хранилище промежуточных центров сертификации.
Get-ChildItem -Path 'HKCU:SoftwareMicrosoftSystemCertificatesCACertificates'
Каждая запись в кусте реестра, который вы видите, будет соответствовать отпечатку сертификата доверенного центра сертификации и его сертификату в соответствующем свойстве. Вы можете увидеть пример вывода ниже.
Другое распространенное хранилище — это Personal store. Ваши сертификаты для этого хранилища находятся в файловой системе, а не в реестре. В следующих командах мы покажем эти различные физические пути и их цели.
Каждый файл в каталоге, возвращенный приведенной ниже командой, соответствует сертификату, установленному в личном хранилище текущего пользователя.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyCertificates
Каждый файл, возвращаемый в приведенной ниже команде, является ссылкой на объект для закрытого ключа, созданный поставщиком хранилища ключей (KSP). Имя файла соответствует идентификатору ключа субъекта сертификата. К каждому устанавливаемому вами закрытому ключу будет добавлен соответствующий файл.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyKeys
Каждый файл в каталоге, возвращаемый следующей командой, является уникальным контейнером для зашифрованного закрытого ключа, созданного KSP. Нет прямой связи между именем файла и сертификатом, но файл является целью указателя в предыдущей команде.
Get-ChildItem -Path $env:APPDATAMicrosoftCryptoKeys
Использование PowerShell по логическому хранилищу
Поскольку работа с сертификатами на их физических путях встречается редко, в остальных примерах вы будете работать с логическими хранилищами.
PowerShell может получить доступ к логическим хранилищам Windows с помощью PSDrive-объекта «Cert:«, который сопоставляет сертификаты с физическими хранилищами так же, как это делает MMC.
К сожалению, MMC и «Cert:» не маркируют логические хранилища одинаково. Ниже вы можете увидеть сравнительную таблицу общих хранилищ и их названий как в MMC, так и в «Cert:» PSDrive.
Cert: | Certificates MMC |
---|---|
My | Personal |
Remote Desktop | Remote Desktop |
Root | Trusted Root Certification Authorities |
CA | Intermediate Certification Authorities |
AuthRoot | Third-Party Root Certification Authorities |
TrustedPublisher | Trusted Publishers |
Trust | Enterprise Trust |
UserDS | Active Directory User Object |
Выбор сертификатов
Когда вы работаете с сертификатами, вам понадобится способ фильтрации и выбора сертификатов для выполнения определенных операций. В большинстве случаев вы будете фильтровать и выбирать сертификаты на основе значения определенного расширения.
Для следующих примеров вам нужно начать с перечисления всех установленных сертификатов в хранилище корневого ЦС.
Get-ChildItem -Path 'Cert:CurrentUserRoot'
Возвращенные объекты будут объектами сертификатов, которые вы можете использовать в следующих примерах.
Общие расширения уже доступны как свойства объектов сертификата. В приведенном ниже примере вы используете Get-Member для вывода списка всех свойств возвращаемых объектов.
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Get-Member -MemberType Properties
Как видим, некоторые из этих расширений, например «Issuer», помогают найти сертификат, который вы ищете. Расширения предоставляют информацию о сертификате, например, кому он выдан, для чего его можно использовать и любые ограничения на него.
В более сложных случаях использования вам может понадобиться найти сертификаты других расширений, таких как используемый шаблон сертификата. Сложность в том, что значения этих расширений возвращаются как массив целых чисел. Эти целые числа соответствуют содержимому в кодировке ASN.1.
Покажем пример взаимодействия с свойствами типа ScriptProperty. В приведенной ниже команде вы извлекаете Key Usages.
((Get-ChildItem -Path 'Cert:CurrentUserRoot' | Select -First 1).Extensions | Where-Object {$_.Oid.FriendlyName -eq 'Key Usage'}).format($true)
Новая часть, которую мы вводим в приведенной выше команде, — это метод форматирования, который выполняет декодирование ASN.1. Вы передаете ему логическое значение (например, $true), чтобы определить, хотим ли мы, чтобы возвращаемый объект был однострочным или многострочным.
Попробуем использовать значение Thumbprint из сертификата в приведенной ниже команде. Значение Thumbprint устанавливается как переменная PowerShell и используется для выбора конкретного сертификата в приведенных ниже командах.
$thumb = "cdd4eeae6000ac7f40c3802c171e30148030c072"
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Where-Object {$_.Thumbprint -eq $thumb}
Создание самозаверяющих (self-signed) сертификатов с помощью PowerShell
PowerShell может создавать самозаверяющие (self-signed) сертификаты с помощью командлета New-SelfSignedCertificate. Самозаверяющие сертификаты полезны для тестирования, поскольку они позволяют генерировать пару открытого и закрытого ключей без использования центра сертификации.
Теперь давайте создадим самозаверяющий сертификат в хранилищах текущего пользователя и локального компьютера, чтобы использовать его в примерах для следующих шагов.
В приведенном ниже примере PowerShell создает пару открытого и закрытого ключей, самозаверяющий сертификат и устанавливает их все в соответствующие хранилища сертификатов.
New-SelfSignedCertificate -Subject 'User-Test' -CertStoreLocation 'Cert:CurrentUserMy'
New-SelfSignedCertificate -Subject 'Computer-Test' -CertStoreLocation 'Cert:LocalMachineMy'
Использование самозаверяющих сертификатов для продуктивных сервисов не рекомендуется, поскольку не существует всех механизмов, основанных на доверии.
Импорт и экспорт сертификатов в MMC
Криптография с открытым ключом основана на широкой доступности открытого ключа. Учитывая это, вам нужны стандартные способы эффективного обмена сертификатами. Не менее важна безопасность ваших личных ключей. Хранение закрытых ключей на недоступных носителях или с материалами для аварийного восстановления — обычная практика для определенных закрытых ключей.
Оба они требуют способов хранения этих криптографических объектов в стандартных форматах. Экспорт предоставляет функции для сохранения этих объектов и обеспечения использования широко распространенных стандартных форматов файлов. Импорт позволяет вам переносить криптографические объекты в операционные системы Windows.
Экспорт сертификатов из MMC относительно прост. Чтобы экспортировать сертификат без закрытого ключа, щелкните сертификат в MMC, выберите меню «Все задачи», а затем «Экспорт».
Во время экспорта вам будет предложено указать формат файла, как показано ниже. Наиболее распространены варианты кодирования — DER или Base-64
Экспорт закрытых ключей
Чтобы экспортировать сертификат с соответствующим закрытым ключом, вы должны соответствовать двум критериям:
- Вошедшая в систему учетная запись должна иметь разрешение на закрытый ключ (только для сертификатов компьютеров);
- Закрытый ключ должен быть помечен как экспортируемый.
Чтобы проверить разрешения для закрытых ключей локального компьютера, вы можете выбрать сертификат с закрытым ключом, выбрать «Все задачи» и «Управление закрытыми ключами» в MMC «Сертификаты». В открывшемся диалоговом окне отображаются записи управления доступом для закрытых ключей.
Когда выше обозначенные условия выполнены, вы можете выбрать сертификат, щелкнуть «Все задачи», а затем «Экспорт», как если бы вы использовали сертификат только с открытым ключом. При экспорте теперь у вас должна присутствовать возможность выбора экспорта закрытого ключа («Yes, export the private key»), как показано ниже.
Когда вы экспортируете закрытый ключ в Windows, вы можете сохранить файл только как PFX. Этот и другие типы файлов и форматы кодирования подробно описаны в этом посте.
Для остальных параметров, отображаемых в мастере экспорта, вы можете использовать значения по умолчанию. В таблице ниже приводится краткое изложение каждого из них.
Настройка | Описание |
---|---|
Including all certificates in the certification path if possible | Помогает с переносимостью эмитентов сертификатов и включает все соответствующие открытые ключи в PFX. |
Delete the private key if the export is successful | Удаляет закрытый ключ из файла и имеет несколько распространенных вариантов использования, но одним из примеров является проверка доступа к закрытым ключам. |
Export all extended properties | Будет включать любые расширения в текущем сертификате, они относятся к сертификатам [конкретные настройки] для интерфейсов Windows. |
Enable certificate privacy | Обычно в экспортируемом PFX-файле шифруется только закрытый ключ, этот параметр шифрует все содержимое PFX-файла. |
Group or user names | Вы можете использовать участника безопасности группы или пользователя из Active Directory для шифрования содержимого файла PFX, но пароль является наиболее переносимым вариантом для устаревших систем или компьютеров, не присоединенных к тому же домену. |
Импорт сертификатов
Функция импорта одинакова для всех поддерживаемых типов файлов сертификатов. Единственная разница в том, что если файл содержит закрытый ключ, вы можете «Отметить этот ключ как экспортируемый», о чем вы узнаете подробнее ниже. Windows будет использовать мастер импорта сертификатов.
При использовании мастера импорта сертификатов для PFX вам потребуется указать пароль, используемый для шифрования закрытого ключа. Вот еще один обзор вариантов импорта.
Настройка | Описание |
---|---|
Enable strong private key protection | Требуется пароль для каждого доступа к закрытому ключу. Будьте осторожны с новыми функциями, поскольку они не будут поддерживаться во всех программах. |
Mark this key as exportable | Вы должны стараться избегать использования этого параметра в любой конечной системе, закрытые ключи следует рассматривать так же, как и хранение паролей. |
Protect private key using [virtualization-based security] | Этот параметр обеспечивает дополнительные функции безопасности для защиты закрытых ключей от сложных атак вредоносного ПО. |
Include all extended properties | Относится к тем же настройкам Windows, что и при экспорте. |
Сертификаты для подписи кода PowerShell — хороший вариант использования надежной защиты закрытого ключа.
С автоматическим размещением сертификатов следует проявлять осторожность. Скорее всего, вы получите наилучшие результаты, выбрав хранилище сертификатов вручную.
Импорт и экспорт сертификатов в PowerShell
Теперь с помощью PowerShell экспортируйте один из самозаверяющих сертификатов, которые вы создали ранее. В этом примере вы выбираете сертификат в личном логическом хранилище CurrentUser, который был самозаверяющим.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Теперь, когда вы выбрали сертификат, вы можете использовать команду Export-Certificate, чтобы сохранить файл в кодировке DER, используя команду ниже.
Export-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -Cert $certificate
Теперь давайте посмотрим на экспорт закрытого ключа. Ниже вы проверяете, что у выбранного сертификата есть закрытый ключ. Если он не возвращает True, то команда Get-Item, скорее всего, выбрала неправильный сертификат.
$certificate.HasPrivateKey
Ниже вы установите пароль, который будет использоваться для шифрования закрытого ключа. Затем экспортируйте выбранный сертификат в файл PFX и используйте пароль, который вы ввели ранее, чтобы зашифровать файл.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -FilePath $env:USERPROFILEDesktopcertificate.pfx -Password $pfxPassword -Cert $certificate
В случае, если необходимо выполнить импорт, как и при экспорте, есть две команды. Одна команда для импорта сертификатов и одна для импорта файлов PFX.
Ниже команда Import-Certificate импортирует файл в формате DER, который вы экспортировали ранее, в личное хранилище текущего пользователя.
Import-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -CertStoreLocation 'Cert:CurrentUserMy'
Допустим, вы тоже хотите установить закрытый ключ этого сертификата.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -Password $pfxPassword -CertStoreLocation 'Cert:CurrentUserMy' -FilePath $env:USERPROFILEDesktopcertificate.pfx
Имейте в виду, что пароль должен быть защищенной строкой. Кроме того, если вы импортируете в хранилище локального компьютера (например, «Cert:LocalMachine«), вам нужно будет запустить команду из командной строки администратора с повышенными привилегиями.
В приведенном выше примере вы также используете параметр -Exportable с командой, отмечая закрытый ключ как экспортируемый в будущем. По умолчанию (без указания этого параметра) экспорт не используется. Экспортируемые закрытые ключи – отельный аспект информационной безопасности, заслуживающий отдельного внимания.
Удаление сертификатов с помощью PowerShell
При удалении сертификатов помните, что понятие «Корзина Windows» в этом случае отсутствует. Как только вы удалите сертификат, он исчезнет! Это означает, что очень важно подтвердить, что вы удаляете правильный сертификат, путем проверки уникального идентификатора, такого как серийный номер или значение расширения Thumbprint.
Как и выше, в приведенной ниже команде мы выбираем самозаверяющий сертификат из личного хранилища текущего пользователя.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Ниже вы можете увидеть свойства отпечатка, серийного номера и темы для выбранного сертификата, чтобы убедиться, что это именно тот сертификат, который вы собираетесь выбрать.
$certificate.Thumbprint
$certificate.SerialNumber
$certificate.Subject
Убедитесь, что вы выбрали правильный сертификат, который собираетесь удалить.
Приведенная ниже команда удаляет все выбранные объекты сертификата, используйте с осторожностью! Передав объект $certificate через конвейер в командлет Remove-Item в приведенной ниже команде, вы удалите все содержимое сертификата без каких-либо запросов на проверку.
$certificate | Remove-Item
Резюме
На протяжении всей этой статьи вы работали с сертификатами в Windows, изучая, как получить к ним доступ, и некоторые инструменты, которые можно использовать при работе с ними. По этой теме можно изучить гораздо больше, в том числе о том, как связать установленные сертификаты с конкретными службами или даже о том, как реализовать инфраструктуру закрытого открытого ключа (PKI) путем развертывания собственных центров сертификации (CA).
Система цифровых сертификатов используется аналогично паролям, для подтверждения личности пользователя или ПК, обмена электронной информацией в виртуальной сети. Легковесные файлы содержат личные данные, которые применяются при идентификации личности. Хранилище сертификатов в ОС Windows 10 находится в секретном месте. Иногда фирмам приходится настраивать личные сертификаты, поэтому им важно знать местоположение файлов.
Для чего знать, где хранятся сертификаты?
Каждый файл в хранилище предусмотрен для защиты операционки цифрового устройства. Они препятствуют проникновению вредоносных программ в систему. Отдельная цифровая подпись отвечает за определенный скачанный софт.
Знание о том, где хранятся такие файлы, требуется в случае просмотра или установки корневых, личных сертификатов. В «десятке» инструменты находятся в контейнере двух типов:
- Certificate store локального ПК – включают список файлов для проверки оригинальности сервера.
- Certificate store для пользователя – хранят сертификаты утилит, которые запускает юзер.
Сертификаты представляют собой корневые и личные файлы. Первые являются составным элементом секретного ключа. Вторые предназначены для идентификации юзеров при обмене электронных данных. Поменять настройки в «десятке» можно через mmc оснастки, в том числе через хранилище.
Список важных объектов: сертификаты для оборудования, персональные файлы – находят несколькими способами с помощью встроенных инструментов, сторонних утилит.
Через «КриптоПро»
Криптопровайдер предназначен для организации защиты программных обеспечений методом шифрования. Менеджер защищает конфиденциальную информацию при обмене данными через сеть интернет, обеспечивает юридическую достоверность электронных документов.
Для включения программы ее требуется скачать с официального сайта разработчика, инсталлировать на компьютер. Все действия выполняются с правами Администратора. Во время установки ПО можно выполнять настройки через панель свойств. После инсталляции потребуется перезагрузить устройство.
Просмотр проверочных ключей ЭЦП происходит по следующему алгоритму:
- Зайти в меню Пуск.
- Открыть «Все программы».
- Выбрать «КриптоПро».
- Щелкнуть по пункту «Сертификаты».
В открывшемся окне пользователь увидит все актуальные корневые, личные файлы. Обладая администраторскими правами, можно управлять файлами в «десятке»: выполнять копирование, редактирование, деинсталлировать файлы.
Через Certmgr
Диспетчер разрешает проводить различные действия с цифровыми документами. Консоль является частью операционной системы, включает инструменты для функций управления.
Для просмотра данных нужно следовать инструкции:
- Зайти в Пуск.
- Открыть Командную строку, набрать: c Нажать «Enter».
- В меню появившегося окна выбрать «Личное» и «Корневые сертификаты…». Зайдя в разделы, можно развернуть реестры с полным списком ключей.
Без прав Администратора утилита не заработает. Софт имеет ограничение в шифровании данных, где происходит специальное кодирование файлов.
Через Internet Explorer
Браузер интегрирован в ОС Виндовс 10, включает набор инструментов, позволяющих искать и просматривать информацию в виртуальной сети. Если веб-проводник отсутствует в «десятке», его легко можно скачать с официального источника.
С помощью браузера можно найти ЭЦП, следуя инструкции:
- Запустить Интернет Эксплорер.
- Выбрать «Свойства браузера».
- Тапнуть по разделу «Содержание».
- Нажать на подраздел «Сертификаты».
В результате откроется содержимое с полным списком искомых файлов. В веб-сервисе существует возможность их добавления. Юзеру стоит помнить, что корневые ЭЦП удостоверяющих центров деактивировать запрещено.
Аналогичный способ поиска документов выполняется через Центр управления сетями или общим доступом:
- Открыть Панель управления.
- Войти в «Свойства браузера».
- Зайти в меню «Содержание» и «Сертификаты».
Преимущество метода заключается в том, что посмотреть список ЭЦП можно без администраторских прав. Для обычных людей доступен только просмотр, вносить изменения запрещено.
Через контроль управления
Представляет собой один из важнейших компонентов ОС Виндовс 10. С помощью встроенного средства осуществляется управление, запуск, настройка большинства системных функций. Также можно найти, где лежат сертифицированные файлы ЭЦП для их редактирования.
Пошаговая инструкция:
- Нажать: «Win + R».
- Ввести в строку запроса: cmd. Нажать «Enter».
- после этого перейти по команде mmc в терминал;
- Щелкнуть по вкладке «Файл».
- В открывшемся списке тапнуть «Добавить изолированную оснастку».
- Нажать на раздел «Сертификаты».
Все действия пользователь может выполнять только с правами Администратора. Такой вариант подходит не каждому человеку, так как некоторые запросы вводятся через Командную строку. Сервисом обычно пользуются системные администраторы или люди, хорошо разбирающиеся в теме.
Существует целый список сторонних ресурсов, позволяющих управлять сертификатами, инсталлированными в ОС Виндовс 10. Но пользоваться такими утилитами не рекомендуется, так как нет гарантии, что в них присутствует команда отправки сертификата на внешний сервер. Надежное сертифицированное приложение – это «КриптоПро», которое дает гарантию защиты от несанкционированного доступа посторонних лиц к ЭЦП.
Также в последних версиях Винды зашифрованные файлы просматривают, перейдя по пути: C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates. Словосочетание «Пользователь» меняется на название учетной записи. В результате откроется полный список засекреченных данных.
Сертификаты созданы для безопасной работы цифровой техники. Их достоверность гарантирована сертификационным центром. Управление ЭЦП требует определенных знаний, поэтому работу должен выполнять специалист или продвинутый пользователь.
Участие в торгах, сдача отчетности, маркировка товаров невозможны без электронной подписи (ЭП или ЭЦП), которая заменяет реальную подпись человека при дистанционной подготовке документов.
Если вы еще не получили электронную подпись, оформите ЭП в удостоверяющем центре, который прошел аккредитацию. В УЦ Контура есть подписи для сотрудников и руководителей, торгов, отчетности и личных дел.
Заказать
Чаще всего владельцы электронной подписи сталкиваются с сертификатом, когда подписывают контракт на торговой площадке или отчет для налоговой. Тогда система, где подписывается документ, предлагает «Выбрать сертификат», которым будет подписан документ.
Сертификат — это электронное свидетельство, которое подтверждает, кому ЭП принадлежит. В нем содержатся сведения:
- Срок действия;
- Статус: действителен или нет;
- Кому он выдан и каким удостоверяющим центром (УЦ);
- Наличие закрытого ключа;
- Значение открытого ключа;
- Уникальный номер сертификата.
Сертификат получают в удостоверяющем центре. Для этого нужно обратиться в УЦ, сообщить свои данные, показать паспорт и подтвердить личность. Сотрудники УЦ сообщат, как пользователю сгенерировать ключи электронной подписи, а потом выдадут на них сертификат — он подтвердит, что ключи принадлежат вам и позволит использовать их для подписания документов. Вы сможете записать его на токен (защищенный носитель, похожий на флешку) или сохранить на компьютер.
Файл сертификата имеет расширение.cer. Иконка файла — выглядит как конверт с ключом и печатью.
Как выглядит файл с сертификатом ЭП
Сертификат, открытый и закрытый ключи хранятся вместе на внешнем носителе или в компьютере. Вместе эти три компонента обеспечивают работу ЭП. Сертификат без ключей не позволит подписать электронный документ.
Повреждение или удаление файлов приведет к необходимости перевыпуска ЭП.
Тариф «Марафон» от Удостоверяющего центра Контура позволяет перевыпускать сертификат столько, сколько нужно без доплат. Также тариф избавляет от ежегодной подготовки документов для новой ЭП
Заказать
При первом получении сертификата и ключей ЭП пользователь выбирает, на каком носителе будет их хранить. Это возможно, если правила системы или УЦ, где он получает сертификат, разрешает выбрать разные носители.
Всего есть четыре возможных носителя для сертификата:
- Токен — специальный защищенный носитель, который внешне похож на флешку. Содержимое носителя защищено пин-кодом, поэтому просто так файл с закрытым ключом с токена не скопировать. Купить такой носитель можно в УЦ или у производителя токенов.
- Флешка — обычный носитель, на нем контейнер с сертификатом и ключами будет храниться, как папка с файлами.
- Обычная папка на компьютере — или ее также называют «директория».
- Реестр компьютера — база с информацией о настройках и параметрах компьютера.
В дальнейшем пользователь может сделать копию ключа и сертификата и записать их на второй носитель. Это возможно, если в сертификате нет запрета на копирование. Например, не удастся скопировать сертификат УЦ ФНС или сертификат для ЕГАИС Алкоголь, так как они защищены от копирования. При этом другие квалифицированные сертификаты — например, подпись для торгов или налоговой отчетности — можно дублировать и хранить на нескольких носителях.
Подробнее разберем хранение сертификата на компьютере: в папке (директории) и в реестре.
Папка в операционной системе
При сохранении сертификата на компьютере программа КриптоПро CSP сама определяет конкретную папку, куда запишет ключи и сертификат. Выбрать другой путь сохранения файла пользователю не удастся.
В этом случае файл закрытого ключа проще найти и скопировать — это будет обычная папка с файлами. Путь к папке будет таким:
- в Windows — %localappdata%/crypto prо;
- в Linux, Unix, MacOS — /var/opt/cprocsp/keys/{username}, где username — это название учетной записи.
Реестр
Реестр компьютера — это список настроек и параметров ПК. Увидеть реестр компьютера можно, набрав в строке поиска на панели «Пуск» — «regedit». Поиск позволит открыть служебную программу — редактора реестра.
Путь к сертификату через реестр
Найти сертификат на ПК можно несколькими путями:
- с помощью программы КриптоПро CSP;
- программы CertMgr;
- браузера;
- консоли MMC.
Все четыре способа позволят открыть сертификат, выгрузить его в виде файла, просмотреть сведения об ЭП, а при необходимости и удалить сертификат. Когда не нужно удалять сертификат.
В КриптоПро CSP и браузере также можно скопировать сертификат вместе с закрытым ключом, в программе CertMgr и консоли ММС — только файл сертификата. Для такого копирования сертификата и его ключа рекомендуем использовать сервис копирования сертификатов на Установочном диске, где пользователю не требуется детально погружаться в механизмы работы ЭП.
Поиск сертификата через КриптоПро CSP
КриптоПро CSP — это программа для работы с электронной подписью. Она есть у большинства пользователей, работающих с квалифицированной ЭП.
Чтобы найти сертификат через КриптоПро CSP на ПК:
- Открываем программу: Пуск → Все программы — КриптоПро CSP.
- В программе переходим по вкладкам: Сертификаты пользователя → Личное → Сертификаты.
- Выбираем нужный сертификат и делаем с ним то, что планировали: смотрим информацию в сертификате, экспортируем его или удаляем.
Поиск сертификата через КриптоПро CSP
После открытия сертификата через КриптоПро CSP, вкладка с ним появится в меню «Пуск». В следующий раз сертификат можно будет открыть быстрее — сразу из этого меню.
При удалении сертификата через КриптоПро CSP, программа сотрет с компьютера все компоненты ЭП вместе с корневым сертификатом УЦ. После этого восстановить их невозможно. Что такое корневой сертификат.
Поиск сертификата через CertMgr
CertMgr — это программа для работы с сертификатами на ПК. Также через программу можно посмотреть справочную информацию о консоли управления Microsoft Management Console (MMC) и о том, как настроить удаленное подключение к компьютеру.
Поиск сертификатов на ПК с помощью CertMgr аналогичен поиску через КриптоПро CSP:
- Открываем меню «Пуск» и в поисковой строке пишем название диспетчера сертификатов — «CertMgr», запускаем программу CertMgr.
- В программе — выбираем папку «Личное», тип объекта — «Сертификаты». Диспетчер выдаст перечень сертификатов, которые установлены на компьютер.
- Выбираем из списка нужный сертификат и открываем его.
Поиск сертификата через CertMgr
Поиск сертификата через Internet Explorer
Internet Explorer — один из наиболее популярных браузеров для работы с сертификатами ЭП. Долгое время только его можно было использовать для сертификатов. Другие браузеры начали поддерживать работу сертификатов позже — в 2015-2017 годах. Но до сих пор использовать сертификат на некоторых ресурсах можно только в Internet Explorer.
Как найти сертификат с помощью браузера Internet Explorer:
- Открываем браузер и нажимаем: Настройки → Свойства браузера → Содержание → Сертификаты
- Появится окно с сертификатами, установленными на компьютер. Можно будет просмотреть информацию о них.
Поиск сертификата через Internet Explorer
Полностью удалить сертификат из браузера Internet Explorer невозможно — только открытый ключ. Поэтому если сертификат удалили из браузера по ошибке, то его можно восстановить с помощью программы КриптоПро CSP.
В браузере Chrome и основанных на нем браузерах (Яндекс.Браузер, Opera) сертификаты также можно найти:
Настройки браузера → Приватность и защита → Безопасность и защита → Сертификаты → Просмотр сертификатов.
В браузере Firefox найти сертификат не получится. Этот браузер не работает с российскими сертификатами и отечественными криптографическими алгоритмами.
Поиск сертификата через консоль управления
Консоль MMC (Microsoft Management Console) — это место для хранения инструментов и программ, которые предназначены для обслуживания компьютера. Эти средства называются оснастками и служат для управления оборудованием, программным обеспечением и сетевыми компонентами Windows.
Что именно находится в консоли, выбирает пользователь. Перед тем, как пользоваться инструментами консоли, сначала их нужно туда добавить, то есть «Добавить оснастку».
Рассказываем, как запустить консоль и добавить оснастку:
- Открываем меню «Пуск» и в поисковой строке указываем — «MMC».
- В результатах поиска выбираем консоль управления Windows MMC и запускаем ее.
- Нажимаем на вкладку «Файл» и выбираем функцию «Добавить или удалить оснастку». Система выдаст список доступных оснасток.
- Выбираем строку «Сертификаты» в перечне оснасток и нажимаем кнопку «Добавить».
- Указываем, для какой учетной записи выбираем оснастку — «Моей учетной записи пользователя» и нажимаем «Готово». После этого список сертификатов перейдет из перечня доступных оснасток в окне слева в перечень выбранных оснасток в окне справа.
- Подтверждаем выбор: в окне выбранных оснасток выбираем инструмент «Сертификаты» и нажимаем «Ок».
- Прописываем название консоли и выбираем, куда ее сохранить.
Добавление сертификата в консоль управления Windows
После добавления сертификатов в консоль управления Windows, с ними можно будет работать напрямую через эту консоль.
Как запустить консоль, в которую добавлены сертификаты:
- Открываем меню «Пуск» и в поисковой строке указываем название консоли. Например, «Консоль1».
- Выбираем консоль, запускаем ее и нажимаем: Корень консоли → Сертификаты → Личное → Сертификаты.
- Нажимаем на иконку сертификата и открываем его.
Просмотр сертификата в консоли управления Windows
Сертификат на компьютере можно найти несколькими путями. Наиболее простые через программу КриптоПро CSP или браузер. Чуть более сложные — через диспетчер сертификатов CertMgr или консоль управления Windows.
Если поиск не дал результатов, значит сертификата на компьютере нет. Это значит, что файл сертификата удален. Восстановить его можно только в случае, если закрытый ключ не тронут. В противном случае нужно использовать копию сертификата, если заранее ее сделали, или обратиться в удостоверяющий центр за новым сертификатом.
Если у вас оформлен тариф «Марафон» от Удостоверяющего центра Контура, платить за перевыпуск не придется. Тариф не только избавляет от ежегодной подготовки документов для новой ЭП, но и позволяет перевыпускать сертификат столько, сколько нужно
Заказать
Обновлено 24.11.2016
Добрый день уважаемые читатели блога Pyatilistnik.org, меня уже на протяжении этого месяца, несколько раз спрашивали в электронной почте, где хранятся сертификаты в windows системах, ниже я подробнейшим образом вам расскажу про этот вопрос, рассмотрим структуру хранилища, как находить сертификаты и где вы это можете использовать на практике, особенно это интересно будет для тех людей, кто часто пользуется ЭЦП (электронно цифровой подписью)
Для чего знать где хранятся сертификаты в windows
Давайте я вам приведу основные причины, по которым вы захотите обладать этим знанием:
- Вам необходимо посмотреть или установить корневой сертификат
- Вам необходимо посмотреть или установить личный сертификат
- Любознательность
Ранее я вам рассказывал какие бывают сертификаты и где вы их можете получить и применять, советую ознакомиться с данной статьей, так как информация изложенная в ней является фундаментальной в этой теме.
Во всех операционных системах начиная с Windows Vista и вплоть до Windows 10 Redstone 2 сертификаты хранятся в одном месте, неком таком контейнере, который разбит на две части, один для пользователя, а второй для компьютера.
В большинстве случаев в Windows поменять те или иные настройки вы можете через mmc оснастки, и хранилище сертификатов не исключение. И так нажимаем комбинацию клавиш WIN+R и в открывшемся окне выполнить, пишем mmc.
Вы конечно можете ввести команду certmgr.msc, но таким образом вы сможете открыть только личные сертификаты
Теперь в пустой mmc оснастке, вы нажимаете меню Файл и выбираете Добавить или удалить оснастку (сочетание клавиш CTRL+M)
В окне Добавление и удаление оснасток, в поле Доступные оснастки ищем Сертификаты и жмем кнопку Добавить.
Тут в диспетчере сертификатов, вы можете добавить оснастки для:
- моей учетной записи пользователя
- учетной записи службы
- учетной записи компьютера
Я обычно добавляю для учетной записи пользователя
и компьютера
У компьютера есть еще дополнительные настройки, это либо локальный компьютер либо удаленный (в сети), выбираем текущий и жмем готово.
В итоге у меня получилось вот такая картина.
Сразу сохраним созданную оснастку, чтобы в следующий раз не делать эти шаги. Идем в меню Файл > Сохранить как.
Задаем место сохранения и все.
Как вы видите консоль хранилище сертификатов, я в своем примере вам показываю на Windows 10 Redstone, уверяю вас интерфейс окна везде одинаковый. Как я ранее писал тут две области Сертификаты — текущий пользователь и Сертификаты (локальный компьютер)
Сертификаты — текущий пользователь
Данная область содержит вот такие папки:
- Личное > сюда попадают личные сертификаты (открытые или закрытые ключи), которые вы устанавливаете с различных рутокенов или etoken
- Доверительные корневые центры сертификации > это сертификаты центров сертификации, доверяя им вы автоматически доверяете всем выпущенным ими сертификатам, нужны для автоматической проверки большинства сертификатов в мире. Данный список используется при цепочках построения доверительных отношений между CA, обновляется он в месте с обновлениями Windows.
- Доверительные отношения в предприятии
- Промежуточные центры сертификации
- Объект пользователя Active Directory
- Доверительные издатели
- Сертификаты, к которым нет доверия
- Сторонние корневые центры сертификации
- Доверенные лица
- Поставщики сертификатов проверки подлинности клиентов
- Local NonRemovable Certificates
- Доверительные корневые сертификаты смарт-карты
В папке личное, по умолчанию сертификатов нет, если вы только их не установили. Установка может быть как с токена или путем запроса или импорта сертификата.
В мастере импортирования вы жмете далее.
далее у вас должен быть сертификат в формате:
- PKCS # 12 (.PFX, .P12)
- Стандарт Cryprograhic Message Syntax — сертификаты PKCS #7 (.p7b)
- Хранилище сериализованных сертификатов (.SST)
На вкладке доверенные центры сертификации, вы увидите внушительный список корневых сертификатов крупнейших издателей, благодаря им ваш браузер доверяет большинству сертификатов на сайтах, так как если вы доверяете корневому, значит и всем кому она выдал.
Двойным щелчком вы можете посмотреть состав сертификата.
Из действий вы их можете только экспортировать, чтобы потом переустановить на другом компьютере.
Экспорт идет в самые распространенные форматы.
Еще интересным будет список сертификатов, которые уже отозвали или они просочились.
Список пунктов у сертификатов для компьютера, слегка отличается и имеет вот такие дополнительные пункты:
- AAD Token Issue
- Windows Live ID Token
- Доверенные устройства
- Homegroup Machine Certificates
Думаю у вас теперь не встанет вопрос, где хранятся сертификаты в windows и вы легко сможете найти и корневые сертификаты и открытые ключи.
На чтение 7 мин Просмотров 2.5к. Опубликовано 18.11.2019
В период широко распространяющегося внедрения инновационных технологий электронный документооборот уверенно вытесняет стандартные бумажные носители. Для защиты официальной информации от несанкционированного использования цифровой подписи сторонними лицами нужно знать, где хранятся сертификаты ЭЦП на компьютере.
Что такое сертификат ЭЦП
Сегодня все чаще встречается дистанционное оформление бумаг. Сделки заключаются удаленно, присутствие сторон необязательно. Удостоверяющий центр выпускает специальную бумагу в электронном или бумажном формате. С его помощью подтверждается подлинность цифровой подписи, перекрывается доступ сторонним лицам к закрытой информации.
В сертификате ЭЦП содержатся следующие данные:
- сведения о владельце;
- срок действия;
- название удостоверяющего центра, издавшего документ;
- наименование средства;
- проверочный ключ;
- информация об ограничениях в области применения.
В отдельных случаях в него включаются дополнительные данные пользователя и издателя, адреса служб штампов времени и действующих статусов сертификатов и т.п.
Аккредитованный удостоверяющий центр в момент выпуска документа генерирует ключ проверки. При этом сохраняются сведения о владельце электронной подписи в специальном файловом массиве.
Места хранения ЭЦП
Допускается использовать ЭЦП одновременно на нескольких устройствах. Предварительно нужно узнать, где на персональном компьютере хранится файл сертификата.
На ПК
Доступ к открытому ключу для возможности его прочтения на ПК можно получить посредством проводника. Для этого задается направление по адресу: C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates. Способ используется на платформе Vista и более поздних версиях программного обеспечения.
Получить доступ к закрытому сертификату через жесткий диск компьютера не удастся. Информация, предназначенная для генерации открытых ключей, заносится на защищенный USB-рутокен. Открыть файл можно исключительно после ввода пароля, полученного в аккредитованном удостоверяющем центре.
Кроме того, найти сертификат ЭЦП на компьютере можно в зашифрованном формате в отдельной папке Windows. Просмотреть или сделать дубликаты содержащихся в ней данных не удастся, т.к. операционная система ограничивает доступ.
Следует учитывать, что пользователям, не наделенным правами администратора, не разрешен просмотр файла сертификата. Посетители в статусе «Гость» не допускаются к просмотру информации, содержащейся в системных папках компьютерного диска С.
В операционной системе Windows XP
В ОС Windows XP открытые ключи размещаются в персональном хранилище. От несанкционированного изменения общедоступные сведения защищает электронная подпись аккредитованного центра сертификации. Для просмотра ищем папку Documents and Setting. После этого вводится следующая информация:
- имя пользователя;
- ApplicationData;
- Microsoft SystemCertificates;
- My Certificates;
- наименование профиля.
Открытые сертификаты регистрируются в локальном реестре. Процедура повторяется при каждом входе в систему Windows Server.
В перемещаемых пользовательских профилях контейнер закрытого ключа хранится в папке RSA на доменном контроллере, защищенном специальным шифрованием с использованием симметричного кода. Для создания базового шифра, состоящего из 64 символов, задействуется генератор случайных чисел. Загрузка сертификационного файла выполняется на время работы компьютера.
В реестре
Допускается хранить сертификаты ЭЦП в реестре по аналогии со стандартными ключевыми носителями. Найти перенесенные ключи цифровой подписи можно в папках:
- HKEY_LOCAL_MACHINESOFTWARECryptoProSettingUsers(идентификатор пользователя)Keys название контейнера (для 32-битной ОС Windows);
- для 364-битной операционной системы «Виндовс» файл находится по адресу: HKEY_LOCAL_MACHINESOFTWAREWow6432NodeCryptoProSettingUsers(идентификатор пользователя)Keys наименование сертификата;
- в отдельных случаях для поиска папки, в которой хранится электронная подпись, задается направление: HKEY_USERSS-1-5-21-{SID}_ClassesVirtualStoreMACHINESOFTWAREWow6432NodeCryptoProSettingUSERSS-1-5-21-{SID}Keys.
Под Keys SID подразумевается персональное пользовательское имя, удостоверяющее подлинность подписи.
Узнать ключевую комбинацию символов переменной длины можно с использованием командной строки. Для этого в соответствующем окне набирается WHOAMI/ User и нажимается клавиша Enter.
В системе Linux
Задействовав утилиту Csptest, размещенную в директории /opt/cprocsp/bin/<архитектура>, находят сертификационные файлы ЭЦП в операционной системе Linux.
Перечень открытых ключей персонального компьютера: csptest -keyset -enum_cont -verifycontext -fqcn -machinekeys.
Список сертификатов пользователя: csptest -keyset -enum_cont -verifycontext -fqcn.
Наименования контейнеров задаются в формате, воспринимаемом бинарными программами, составляющими дистрибутив CSP.
На жестком диске размещено хранилище HDImageStore, куда заносятся закрытые ключи. Доступ к ним открыт и для JCP.
Для хранения сертификатов в ОС Linux создается специальная директория. Путь к ним открывается вручную вводом особых команд.
Как посмотреть
Для просмотра перечня проверочных ключей электронно-цифровой подписи, удаления элементов или копирования на внешний носитель пользуются браузером Internet Explorer, панелью управления или специфическими утилитами.
Через «КриптоПро»
Алгоритм действий:
- нажать кнопку «Пуск»;
- в строке «Все программы» выбрать «КриптоПРО»;
- войти в раздел «Сертификаты».
На дисплее появится окно со списком всех установленных на жестком диске сертификационных файлов. Информацию можно просматривать, копировать и удалять. Для этого необходимо обладать правами администратора. Пользователям в гостевом статусе доступ к функциям программы закрыт.
Через Certmgr
Встроенный в ОС Windows менеджер позволяет работать с хранящимися на компьютере сертификатами. Используя его, можно просмотреть информацию о действующих ключах, данные удостоверяющего центра-партнера корпорации Microsoft для предоставления привилегий отдельным программам.
Порядок действий:
- войти в меню «Пуск»;
- в командную строку ввести certmgr.msc и нажать Enter;
- в появившемся окне выбрать вкладки «Личное» и «Корневые сертификаты удостоверяющего центра», содержащие полный перечень установленных проверочных ключей.
Невозможно запустить приложение, не обладая правами администратора. Другой недостаток программы – некорректное отображение отдельных электронных подписей из-за проблем в работе с зашифрованными специальным кодом сертификатами.
Через Internet Explorer
В Internet Explorer для просмотра информации об ЭЦП действуют по инструкции:
- открыть страницу веб-обозревателя;
- в меню выбрать пункт «Свойства браузера»;
- во появившемся окне кликнуть на раздел «Содержание»;
- нажать на графу «Сертификаты».
Откроется вкладка, содержащая полный перечень установленных сертификационных файлов. Программное обеспечение сторонних поставщиков отображается отдельно.
Альтернативный вариант действий включает прохождение по такому пути: «Центр управления сетями и общим доступом» – «Свойства браузера» – «Содержание» – «Сертификаты».
Преимущество просмотра ключей через веб-обозреватель – отсутствие необходимости обладания правами администратора. Недостаток – невозможность удаления информации.
Через контроль управления
Разработчики программного обеспечения встроили в Windows специальный инструмент, позволяющий просматривать сертификационные файлы ЭЦП. Порядок действий:
- сочетанием клавиш Win+R и вводом «cmd» вызвать командную строку и нажать «Энтер»;
- после этого перейти по команде mmc в терминал;
- открыть вкладку «Файл»;
- в предлагаемом перечне выбрать «Добавить изолированную оснастку»;
- кликнуть на раздел «Сертификаты».
Для благополучного выполнения процедуры обязательно обладание правами администратора.
Способы добавления новой ЭЦП
Для добавления новой ЭЦП с помощью программы «КриптоПро» рекомендуется использовать способ установки через контейнер. Для этого нужно выйти из меню «Пуск» в панель управления, найти и открыть соответствующую утилиту. Во вкладке «Сервис» активировать опцию просмотра. Порядок дальнейших действий:
- кликнуть на «Обзор», нажав «Ок», подтвердить согласие после выбора из предлагаемого списка нужного контейнера;
- в новом окне нажать «Далее» и запустить функцию установки;
- согласиться с условиями, описанными в предложении системы.
Установить выбранный сертификат в последних версиях программного обеспечения можно кликом на одноименную кнопку в разделе «Общие». Место хранения загруженных ключей – папка «Личное». Альтернатива автоматическому выбору хранилища – ручной ввод адреса сертификационного файла ЭЦП.
При правильном выполнении процедуры Windows оповещает пользователя о благополучном завершении импорта. Новая электронно-цифровая подпись добавлена на жесткий диск персонального компьютера.
Альтернативный способ установки ЭЦП через меню личных сертификатов не заслуживает внимания ввиду редкого использования.
Данный материал является переводом оригинальной статьи «ATA Learning : Michael Soule : Manage Certs with Windows Certificate Manager and PowerShell».
Работа с сертификатами обычно является одной из тех дополнительных задач, которые вынужден брать на себя системный администратор Windows. Диспетчер Сертификатов Windows (Windows Certificate Manager) — это один из основных инструментов, который позволяет выполнять эту работу.
В этой статье мы рассмотрим работу с сертификатами применительно к операционной системе Windows. Если же вы хотите узнать больше о том, как работают сертификаты в целом, ознакомьтесь с сопутствующей статьей «Your Guide to X509 Certificates».
Понимание хранилищ сертификатов
В диспетчере сертификатов Windows все сертификаты находятся в логических хранилищах, называемых «хранилищами сертификатов». Хранилища сертификатов – это «корзины», в которых Windows хранит все сертификаты, которые в настоящее время установлены, и сертификат может находиться более чем в одном хранилище.
К сожалению, хранилища сертификатов — не самая интуитивно понятная концепция для работы. О том, как различать эти хранилища и как с ними работать, вы прочитаете ниже.
Каждое хранилище находится в Реестре Windows и в файловой системе. При работе с сертификатом в хранилище вы взаимодействуете с логическим хранилищем, не изменяя напрямую реестр или файловую систему. Этот более простой способ позволяет вам работать с одним объектом, в то время как Windows заботится о том, как представить этот объект на диске.
Иногда можно встретить хранилища сертификатов, называемые физическими или логическими хранилищами. Физические хранилища ссылаются на фактическую файловую систему или место в реестре, где хранятся разделы реестра и / или файл(ы). Логические хранилища — это динамические ссылки, которые ссылаются на одно или несколько физических хранилищ. С логическими хранилищами намного проще работать, чем с физическими хранилищами для наиболее распространенных случаев использования.
Windows хранит сертификаты в двух разных областях — в контексте пользователя и компьютера. Сертификат помещается в один из этих двух контекстов в зависимости от того, должен ли сертификат использоваться одним пользователем, несколькими пользователями или самим компьютером. В остальной части этой статьи сертификат в контексте пользователя и компьютера будет неофициально называться сертификатами пользователей и сертификатами компьютеров.
Сертификаты пользователей
Если вы хотите, чтобы сертификат использовался одним пользователем, то идеальным вариантом будет хранилище пользовательских сертификатов внутри Диспетчера сертификатов Windows. Это общий вариант использования процессов аутентификации на основе сертификатов, таких как проводной IEEE 802.1x.
Сертификаты пользователей находятся в профиле текущего пользователя и логически отображаются только в контексте этого пользователя. Сертификаты пользователей «сопоставлены» и уникальны для каждого пользователя даже в одних и тех же системах.
Компьютерные сертификаты
Если сертификат будет использоваться всеми пользователями компьютера или каким-либо системным процессом, его следует поместить в хранилище в контексте компьютера. Например, если сертификат будет использоваться на веб-сервере для шифрования связи для всех клиентов, размещение сертификата в контексте компьютера будет подходящим вариантом.
Вы увидите, что хранилище сертификатов компьютера логически сопоставлено для всех пользовательских контекстов. Это позволяет всем пользователям использовать сертификаты в хранилище сертификатов компьютера в зависимости от разрешений, настроенных для закрытого ключа.
Сертификаты компьютера находятся в кусте реестра локального компьютера и в подкаталогах ProgramData. Сертификаты пользователя находятся в кусте реестра текущего пользователя и в подкаталогах AppData. Ниже вы можете увидеть, где каждый тип хранилища находится в реестре и файловой системе.
Контекст | Путь реестра | Объяснение |
---|---|---|
User | HKEY_CURRENT_USER SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей |
User | HKEY_CURRENT_USER SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей, установленных объектами групповой политики Active Directory (AD) (GPO) |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище общедоступных ключей для всей машины |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftCryptographyServices |
Физическое хранилище ключей, связанных с определенной службой |
Computer | HKEY_LOCAL_MACHINE SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище открытых ключей для всей машины, установленных объектами групповой политики. |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftEnterpriseCertificates |
Физическое хранилище общедоступных ключей, установленных корпоративными контейнерами PKI в домене AD |
Контекст | Расположение файла | Объяснение |
---|---|---|
User | $env:APPDATAMicrosoftSystemCertificates | Физическое хранилище для пользовательских открытых ключей и указателей на закрытые ключи |
User | $env:APPDATAMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для конкретных пользователей |
Computer | $env:ProgramDataMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для всей машины |
Предварительные требования
В оставшейся части этой статьи вы найдете несколько примеров, демонстрирующих взаимодействие с хранилищами сертификатов Windows. Чтобы воспроизвести эти примеры, убедитесь, что выполняются следующие требования:
- Windows Vista, Windows Server 2008 или более новая операционная система. В показанных примерах используется Windows 10 Корпоративная версии 1903.
- Знакомство с PowerShell. Хотя это и не обязательно, этот язык будет использоваться для ссылки на сертификаты, где это необходимо. Все показанные примеры были созданы с помощью Windows PowerShell 5.1.
- Вам не потребуется устанавливать какие-либо специальные сертификаты, но использование самозаверяющего сертификата полезно.
Управление сертификатами в Windows
В Windows есть три основных способа управления сертификатами:
- Оснастка консоли управления Microsoft (MMC) сертификатов (certmgr.msc)
- PowerShell
- Инструмент командной строки certutil
В этой статье вы узнаете, как управлять сертификатами с помощью оснастки Certificates MMC и PowerShell. Если вы хотите узнать больше о том, как использовать certutil, ознакомьтесь с документацией Microsoft.
PowerShell против диспетчера сертификатов Windows
Поскольку в Windows можно управлять сертификатами несколькими способами, встаёт вопрос выбора, что лучше использовать — GUI (MMC) или командную строку с PowerShell.
Во-первых, рассмотрим жизненный цикл сертификата. Если вы собираетесь установить или удалить один сертификат только один раз, рассмотрите возможность использования MMC. Но если вы управляете несколькими сертификатами или выполняете одну и ту же задачу снова и снова, использование командной строки может оказаться правильным решением. Даже если вы не умеете писать сценарии PowerShell, вам стоит этому научиться, если у вас есть много разных сертификатов, которыми нужно управлять.
Давайте сначала посмотрим, как обнаружить сертификаты, установленные в Windows, с помощью диспетчера сертификатов и PowerShell.
Использование диспетчера сертификатов Windows (certmgr.msc)
Чтобы просмотреть сертификаты с помощью MMC, откройте Диспетчер сертификатов: откройте меню «Пуск» и введите certmgr.msc. Это вызовет Windows Certificates MMC. Это начальное представление предоставит обзор всех логических хранилищ, отображаемых в левом окне.
На снимке экрана ниже видно, что выбрано логическое хранилище доверенных корневых центров сертификации
Просмотр физических хранилищ
По умолчанию Диспетчер сертификатов Windows не отображает физические хранилища. Чтобы показать их, в верхнем меню оснастки выбирайте «View» > «Options«. Затем вы увидите варианты отображения физических хранилищ сертификатов. Включение этого параметра упрощает определение конкретных путей в Windows.
Теперь вы можете видеть, что дополнительные контейнеры показаны в примере логического хранилища доверенных корневых центров сертификации, показанном ранее. Сертификаты по-прежнему сгруппированы относительно их логических хранилищ, но теперь вы можете увидеть физическое хранилище «Реестр».
Проверка атрибутов в диспетчере сертификатов Windows
Есть много атрибутов сертификата, которые вы можете увидеть при просмотре их с помощью MMC. Например, вы, вероятно, захотите выбрать определенные сертификаты по их атрибутам. Самый простой способ сделать это — указать Serial Number сертификата или значение Thumbprint. Если сертификат был подписан центром сертификации (CA), при выдаче он будет иметь серийный номер. Thumbprint вычисляется каждый раз при просмотре сертификата.
Вы можете увидеть некоторые атрибуты сертификата, открыв его в MMC, как показано ниже.
Следует отметить одну важную особенность — встроенные закрытые ключи. Сертификаты в Windows также могут иметь соответствующий закрытый ключ. Эти закрытые ключи хранятся в соответствующих физических хранилищах в виде зашифрованных файлов.
Чтобы быстро отличать сертификаты с соответствующим закрытым ключом и без него, посмотрите на значок сертификата. В Диспетчере сертификатов Windows, если значок просто выглядит как лист бумаги с лентой, соответствующий закрытый ключ отсутствует. Если у сертификата есть закрытый ключ, вы увидите ключ на значке MMC, и ключ в нижней части вкладки «Общие» при открытии сертификата
Использование PowerShell по физическому хранилищу
Как и в случае с MMC, вы можете просматривать сертификаты и управлять ими с помощью PowerShell. Давайте сначала проверим сертификаты в их физических хранилищах (реестр и файловая система).
Используя PowerShell командлет Get-ChildItem, вы можете перечислить все ключи и значения внутри родительского пути в реестре. Приведенная ниже команда перечислит все сертификаты вошедшего в систему пользователя в логическом хранилище промежуточных центров сертификации.
Get-ChildItem -Path 'HKCU:SoftwareMicrosoftSystemCertificatesCACertificates'
Каждая запись в кусте реестра, который вы видите, будет соответствовать отпечатку сертификата доверенного центра сертификации и его сертификату в соответствующем свойстве. Вы можете увидеть пример вывода ниже.
Другое распространенное хранилище — это Personal store. Ваши сертификаты для этого хранилища находятся в файловой системе, а не в реестре. В следующих командах мы покажем эти различные физические пути и их цели.
Каждый файл в каталоге, возвращенный приведенной ниже командой, соответствует сертификату, установленному в личном хранилище текущего пользователя.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyCertificates
Каждый файл, возвращаемый в приведенной ниже команде, является ссылкой на объект для закрытого ключа, созданный поставщиком хранилища ключей (KSP). Имя файла соответствует идентификатору ключа субъекта сертификата. К каждому устанавливаемому вами закрытому ключу будет добавлен соответствующий файл.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyKeys
Каждый файл в каталоге, возвращаемый следующей командой, является уникальным контейнером для зашифрованного закрытого ключа, созданного KSP. Нет прямой связи между именем файла и сертификатом, но файл является целью указателя в предыдущей команде.
Get-ChildItem -Path $env:APPDATAMicrosoftCryptoKeys
Использование PowerShell по логическому хранилищу
Поскольку работа с сертификатами на их физических путях встречается редко, в остальных примерах вы будете работать с логическими хранилищами.
PowerShell может получить доступ к логическим хранилищам Windows с помощью PSDrive-объекта «Cert:«, который сопоставляет сертификаты с физическими хранилищами так же, как это делает MMC.
К сожалению, MMC и «Cert:» не маркируют логические хранилища одинаково. Ниже вы можете увидеть сравнительную таблицу общих хранилищ и их названий как в MMC, так и в «Cert:» PSDrive.
Cert: | Certificates MMC |
---|---|
My | Personal |
Remote Desktop | Remote Desktop |
Root | Trusted Root Certification Authorities |
CA | Intermediate Certification Authorities |
AuthRoot | Third-Party Root Certification Authorities |
TrustedPublisher | Trusted Publishers |
Trust | Enterprise Trust |
UserDS | Active Directory User Object |
Выбор сертификатов
Когда вы работаете с сертификатами, вам понадобится способ фильтрации и выбора сертификатов для выполнения определенных операций. В большинстве случаев вы будете фильтровать и выбирать сертификаты на основе значения определенного расширения.
Для следующих примеров вам нужно начать с перечисления всех установленных сертификатов в хранилище корневого ЦС.
Get-ChildItem -Path 'Cert:CurrentUserRoot'
Возвращенные объекты будут объектами сертификатов, которые вы можете использовать в следующих примерах.
Общие расширения уже доступны как свойства объектов сертификата. В приведенном ниже примере вы используете Get-Member для вывода списка всех свойств возвращаемых объектов.
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Get-Member -MemberType Properties
Как видим, некоторые из этих расширений, например «Issuer», помогают найти сертификат, который вы ищете. Расширения предоставляют информацию о сертификате, например, кому он выдан, для чего его можно использовать и любые ограничения на него.
В более сложных случаях использования вам может понадобиться найти сертификаты других расширений, таких как используемый шаблон сертификата. Сложность в том, что значения этих расширений возвращаются как массив целых чисел. Эти целые числа соответствуют содержимому в кодировке ASN.1.
Покажем пример взаимодействия с свойствами типа ScriptProperty. В приведенной ниже команде вы извлекаете Key Usages.
((Get-ChildItem -Path 'Cert:CurrentUserRoot' | Select -First 1).Extensions | Where-Object {$_.Oid.FriendlyName -eq 'Key Usage'}).format($true)
Новая часть, которую мы вводим в приведенной выше команде, — это метод форматирования, который выполняет декодирование ASN.1. Вы передаете ему логическое значение (например, $true), чтобы определить, хотим ли мы, чтобы возвращаемый объект был однострочным или многострочным.
Попробуем использовать значение Thumbprint из сертификата в приведенной ниже команде. Значение Thumbprint устанавливается как переменная PowerShell и используется для выбора конкретного сертификата в приведенных ниже командах.
$thumb = "cdd4eeae6000ac7f40c3802c171e30148030c072"
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Where-Object {$_.Thumbprint -eq $thumb}
Создание самозаверяющих (self-signed) сертификатов с помощью PowerShell
PowerShell может создавать самозаверяющие (self-signed) сертификаты с помощью командлета New-SelfSignedCertificate. Самозаверяющие сертификаты полезны для тестирования, поскольку они позволяют генерировать пару открытого и закрытого ключей без использования центра сертификации.
Теперь давайте создадим самозаверяющий сертификат в хранилищах текущего пользователя и локального компьютера, чтобы использовать его в примерах для следующих шагов.
В приведенном ниже примере PowerShell создает пару открытого и закрытого ключей, самозаверяющий сертификат и устанавливает их все в соответствующие хранилища сертификатов.
New-SelfSignedCertificate -Subject 'User-Test' -CertStoreLocation 'Cert:CurrentUserMy'
New-SelfSignedCertificate -Subject 'Computer-Test' -CertStoreLocation 'Cert:LocalMachineMy'
Использование самозаверяющих сертификатов для продуктивных сервисов не рекомендуется, поскольку не существует всех механизмов, основанных на доверии.
Импорт и экспорт сертификатов в MMC
Криптография с открытым ключом основана на широкой доступности открытого ключа. Учитывая это, вам нужны стандартные способы эффективного обмена сертификатами. Не менее важна безопасность ваших личных ключей. Хранение закрытых ключей на недоступных носителях или с материалами для аварийного восстановления — обычная практика для определенных закрытых ключей.
Оба они требуют способов хранения этих криптографических объектов в стандартных форматах. Экспорт предоставляет функции для сохранения этих объектов и обеспечения использования широко распространенных стандартных форматов файлов. Импорт позволяет вам переносить криптографические объекты в операционные системы Windows.
Экспорт сертификатов из MMC относительно прост. Чтобы экспортировать сертификат без закрытого ключа, щелкните сертификат в MMC, выберите меню «Все задачи», а затем «Экспорт».
Во время экспорта вам будет предложено указать формат файла, как показано ниже. Наиболее распространены варианты кодирования — DER или Base-64
Экспорт закрытых ключей
Чтобы экспортировать сертификат с соответствующим закрытым ключом, вы должны соответствовать двум критериям:
- Вошедшая в систему учетная запись должна иметь разрешение на закрытый ключ (только для сертификатов компьютеров);
- Закрытый ключ должен быть помечен как экспортируемый.
Чтобы проверить разрешения для закрытых ключей локального компьютера, вы можете выбрать сертификат с закрытым ключом, выбрать «Все задачи» и «Управление закрытыми ключами» в MMC «Сертификаты». В открывшемся диалоговом окне отображаются записи управления доступом для закрытых ключей.
Когда выше обозначенные условия выполнены, вы можете выбрать сертификат, щелкнуть «Все задачи», а затем «Экспорт», как если бы вы использовали сертификат только с открытым ключом. При экспорте теперь у вас должна присутствовать возможность выбора экспорта закрытого ключа («Yes, export the private key»), как показано ниже.
Когда вы экспортируете закрытый ключ в Windows, вы можете сохранить файл только как PFX. Этот и другие типы файлов и форматы кодирования подробно описаны в этом посте.
Для остальных параметров, отображаемых в мастере экспорта, вы можете использовать значения по умолчанию. В таблице ниже приводится краткое изложение каждого из них.
Настройка | Описание |
---|---|
Including all certificates in the certification path if possible | Помогает с переносимостью эмитентов сертификатов и включает все соответствующие открытые ключи в PFX. |
Delete the private key if the export is successful | Удаляет закрытый ключ из файла и имеет несколько распространенных вариантов использования, но одним из примеров является проверка доступа к закрытым ключам. |
Export all extended properties | Будет включать любые расширения в текущем сертификате, они относятся к сертификатам [конкретные настройки] для интерфейсов Windows. |
Enable certificate privacy | Обычно в экспортируемом PFX-файле шифруется только закрытый ключ, этот параметр шифрует все содержимое PFX-файла. |
Group or user names | Вы можете использовать участника безопасности группы или пользователя из Active Directory для шифрования содержимого файла PFX, но пароль является наиболее переносимым вариантом для устаревших систем или компьютеров, не присоединенных к тому же домену. |
Импорт сертификатов
Функция импорта одинакова для всех поддерживаемых типов файлов сертификатов. Единственная разница в том, что если файл содержит закрытый ключ, вы можете «Отметить этот ключ как экспортируемый», о чем вы узнаете подробнее ниже. Windows будет использовать мастер импорта сертификатов.
При использовании мастера импорта сертификатов для PFX вам потребуется указать пароль, используемый для шифрования закрытого ключа. Вот еще один обзор вариантов импорта.
Настройка | Описание |
---|---|
Enable strong private key protection | Требуется пароль для каждого доступа к закрытому ключу. Будьте осторожны с новыми функциями, поскольку они не будут поддерживаться во всех программах. |
Mark this key as exportable | Вы должны стараться избегать использования этого параметра в любой конечной системе, закрытые ключи следует рассматривать так же, как и хранение паролей. |
Protect private key using [virtualization-based security] | Этот параметр обеспечивает дополнительные функции безопасности для защиты закрытых ключей от сложных атак вредоносного ПО. |
Include all extended properties | Относится к тем же настройкам Windows, что и при экспорте. |
Сертификаты для подписи кода PowerShell — хороший вариант использования надежной защиты закрытого ключа.
С автоматическим размещением сертификатов следует проявлять осторожность. Скорее всего, вы получите наилучшие результаты, выбрав хранилище сертификатов вручную.
Импорт и экспорт сертификатов в PowerShell
Теперь с помощью PowerShell экспортируйте один из самозаверяющих сертификатов, которые вы создали ранее. В этом примере вы выбираете сертификат в личном логическом хранилище CurrentUser, который был самозаверяющим.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Теперь, когда вы выбрали сертификат, вы можете использовать команду Export-Certificate, чтобы сохранить файл в кодировке DER, используя команду ниже.
Export-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -Cert $certificate
Теперь давайте посмотрим на экспорт закрытого ключа. Ниже вы проверяете, что у выбранного сертификата есть закрытый ключ. Если он не возвращает True, то команда Get-Item, скорее всего, выбрала неправильный сертификат.
$certificate.HasPrivateKey
Ниже вы установите пароль, который будет использоваться для шифрования закрытого ключа. Затем экспортируйте выбранный сертификат в файл PFX и используйте пароль, который вы ввели ранее, чтобы зашифровать файл.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -FilePath $env:USERPROFILEDesktopcertificate.pfx -Password $pfxPassword -Cert $certificate
В случае, если необходимо выполнить импорт, как и при экспорте, есть две команды. Одна команда для импорта сертификатов и одна для импорта файлов PFX.
Ниже команда Import-Certificate импортирует файл в формате DER, который вы экспортировали ранее, в личное хранилище текущего пользователя.
Import-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -CertStoreLocation 'Cert:CurrentUserMy'
Допустим, вы тоже хотите установить закрытый ключ этого сертификата.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -Password $pfxPassword -CertStoreLocation 'Cert:CurrentUserMy' -FilePath $env:USERPROFILEDesktopcertificate.pfx
Имейте в виду, что пароль должен быть защищенной строкой. Кроме того, если вы импортируете в хранилище локального компьютера (например, «Cert:LocalMachine«), вам нужно будет запустить команду из командной строки администратора с повышенными привилегиями.
В приведенном выше примере вы также используете параметр -Exportable с командой, отмечая закрытый ключ как экспортируемый в будущем. По умолчанию (без указания этого параметра) экспорт не используется. Экспортируемые закрытые ключи – отельный аспект информационной безопасности, заслуживающий отдельного внимания.
Удаление сертификатов с помощью PowerShell
При удалении сертификатов помните, что понятие «Корзина Windows» в этом случае отсутствует. Как только вы удалите сертификат, он исчезнет! Это означает, что очень важно подтвердить, что вы удаляете правильный сертификат, путем проверки уникального идентификатора, такого как серийный номер или значение расширения Thumbprint.
Как и выше, в приведенной ниже команде мы выбираем самозаверяющий сертификат из личного хранилища текущего пользователя.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Ниже вы можете увидеть свойства отпечатка, серийного номера и темы для выбранного сертификата, чтобы убедиться, что это именно тот сертификат, который вы собираетесь выбрать.
$certificate.Thumbprint
$certificate.SerialNumber
$certificate.Subject
Убедитесь, что вы выбрали правильный сертификат, который собираетесь удалить.
Приведенная ниже команда удаляет все выбранные объекты сертификата, используйте с осторожностью! Передав объект $certificate через конвейер в командлет Remove-Item в приведенной ниже команде, вы удалите все содержимое сертификата без каких-либо запросов на проверку.
$certificate | Remove-Item
Резюме
На протяжении всей этой статьи вы работали с сертификатами в Windows, изучая, как получить к ним доступ, и некоторые инструменты, которые можно использовать при работе с ними. По этой теме можно изучить гораздо больше, в том числе о том, как связать установленные сертификаты с конкретными службами или даже о том, как реализовать инфраструктуру закрытого открытого ключа (PKI) путем развертывания собственных центров сертификации (CA).
Добрый день! На сервере истек SSL сертификат, но никак его не могу найти. Искал в IIS и certlm, пусто. Единстенная инфа которая есть по данному сертификату это CN=56844bc3-ec1c… и все
-
Вопрос заданболее двух лет назад
-
723 просмотра
Если это сертификат сервера, открываете Win+R набираете mmc и добавляете оснастку Certificate, для Local PC. Сертификаты для IIS обычно лежат в Personal.
Пригласить эксперта
Оснастка «Сертификаты», раздел «Локальный компьютер» (не «Пользователь»!). Сертификат сервера должен находиться в папке «Личное».
Но обычно в этом нет необходимости — сертификат перевыпускается через IIS, если пользуетесь.
-
Показать ещё
Загружается…
05 февр. 2023, в 21:58
2000 руб./за проект
05 февр. 2023, в 21:43
2000 руб./за проект
05 февр. 2023, в 21:04
500000 руб./за проект
Минуточку внимания
Если вы задаётесь вопросом, в какой папке хранятся сертификаты в Windows, то правильный ответ в том, что в Windows сертификаты хранятся в реестре. Причём они записаны в виде бессмысленных бинарных данных. Чуть ниже будут перечислены ветки реестра, где размещены сертификаты, а пока давайте познакомимся с программой для просмотра и управления сертификатами в Windows.
В Windows просмотр и управление доверенными корневыми сертификатами осуществляется в программе Менеджер Сертификатов.
Чтобы открыть Менеджер Сертификатов нажмите Win+r, введите в открывшееся поле и нажмите Enter:
certmgr.msc
Перейдите в раздел «Доверенные корневые центры сертификации» → «Сертификаты»:
Здесь для каждого сертификата вы можете просматривать свойства, экспортировать и удалять.
Просмотр сертификатов в PowerShell
Чтобы просмотреть список сертификатов с помощью PowerShell:
Get-ChildItem cert:LocalMachineroot | format-list
Чтобы найти определённый сертификат выполните команду вида (замените «HackWare» на часть искомого имени в поле Subject):
Get-ChildItem cert:LocalMachineroot | Where {$_.Subject -Match "HackWare"} | format-list
Теперь рассмотрим, где физически храняться корневые CA сертификаты в Windows. Сертификаты хранятся в реестре Windows в следующих ветках:
Сертификаты уровня пользователей:
- HKEY_CURRENT_USERSoftwareMicrosoftSystemCertificates — содержит настройки сертификатов для текущего пользователя
- HKEY_CURRENT_USERSoftwarePoliciesMicrosoftSystemCertificates — как и предыдущее расположение, но это соответствует сертификатам пользователей, развёрнутым объектом групповой политики (GPO (Group Policy))
- HKEY_USERSSID-UserSoftwareMicrosoftSystemCertificates — соответствует настройке определённых пользовательских сертификатов. У каждого пользователя есть своя ветка в реестре с SID (идентификатор безопасности).
Сертификаты уровня компьютера:
- HKEY_LOCAL_MACHINESoftwareMicrosoftSystemCertificates — содержит настройки для всех пользователей компьютера
- HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftSystemCertificates — как и предыдущее расположение, но это соответствует сертификатам компьютера, развёрнутым объектом групповой политики (GPO (Group Policy))
Сертификаты уровня служб:
- HKEY_LOCAL_MACHINESoftwareMicrosoftCryptographyServicesServiceNameSystemCertificates — содержит настройки сертификатов для всех служб компьютера
Сертификаты уровня Active Directory:
- HKEY_LOCAL_MACHINESoftwareMicrosoftEnterpriseCertificates — сертификаты, выданные на уровне Active Directory.
И есть несколько папок и файлов, соответствующих хранилищу сертификатов Windows. Папки скрыты, а открытый и закрытый ключи расположены в разных папках.
Пользовательские сертификаты (файлы):
- %APPDATA%MicrosoftSystemCertificatesMyCertificates
- %USERPROFILE%AppDataRoamingMicrosoftCryptoRSASID
- %USERPROFILE%AppDataRoamingMicrosoftCredentials
- %USERPROFILE%AppDataRoamingMicrosoftProtectSID
Компьютерные сертификаты (файлы):
- C:ProgramDataMicrosoftCryptoRSAMachineKeys
Рассмотрим теперь где хранятся корневые CA сертификаты веб-браузеров.
Google Chrome
Использует общесистемные доверенные корневые центры сертификации.
Чтобы перейти к списку сертификатов из веб браузера:
Настройки → Приватность и Защита → Безопасность → Управление сертификатами → Просмотр сертификатов → Центры сертификации → Доверенные корневые центры сертификации:
Opera
Чтобы перейти к списку сертификатов из веб браузера: Настройки → Перейти к настройкам браузера → Дополнительно → Безопасность → Ещё → Настроить сертификаты → Доверенные корневые центры сертификации:
Firefox
Использует NSS.
Приватность и Защита → Сертификаты → Просмотр сертификатов → Центры сертификации:
Для глубокого понимания OpenSSL смотрите также полное руководство: «OpenSSL: принципы работы, создание сертификатов, аудит».
Связанные статьи:
- Как добавить сертификат Центра Сертификации (CA) в доверенные в Windows (99.4%)
- Как включить DNS через HTTPS (DoH) в веб-браузерах (58%)
- Как в Windows 11 поменять веб-браузер по умолчанию (52.5%)
- Почему Windows 10 использует так много трафика и как это исправить (50.8%)
- Программное обеспечение для компьютерной криминалистики на Windows (50.8%)
- Выбор профиля захвата для интерактивного моделирования программного обеспечения в ActivePresenter (RANDOM — 50%)
Содержание
- Введение
- Что такое сертификат PFX
- Логические хранилища
- Модуль PKI
- Поиск и выбор сертификата
- Создание сертификата
- Установка сертификата pfx
- Добавление сертификата в список доверенных
- Проверка наличия дубликата сертификата
- Экспорт и импорт сертификата
- Экспорт сертификата pfx
- Импорт сертификата pfx
- Как экспортировать сертификат cer из pfx
- Удаление сертификата
- Удаление с помощью thumbprint
- Поиск и удаление сертификата с помощью сопоставления значений
- Диспетчер сертификатов Windows
Введение
Сертификат – это контейнер для открытого ключа. Он включает в себя такую информацию как значение открытого ключа, имя сервера или пользователя, некоторую дополнительную информацию о сервере или пользователе, а также содержит электронную подпись, сформированную издающим центром сертификации (ЦС). Ранее мы уже писали о работе с сертификатами pfx с помощью openssl, теперь рассмотрим использование встроенных средств, а именно powershell.
Что такое сертификат PFX
Файл .pfx, который не следует путать с .cer, представляет собой архив PKCS#12; это пакет, который может содержать несколько объектов с дополнительной защитой паролем. Обычно он содержит сертификат (возможно, со своим набором цепочки сертификатов верхнеуровневых УЦ) и соответствующий закрытый ключ. В то время как PFX может содержать в себе несколько сертификатов, файл .cer содержит один единственный сертификат без пароля и закрытого ключа. В Windows все сертификаты находятся в логических местах хранения, называемых хранилищами сертификатов.
Одним из самых распространенных областей применения сертификатов PFX является подпись кода (code signing). Также, в случае защиты надежным паролем pfx можно передавать по открытым каналам связи.
Логические хранилища
Логические хранилища – это виртуальные месторасположения, в которых которых локально храняться сертификаты как для пользователя так и для компьютера. Powershell использует Cert PSDrive для сопоставления сертификатов с физическими хранилищами. Наименование логических хранилищ Certificates Microsoft Management Console (MMC) отличается от маркировки хранилища Cert PSDrive. В таблице ниже показано сравнение между ними:
CERT: | CERTIFICATES MMC |
---|---|
My | Личные |
Remote Desktop | Удаленный рабочий стол |
Root | Доверенные корневые центры сертификации |
CA | Промежуточные центры сертификации |
AuthRoot | Сторонние корневые центры сертификации |
TrustedPublisher | Доверенные издатели |
Trust | Доверительные отношения в предприятии |
UserDS | Объект пользователя Active Directory |
Модуль PKI
Утилита MakeCert.exe, входящая в состав Microsoft .NET Framework SDK и Microsoft Windows SDK, используется для создания самоподписанного сертификата. В системе, где не установлен Windows SDK, для управления сертификатами используются команды модуля Powershell PKI.
Чтобы перечислить все команды, доступные в модуле PKI, выполните следующую команду:
Get-Command -Module PKI
Командлеты, используемые в этой статье, описаны ниже:
Export-PfxCertificate
Командлет Export-PfxCertificate экспортирует сертификат или объект PFXData в файл Personal Information Exchange (PFX). По умолчанию экспортируются расширенные свойства и вся цепочка.
Get-Certificate
КомандлетGet-Certificate можно использовать для отправки запроса на сертификат и установки полученного сертификата, установки сертификата из запроса на сертификат, а также для регистрации в службе каталогов протокола LDAP.
Get-PfxData
Командлет Get-PfxData извлекает содержимое файла Personal Information Exchange (PFX) в структуру, содержащую сертификат конечного субъекта, любые промежуточные и корневые сертификаты.
Import-PfxCertificate
КомандлетImport-PfxCertificate импортирует сертификаты и закрытые ключи из файла PFX в локальное хранилище.
New-SelfSignedCertificate
Командлет New-SelfSignedCertificate создает самоподписанный сертификат. С помощью параметра CloneCert указанный сертификат может быть создан на основе существующего сертификата с копированием всех параметров из оригинального сертификата, за исключением открытого ключа.
Поиск и выбор сертификата
В Powershell Cert: PSDrive используется для вывода списка сертификатов в определенном хранилище. Чтобы вывести оба хранилища в Cert: PSDrive, выполните следующую команду:
Get-ChildItem -Path Cert:
Будут показаны месторасположения сертификатов для CurrentUser и LocalMachine. Чтобы перечислить сертификаты для доверенных корневых центров сертификации LocalMachine, выполните следующую команду:
Get-ChildItem -Path Cert:LocalMachineRoot
Возвращаемый объект будет представлять собой сертификаты, которые можно изменить, удалить или экспортировать.
Команду Get-ChildItem можно комбинировать с Where-Object для поиска конкретных сертификатов. Приведенная ниже команда найдет сертификат, предположительно выданный Microsoft, проверяя свойство Subject сертификатов:
Get-ChildItem -Path Cert:LocalMachineRoot | Where-Object {$_.Subject.Contains("Microsoft")}
У выведенных в сертификатов часть значения Subject будет содержать Microsoft.
Создание сертификата
Для создания сертификата необходимо указать значения -DnsName (имя DNS-сервера) или -Subject и -CertStoreLocation (хранилище сертификатов, в которое будет помещен созданный сертификат). Чтобы создать сертификат для DNS itsecforu-test.com и установить его в список Личные сертификаты в системе, выполните следующую команду:
New-SelfSignedCertificate -DnsNameitsecforu-test.com -CertStoreLocation cert:CurrentUserMy
Команда генерирует новый сертификат и устанавливает его в личное хранилище пользователя. При открытии certmgr.msc ( certlm.msc – для локального компьютера соответственно ) сертификат появится в разделе Personal. В выводе будут показаны сведения о только что созданном сертификате, включая его отпечаток:
По умолчанию самоподписанный сертификат генерируется со следующими настройками:
- Криптографический алгоритм: RSA;
- Длина ключа: 2048 бит;
- Допустимое использование ключа: Проверка подлинност клиента и Проверка подлинности сервера;
- Сертификат может быть использован для цифровой подписи, шифрования ключей;
- Срок действия: 1 год.
Срок действия сгенерированного сертификата ограничен одним годом. Для увеличения срока действия сертификата необходимо указать соответствующий атрибут Date с увеличенным значением срока действия с помощью ключа -notafter. Чтобы выпустить сертификат на 5 лет, выполните приведенную ниже команду:
$expiry_year = (Get-Date).AddYears(5)
New-SelfSignedCertificate -DnsName itsecforu-test.com -notafter $expiry_year -CertStoreLocation Cert:CurrentUserMy
Новые сертификаты могут быть созданы только в личных хранилищах Cert:LocalMachineMy или Cert:CurrentUserMy. Выполните приведенную ниже команду help для просмотра всех остальных параметров, принимаемых командой New-SelfSignedCertificate:
help New-SelfSignedCertificate -Full
Установка сертификата pfx
Сертификат может быть установлен в различные места хранения, каждое место хранения имеет свое определенное назначение, но в этой статье мы будем устанавливать в четыре места Cert:CurrentUserMy, Cert:LocalMachineMy, Cert:CurrentUserRoot и Cert:LocalMachineRoot. Расположение My является личным хранилищем для ненадежных приложений, а Root – хранилищем для доверенных сертификатов.
Команда, используемая для установки общего сертификата, отличается от команды для установки сертификата PFX. Для установки сертификата pfx используется команда Powershell Import-PfxCertificate.
Чтобы установить сертификат PFX в личное хранилище текущего пользователя, используйте следующую команду:
Import-PfxCertificate -FilePath ./itsecforu.pfx -CertStoreLocation Cert:CurrentUserMy -Password P@sw0rd
Для установки в личное местоположение системы измените местоположение хранилища в команде выше с Cert:CurrentUserMy на Cert:LocalMachineMy.
Чтобы установить PFX сертификат в доверенное хранилище текущего пользователя, используйте следующую команду:
Import-PfxCertificate -FilePath ./itsecforu.pfx -CertStoreLocation Cert:CurrentUserRoot -Password P@sw0rd
При установке в корневое расположение текущего пользователя появится диалоговое окно для подтверждения установки сертификата, но при установке в системное корневое расположение никакого диалога не появится. Для установки в системное доверенное место измените расположение хранилища в команде выше с Cert:CurrentUserRoot на Cert:LocalMachineRoot.
Добавление сертификата в список доверенных
Недоверенный сертификат гораздо опаснее и подозрительнее, чем отсутствие сертификата вообще, поэтому важно добавить наш сертификат в доверенные корневые сертификаты.
Сертификаты могут быть созданы только в хранилище Cert:LocalMachineMy или Cert:CurrentUserMy . Поскольку любой сертификат в этом месте по умолчанию помечен как недоверенный, чтобы сделать его легитимным, необходимо его переместить из Cert:LocalMachineMy или Cert:CurrentUserMy в Cert:LocalMachineRoot и Cert:CurrentUserRoot соответственно.
Move-Item -Path$cert-Destination "Cert:LocalMachineRoot"
Проверка наличия дубликата сертификата
Чтобы избежать повторного добавления уже существующего сертификата в хранилище сертификатов, перед добавлением нового сертификата с тем же значением Subject следует проверить и удалить уже имеющийся сертификат. Powershell автоматически создает путь виртуального диска для метки cert: и ведет себя как обычный каталог. В приведенном ниже фрагменте проверяется путь cert:LocalMachineMy хранилища сертификатов, чтобы найти сертификат по значению Subject.
$cert_name = "itsecforu-test.com" ForEach ($cert in (ls cert:CurrentUserMy)) { If ($cert.Subject -eq "CN=$cert_name") { //the certificate can be deleted or edited in here } }
Экспорт и импорт сертификата
Команды для импорта и экспорта pfx-сертификата отличаются от команд для экспорта и импорта обычного сертификата. Команда Import-PfxCertificate используется для импорта запароленного сертификата pfx, а команда Export-PfxCertificate – для экспорта сертификата из места хранения в новое местоположение файла.
Экспорт сертификата pfx
Для экспорта сертификата pfx необходим пароль для шифрования закрытого ключа. В приведенном ниже примере мы используем значение Subject для поиска экспортируемого сертификата, выбрав сертификат, значение Subject которого равно itsecforu-test.com
$certificate = Get-ChildItem -Path Cert:CurrentUserMy | Where-Object {$_.Subject -match "itsecforu-test.com"} После выбора сертификата его можно экспортировать из места хранения в папку с помощью приведенной ниже команды: $pass= "Qwerty123" | ConvertTo-SecureString -AsPlainText -Force Export-PfxCertificate -Cert $certificate -FilePath $env:USERPROFILEDocumentsitsecforu-test.com.pfx -Password $pass
Импорт сертификата pfx
Скаченные или экспортированные сертификаты pfx можно установить с помощью команды Import-PfxCertificate. Для импорта требуется пароль для сертификата и местоположение.
Команда ниже импортирует сертификат pfx, который мы экспортировали ранее:
$password= "Qwerty123" | ConvertTo-SecureString -AsPlainText -Force Import-PfxCertificate -Exportable -Password $password -CertStoreLocation Cert:CurrentUserMy -FilePath $env:USERPROFILEDocumentsitsecforu-test.com.pfx
Параметр -Exportable отмечает закрытый ключ как экспортируемый.
Как экспортировать сертификат cer из pfx
Для экспорта сертификата из файла pfx используется комбинированная команда Get-PfxCertificate и Export-Certificate. Get-PfxCertificate используется для поиска сертификата pfx, а Export-Certificate – для экспорта указанного сертификата в FilePath. Требуется ввод пароля от pfx контейнера Ниже приведенная команда экспортирует сертификат в кодировке DER (двоичный) из файла pfx.
Get-PfxCertificate -FilePath "C:certsTest.pfx" | Export-Certificate -FilePath "C:certsTest.cer" -Type CERT
Обратите внимание на параметр-Type, который используется для указания типа экспортируемого сертификата, в данном примере это сертификат CERT в кодировке DER (двоичный). Существуют и другие типы, они перечислены ниже.
-Type <CertType> Указывает тип выходного файла для экспорта сертификатов следующим образом. -- SST: формат файла Microsoft serialized certificate store (.sst), который может содержать один или несколько сертификатов. Это значение по умолчанию для нескольких сертификатов. -- CERT: формат файла .cer, который содержит один сертификат в DER-кодировке. Это значение по умолчанию для одного сертификата. -- P7B: формат файла PKCS#7, который может содержать один или несколько сертификатов.
Удаление сертификата
Для удаления сертификата можно использовать команду Remove-Item в Powershell. Перед удалением сертификата необходимо узнать его значение thumbprint (отпечатка) или определить сам объект сертификата.
Удаление с помощью thumbprint
В приведенном ниже фрагменте для удаления используется отпечаток сертификата…
Get-ChildItem Cert:CurrentUserMy7da4d700318ee2a08f96aab9bc71990ca6376053| Remove-Item
Поиск и удаление сертификата с помощью сопоставления значений
Сертификат можно искать в хранилище с помощью команды Where-Object, которая принимает условный оператор, соответствующий искомому сертификату.
Get-ChildItem Cert:CurrentUserMy | Where-Object { $_.Subject -match 'itsecforu-test.com' } | Remove-Item
Обратите внимание, что мы используем значения поля сертификата Subject , другие возможные параметры – Thumbprint и SerialNumber.
Диспетчер сертификатов Windows
Диспетчер сертификатов Windows (certmgr.msc) – это приложение с графическим интерфейсом Windows для управления сертификатами. Найдите certmgr в меню Пуск, чтобы открыть Windows Certificates MMC или введите certmgr.msc в командной строке. Вид консоли предоставляет собой обзор всех локальных хранилищ.
Сертификаты можно устанавливать, удалять, импортировать и экспортировать из диспетчера сертификатов Windows.
Участие в торгах, сдача отчетности, маркировка товаров невозможны без электронной подписи (ЭП или ЭЦП), которая заменяет реальную подпись человека при дистанционной подготовке документов.
Если вы еще не получили электронную подпись, оформите ЭП в удостоверяющем центре, который прошел аккредитацию. В УЦ Контура есть подписи для сотрудников и руководителей, торгов, отчетности и личных дел.
Заказать
Чаще всего владельцы электронной подписи сталкиваются с сертификатом, когда подписывают контракт на торговой площадке или отчет для налоговой. Тогда система, где подписывается документ, предлагает «Выбрать сертификат», которым будет подписан документ.
Сертификат — это электронное свидетельство, которое подтверждает, кому ЭП принадлежит. В нем содержатся сведения:
- Срок действия;
- Статус: действителен или нет;
- Кому он выдан и каким удостоверяющим центром (УЦ);
- Наличие закрытого ключа;
- Значение открытого ключа;
- Уникальный номер сертификата.
Сертификат получают в удостоверяющем центре. Для этого нужно обратиться в УЦ, сообщить свои данные, показать паспорт и подтвердить личность. Сотрудники УЦ сообщат, как пользователю сгенерировать ключи электронной подписи, а потом выдадут на них сертификат — он подтвердит, что ключи принадлежат вам и позволит использовать их для подписания документов. Вы сможете записать его на токен (защищенный носитель, похожий на флешку) или сохранить на компьютер.
Файл сертификата имеет расширение.cer. Иконка файла — выглядит как конверт с ключом и печатью.
Как выглядит файл с сертификатом ЭП
Сертификат, открытый и закрытый ключи хранятся вместе на внешнем носителе или в компьютере. Вместе эти три компонента обеспечивают работу ЭП. Сертификат без ключей не позволит подписать электронный документ.
Повреждение или удаление файлов приведет к необходимости перевыпуска ЭП.
Тариф «Марафон» от Удостоверяющего центра Контура позволяет перевыпускать сертификат столько, сколько нужно без доплат. Также тариф избавляет от ежегодной подготовки документов для новой ЭП
Заказать
При первом получении сертификата и ключей ЭП пользователь выбирает, на каком носителе будет их хранить. Это возможно, если правила системы или УЦ, где он получает сертификат, разрешает выбрать разные носители.
Всего есть четыре возможных носителя для сертификата:
- Токен — специальный защищенный носитель, который внешне похож на флешку. Содержимое носителя защищено пин-кодом, поэтому просто так файл с закрытым ключом с токена не скопировать. Купить такой носитель можно в УЦ или у производителя токенов.
- Флешка — обычный носитель, на нем контейнер с сертификатом и ключами будет храниться, как папка с файлами.
- Обычная папка на компьютере — или ее также называют «директория».
- Реестр компьютера — база с информацией о настройках и параметрах компьютера.
В дальнейшем пользователь может сделать копию ключа и сертификата и записать их на второй носитель. Это возможно, если в сертификате нет запрета на копирование. Например, не удастся скопировать сертификат УЦ ФНС или сертификат для ЕГАИС Алкоголь, так как они защищены от копирования. При этом другие квалифицированные сертификаты — например, подпись для торгов или налоговой отчетности — можно дублировать и хранить на нескольких носителях.
Подробнее разберем хранение сертификата на компьютере: в папке (директории) и в реестре.
Папка в операционной системе
При сохранении сертификата на компьютере программа КриптоПро CSP сама определяет конкретную папку, куда запишет ключи и сертификат. Выбрать другой путь сохранения файла пользователю не удастся.
В этом случае файл закрытого ключа проще найти и скопировать — это будет обычная папка с файлами. Путь к папке будет таким:
- в Windows — %localappdata%/crypto prо;
- в Linux, Unix, MacOS — /var/opt/cprocsp/keys/{username}, где username — это название учетной записи.
Реестр
Реестр компьютера — это список настроек и параметров ПК. Увидеть реестр компьютера можно, набрав в строке поиска на панели «Пуск» — «regedit». Поиск позволит открыть служебную программу — редактора реестра.
Путь к сертификату через реестр
Найти сертификат на ПК можно несколькими путями:
- с помощью программы КриптоПро CSP;
- программы CertMgr;
- браузера;
- консоли MMC.
Все четыре способа позволят открыть сертификат, выгрузить его в виде файла, просмотреть сведения об ЭП, а при необходимости и удалить сертификат. Когда не нужно удалять сертификат.
В КриптоПро CSP и браузере также можно скопировать сертификат вместе с закрытым ключом, в программе CertMgr и консоли ММС — только файл сертификата. Для такого копирования сертификата и его ключа рекомендуем использовать сервис копирования сертификатов на Установочном диске, где пользователю не требуется детально погружаться в механизмы работы ЭП.
Поиск сертификата через КриптоПро CSP
КриптоПро CSP — это программа для работы с электронной подписью. Она есть у большинства пользователей, работающих с квалифицированной ЭП.
Чтобы найти сертификат через КриптоПро CSP на ПК:
- Открываем программу: Пуск → Все программы — КриптоПро CSP.
- В программе переходим по вкладкам: Сертификаты пользователя → Личное → Сертификаты.
- Выбираем нужный сертификат и делаем с ним то, что планировали: смотрим информацию в сертификате, экспортируем его или удаляем.
Поиск сертификата через КриптоПро CSP
После открытия сертификата через КриптоПро CSP, вкладка с ним появится в меню «Пуск». В следующий раз сертификат можно будет открыть быстрее — сразу из этого меню.
При удалении сертификата через КриптоПро CSP, программа сотрет с компьютера все компоненты ЭП вместе с корневым сертификатом УЦ. После этого восстановить их невозможно. Что такое корневой сертификат.
Поиск сертификата через CertMgr
CertMgr — это программа для работы с сертификатами на ПК. Также через программу можно посмотреть справочную информацию о консоли управления Microsoft Management Console (MMC) и о том, как настроить удаленное подключение к компьютеру.
Поиск сертификатов на ПК с помощью CertMgr аналогичен поиску через КриптоПро CSP:
- Открываем меню «Пуск» и в поисковой строке пишем название диспетчера сертификатов — «CertMgr», запускаем программу CertMgr.
- В программе — выбираем папку «Личное», тип объекта — «Сертификаты». Диспетчер выдаст перечень сертификатов, которые установлены на компьютер.
- Выбираем из списка нужный сертификат и открываем его.
Поиск сертификата через CertMgr
Поиск сертификата через Internet Explorer
Internet Explorer — один из наиболее популярных браузеров для работы с сертификатами ЭП. Долгое время только его можно было использовать для сертификатов. Другие браузеры начали поддерживать работу сертификатов позже — в 2015-2017 годах. Но до сих пор использовать сертификат на некоторых ресурсах можно только в Internet Explorer.
Как найти сертификат с помощью браузера Internet Explorer:
- Открываем браузер и нажимаем: Настройки → Свойства браузера → Содержание → Сертификаты
- Появится окно с сертификатами, установленными на компьютер. Можно будет просмотреть информацию о них.
Поиск сертификата через Internet Explorer
Полностью удалить сертификат из браузера Internet Explorer невозможно — только открытый ключ. Поэтому если сертификат удалили из браузера по ошибке, то его можно восстановить с помощью программы КриптоПро CSP.
В браузере Chrome и основанных на нем браузерах (Яндекс.Браузер, Opera) сертификаты также можно найти:
Настройки браузера → Приватность и защита → Безопасность и защита → Сертификаты → Просмотр сертификатов.
В браузере Firefox найти сертификат не получится. Этот браузер не работает с российскими сертификатами и отечественными криптографическими алгоритмами.
Поиск сертификата через консоль управления
Консоль MMC (Microsoft Management Console) — это место для хранения инструментов и программ, которые предназначены для обслуживания компьютера. Эти средства называются оснастками и служат для управления оборудованием, программным обеспечением и сетевыми компонентами Windows.
Что именно находится в консоли, выбирает пользователь. Перед тем, как пользоваться инструментами консоли, сначала их нужно туда добавить, то есть «Добавить оснастку».
Рассказываем, как запустить консоль и добавить оснастку:
- Открываем меню «Пуск» и в поисковой строке указываем — «MMC».
- В результатах поиска выбираем консоль управления Windows MMC и запускаем ее.
- Нажимаем на вкладку «Файл» и выбираем функцию «Добавить или удалить оснастку». Система выдаст список доступных оснасток.
- Выбираем строку «Сертификаты» в перечне оснасток и нажимаем кнопку «Добавить».
- Указываем, для какой учетной записи выбираем оснастку — «Моей учетной записи пользователя» и нажимаем «Готово». После этого список сертификатов перейдет из перечня доступных оснасток в окне слева в перечень выбранных оснасток в окне справа.
- Подтверждаем выбор: в окне выбранных оснасток выбираем инструмент «Сертификаты» и нажимаем «Ок».
- Прописываем название консоли и выбираем, куда ее сохранить.
Добавление сертификата в консоль управления Windows
После добавления сертификатов в консоль управления Windows, с ними можно будет работать напрямую через эту консоль.
Как запустить консоль, в которую добавлены сертификаты:
- Открываем меню «Пуск» и в поисковой строке указываем название консоли. Например, «Консоль1».
- Выбираем консоль, запускаем ее и нажимаем: Корень консоли → Сертификаты → Личное → Сертификаты.
- Нажимаем на иконку сертификата и открываем его.
Просмотр сертификата в консоли управления Windows
Сертификат на компьютере можно найти несколькими путями. Наиболее простые через программу КриптоПро CSP или браузер. Чуть более сложные — через диспетчер сертификатов CertMgr или консоль управления Windows.
Если поиск не дал результатов, значит сертификата на компьютере нет. Это значит, что файл сертификата удален. Восстановить его можно только в случае, если закрытый ключ не тронут. В противном случае нужно использовать копию сертификата, если заранее ее сделали, или обратиться в удостоверяющий центр за новым сертификатом.
Если у вас оформлен тариф «Марафон» от Удостоверяющего центра Контура, платить за перевыпуск не придется. Тариф не только избавляет от ежегодной подготовки документов для новой ЭП, но и позволяет перевыпускать сертификат столько, сколько нужно
Заказать
Сообщение об ошибке
- Warning: strpos() expects parameter 1 to be string, array given в функции DrupalTextMetaTag->getValue() (строка 540 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: preg_match_all() expects parameter 2 to be string, array given в функции token_scan() (строка 124 в файле /home/y/y4achek/drupal7/public_html/includes/token.inc).
- Warning: explode() expects parameter 2 to be string, array given в функции DrupalTextMetaTag->getValue() (строка 578 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: array_filter() expects parameter 1 to be array, null given в функции DrupalTextMetaTag->getValue() (строка 578 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: array_values() expects parameter 1 to be array, null given в функции DrupalTextMetaTag->getValue() (строка 578 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: Invalid argument supplied for foreach() в функции DrupalTextMetaTag->getValue() (строка 586 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: implode(): Invalid arguments passed в функции DrupalTextMetaTag->getValue() (строка 607 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
В Windows есть стандартный набор сертификатов, которые хранятся в хранилище сертификатов. В это хранилище сертификатов так же попадают сертификаты с цифровой подписи. Иногда есть необходимость удалить не правильно установленный сертификат с целью его переустановки.
Где же находится хранилище сертификатов в Windows?
Чтобы открыть хранилище сертификатов в Windows необходимо иметь права администратора на учетной записи или открыть утилиту «Выполнить» от имени администратора.
Если Ваша учетная запись имеет права администатора — на клавиатеру нажимаем сочетание клавиш: Win+R и слева внизу откроется окно «Выполнить».
Если у Вас нет прав администратора — нажимаете на меню «Пуск» (слева внизу экрана). Далее находите строку поиска и в ней пишете слово «Выполнить«. Затем увидете нужную нам утилиту. Нажмите по ней правой кнопкой мыши и выберите пункт меню «Открыть от имени администратора«.
Затем в командную строку вводите команду ниже и нажимаете «ОК«:
certmgr.msc
Откроется окно со всеми сертификатами текущего пользователя. С левой стороны — каталоги сертификатов, а с правой сами сертификаты.
Системное хранилище сертификатов в windows у Вас открыто! Тут можно просмотреть и удалить при необходимости систмные сертификаты или сертификаты пользователя.
Поделитесь материалом с друзьями!