Applies to Windows 2000, Windows XP, Windows Server 2003, Windows Server 2003 R2, Windows Vista, Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows 8, and Windows Server 2012.
Table of Contents
- Overview
- To add a Certificates console to MMC
- Example
- View Options Dialog Box
- To view information about a certificate
- To import a certificate
- To move a certificate
- To export a certificate
- To delete a certificate
- To request a certificate
- To retrieve a certificate allowed for automatic enrollment
Overview
The Certificates console is an Microsoft Management Console (MMC) snap-in that you can use to manage the certificate stores for users, computers, and services.
You can use the Certificates console to perform the following tasks:
-
View information about certificates, such as certificate contents and the certification path.
-
Import certificates into a certificate store.
-
Move certificates between certificate stores.
-
Export certificates and, optionally, export private keys (if key export is enabled).
-
Delete certificates from certificate stores.
-
Request certificates from an enterprise CA for the Personal certificate store.
To add a Certificates console to MMC
-
Open MMC. If you do not already have a customized MMC console, you can create one. To do so, open a Command Prompt, Windows PowerShell, or the Run dialog box, type
MMC and then press ENTER. If you see a
User Account Control prompt, ensure that it is displaying the action you want to take and then click
Yes. -
Click Console, and then click Add/Remove Snap-in.
– Or –
Press CTRL+M.
The Add/Remove Snap-in dialog box appears. -
Click Add .
The Add Standalone Snap-in dialog box appears. -
Select Certificates from the list of snap-ins, and then click
Add.
The Certificates Snap-in dialog box appears. -
Select one of the following accounts:
-
My user account
-
Service account
-
Computer account
The Certificates console manages the certificate stores for this account.
-
-
Click Next .
If you selected My user account , the Add Standalone
Snap-in dialog box appears. You can click Add to add another snap-in.
If you selected Service account or Computer account , the
Select Computer dialog box appears. To manage the local computer, click
Next . To manage another computer, either type the domain name of the computer in
Another computer , or click Browse to select the computer from a list. Then click
Next .
If you selected Computer account , the Add Standalone
Snap-in dialog box appears. You can click Add to add another snap-in.
If you selected Service account , the Certificates
Snap-in dialog box appears. Select a service from the Services
account list, and click Finish . When the
Add Standalone Snap-in dialog box appears, you can click
Add to add another snap-in. -
When you are finished adding snap-ins, in the Add Standalone
Snap-in dialog box, click Close .
The Add/Remove Snap-in dialog box appears and displays the snap-ins that you are installing in MMC. -
In the Add/Remove Snap-in dialog box, click
Close.
<return to top>
Example
The following figure shows an example of three Certificates console nodes that have been added to MMC. The first Certificates console node manages certificates for the logged on user. The second Certificates console node manages certificates for the World
Wide Web Publishing service for the local computer. The third Certificates console node manages certificates for the local computer itself.
Certificates Console (shown from a Windows 2000 operating system)
The Certificates console nodes in the figure above have been expanded to show the logical certificate stores. This is called the
Logical display mode. You also have the option of viewing certificates by their physical stores or by their purpose.
To change the display mode, select the Certificates console (such as the
Certificates — Current User console). Click View and then click
Options . When the View Options dialog box appears (as shown in the following figure from a Windows 7 operating system), which allows you to select certain display mode options.
The View Options options are described in the following table.
View Options Dialog Box
Option |
Description |
---|---|
Certificate purpose |
Select this option to view certificates in the Purposes display mode, in which certificates are grouped by the intended purpose of the certificates, such as Encrypting File System, File Recovery, and Code Signing. |
Logical certificate stores |
Select this option to view certificates in the Logical display mode, in which certificates are grouped by the logical store where they are located. This is the default display mode. |
Physical certificate stores |
Select this option to view the physical stores in addition to the logical stores. This option is available for the Logical display mode only. |
Archived certificates |
Select this option to view archived certificates. When certificates expire or are renewed, an archived version is retained of the certificate and its private keys. Retaining archived certificates is recommended because you might need to use the certificate |
<return to top>
To view information about a certificate
- In the Certificates console pane, select the certificate store where the certificates that you would like to learn more about are located. For example, you can select the
Personal store. - In the details pane, double-click the certificate that you would like to learn more about.
- The certificate will show three tabs: General, Details, and
Certification Path. You can click each of these tabs to learn more about certificate issuance, issuance purposes, certificate thumbprint, trust path, and so on.
<return to top>
To import a certificate
- In the Certificates console pane, right-click the certificate store or Certificates container below that store to which you want to import the certificate and then click
Import. For example, you can right-click the Personal
store or the Certificates container below that store and then click
Import. The Certificates container below the store appears only when there are existing certificates in that container. Otherwise, you will just have the certificates store. - On the Welcome to the Certificate Import Wizard screen, click
Next. - On the File to Import screen, enter the file path and file name of the file the certificate that you want to import and then click
Next. If the file is password protected, you may be prompted to enter the password at this point. If so, enter the password and then click
OK. - On the Certificate Store screen you can select the Automatically select the certificate store based on the type of certificate, or
Place all certificates in the following store option. You can use the
Browse button to locate a different certificate store. Once you have these options configured correctly, click
Next. - On the Completing the Certificate Import Wizard screen, verify the import information and then click
Finish. Click OK to confirm the importation.
<return to top>
To move a certificate
You can move a certificate between stores on the same account. For example, you can move a certificate from the Personal store to the Trusted Root Certification Authorities store on the Local Computer. However, you cannot move a certificate from the Personal
store of the Local Computer to the Personal store of the User. If you want to move certificates between accounts, first export the certificate from one account and then import the certificate to the other account.
- In the Certificates console pane, select the Certificates
container that appears below the certificate store from which you want to move the certificate. For example, if you want to move a certificate from the Personal store, expand the
Personal store and select the Certificates container below it. - In the Certificates console details pane, right-click the certificate that you want to move and select
Cut. - In the Certificates console pane, select the Certificates container that appears below the certificate store to which you want to move the certificate. If there is no
Certificates container below the store to which you want to move the certificate, then select the destination certificate store itself. - In the Certificates console details pane, right-click and then select
Paste. This will move the certificate from the source store to the destination store.
Note: You can also drag and drop certificates from one store to another. To do so, you can select the certificate in the details pane of the source certificate store. Hold the primary mouse button and then drop the certificate by releasing the mouse button
when pointing to the destination container.
<return to top>
To export a certificate
- In the Certificates console pane, select the Certificates
container that appears below the certificate store from which you want to export the certificate. For example, if you want to export a certificate from the Personal store, expand the
Personal store and select the Certificates container below it. - In the Certificates console details pane, right-click the certificate that you want to export, click
All Tasks, and then click Export. - On the Export Private Key screen, select whether you want to export the private key and then click
Next.- If the private key is not stored with the certificate, then the Export Private Key screen will not appear.
- The option to export the private key will only appear if the private key is marked as exportable. Otherwise, the option to export the private key will not be available.
- On the Export File Format screen, select the type of format that you want to use for the certificate. Click
Next. - If you had the option and selected, Yes, export the private key, then you will be asked for a password for the certificate. If you have Windows 8 or Windows Server 2012, you can select Group or user names and specify Active
Directory Domain Services (AD DS) user or group accounts. This option is only successful if you have a Windows Server 2012 domain controller available — otherwise you will receive an error when trying to apply it. Protect the file (as appropriate) and then
click Next. - On the File to Export screen, enter the full file path and file name for the certificate file you want to export. You can also use the
Browse button to select the location and set the file name. Click
Next. - On the Completing the Certificate Export Wizard screen, confirm the export options and then click
Finish. Click OK to confirm the export.
<return to top>
To delete a certificate
You should only delete a certificate that you know is no longer necessary. If you delete a certificate with private key, then you will no longer be able to read encrypted data that uses that certificate. Ensure that you no longer need the certificate (especially
with if it also has a private key with it) that you delete.
- In the Certificates console pane, select the Certificates
container that appears below the certificate store from which you want to delete the certificate. For example, if you want to delete a certificate from the Personal store, expand the
Personal store and select the Certificates container below it. - In the Certificates console details pane, right-click the certificate that you want to delete and then click
Delete. - To confirm deletion of the certificate, click Yes.
<return to top>
To request a certificate
- In the Certificates console pane, select the Certificates
container that appears below the certificate store for which you want to request a certificate. For example, if you want to request a certificate for the Personal store, expand the
Personal store and select the Certificates container below it. If there is no
Certificates container below the store, you can just select the store. - Right-click the Certificates container (or the store) and then click
Request New Certificate. - On the Before You Begin screen, review the information and then click
Next. - On the Select Certificate Enrollment Policy screen, select the specific enrollment policy that you want to use or click
Add New.- If you select Add New, you will have to fill out a enrollment policy server from which you want to retrieve a certificate. This is something that a certificate administrator would have had to configure in advance and provide. If this is
the case,- Type the appropriate URI under Enter the enrollment policy server URI
- Set the appropriate Authentication Type: Windows integrated,
Username/password, or X.509 Certificate - Use the Validate Server option to verify that the server is available, and then click
Add.
- Type the appropriate URI under Enter the enrollment policy server URI
- If a caution symbol appears below the certificate, you might need to provide additional information before requesting that type of certificate. Click the
«More information is required to enroll for this certificate. Click here to configure settings» message and provide the requested information, such as a subject name or the location of a valid signing certificate. - Click Next.
- If you select Add New, you will have to fill out a enrollment policy server from which you want to retrieve a certificate. This is something that a certificate administrator would have had to configure in advance and provide. If this is
- On the Request Certificates screen, select the enrollment policy that you want to use and then click
Enroll. - On the Certificate Installation Results screen, you will see the status message of the enrollment. If the status of the certificate request is
Pending, then a certificate administrator must approve the request. The certificate request may also be denied for various reasons. You can learn more about the status of the certificate request by clicking
Details. If you see additional details, you can also click
View Request, to see the certificate request that was made. - Once you have verified enrollment status, click Finish.
<return to top>
To retrieve a certificate allowed for automatic enrollment
In order for the following steps to work, Certificate Auto-Enrollment must be enabled in the domain. This is something that a domain administrator must configure through Group Policy. Auto-Enrollment is available for
Computer Configuration and User Configuration separately.
If a certificate has gone to Pending status and the Certificate Services Client — Auto-Enrollment Group Policy setting is enabled in the domain, then you can retrieve the pending certificate with the Certificates console by using the following
steps:
- Right-click the Certificates console container for the account that you want to obtain the certificate and then click
Automatically Enroll and Retrieve Certificates. For example, if you were obtaining a certificate that was Pending for the local computer account, then you would right-click
Certificates (Local Computer) container. If you were obtaining a certificate for your user account, then you would right-click the
Certificates — Current User container. - On the Before You Begin screen, review the information and then click
Next. - On the Request Certificates screen, select the enrollment policy that you used to enroll for the certificate.
- Once you have selected the appropriate policy, click Enroll. The status of the enrollment is displayed.
- On the Certificate Installation Results screen, the status of the enrollment is displayed. You can see additional information by clicking
Details. If the certificate enrollment was unsuccessful, you should see more information as to why it failed. If the certificate enrollment was successful, then you can also click
View Certificate. Once you have verified certificate enrollment status, click
Finish.
<return to top>
- Содержание статьи
- Установка сертификатов для текущего пользователя
- Личное
- Доверенные корневые центры сертификации
- Доверительные отношения в предприятии
- Промежуточные центры сертификации
- Доверенные издатели
- Сторонние корневые центры сертификации
- Доверенные лица
- Установка сертификатов для компьютера
- Личное
- Доверенные корневые центры сертификации
- Доверительные отношения в предприятии
- Промежуточные центры сертификации
- Доверенные издатели
- Сторонние корневые центры сертификации
- Доверенные лица
- Добавить комментарий
- Установка сертификатов для текущего пользователя
В операционных системах Windows, установка сертификатов через командную строку происходит при помощи утилиты certutil. Эта утилита является частью Windows начиная с Windows Vista и Windows Server 2003 SP2 — для более старых операционных систем, таких как Windows XP и Windows Server 2003, потребуется установка Windows Server 2003 Service Pack 2 Administration Tools Pack (Пакет средств администрирования Windows Server 2003 с пакетом обновления 2), который можно скачать с официального сайта Microsoft.
Установка сертификатов для текущего пользователя
Установка сертификата в хранилища текущего пользователя выполняется при указании параметра -user
. Ниже рассмотрим примеры установки сертификата в различные хранилища пользователя, используя утилиту certutil.
Личное
Для установки сертификата в хранилище «Личное», нужно указать параметр -addstore "My"
.
certutil -user -addstore "My" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -user -addstore "My" "C:\Certs\Сертификат.cer"
Доверенные корневые центры сертификации
Для установки сертификата в хранилище «Доверенные корневые центры сертификации», нужно указать параметр -addstore "Root"
.
certutil -user -addstore "Root" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -user -addstore "Root" "C:\Certs\Сертификат.cer"
Доверительные отношения в предприятии
Для установки сертификата в хранилище «Доверительные отношения в предприятии», нужно указать параметр -addstore "Trust"
.
certutil -user -addstore "Trust" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -user -addstore "Trust" "C:\Certs\Сертификат.cer"
Промежуточные центры сертификации
Для установки сертификата в хранилище «Промежуточные центры сертификации», нужно указать параметр -addstore "CA"
.
certutil -user -addstore "CA" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -user -addstore "CA" "C:\Certs\Сертификат.cer"
Доверенные издатели
Для установки сертификата в хранилище «Доверенные издатели», нужно указать параметр -addstore "TrustedPublisher"
.
certutil -user -addstore "TrustedPublisher" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -user -addstore "TrustedPublisher" "C:\Certs\Сертификат.cer"
Сторонние корневые центры сертификации
Для установки сертификата в хранилище «Сторонние корневые центры сертификации», нужно указать параметр -addstore "AuthRoot"
.
certutil -user -addstore "AuthRoot" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -user -addstore "AuthRoot" "C:\Certs\Сертификат.cer"
Доверенные лица
Для установки сертификата в хранилище «Доверенные лица», нужно указать параметр -addstore "TrustedPeople"
.
certutil -user -addstore "TrustedPeople" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -user -addstore "TrustedPeople" "C:\Certs\Сертификат.cer"
Установка сертификатов для компьютера
Для выполнения установки сертификата в хранилище компьютера, требуются права администратора!
Установка сертификата в хранилище компьютера, с помощью certutil, происходит в том случае, если не указан параметр -user
.
Личное
Для установки сертификата в хранилище «Личное», нужно указать параметр -addstore "My"
.
certutil -addstore "My" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -addstore "My" "C:\Certs\Сертификат.cer"
Доверенные корневые центры сертификации
Для установки сертификата в хранилище «Доверенные корневые центры сертификации», нужно указать параметр -addstore "Root"
.
certutil -addstore "Root" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -addstore "Root" "C:\Certs\Сертификат.cer"
Доверительные отношения в предприятии
Для установки сертификата в хранилище «Доверительные отношения в предприятии», нужно указать параметр -addstore "Trust"
.
certutil -addstore "Trust" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -addstore "Trust" "C:\Certs\Сертификат.cer"
Промежуточные центры сертификации
Для установки сертификата в хранилище «Промежуточные центры сертификации», нужно указать параметр -addstore "CA"
.
certutil -addstore "CA" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -addstore "CA" "C:\Certs\Сертификат.cer"
Доверенные издатели
Для установки сертификата в хранилище «Доверенные издатели», нужно указать параметр -addstore "TrustedPublisher"
.
certutil -addstore "TrustedPublisher" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -addstore "TrustedPublisher" "C:\Certs\Сертификат.cer"
Сторонние корневые центры сертификации
Для установки сертификата в хранилище «Сторонние корневые центры сертификации», нужно указать параметр -addstore "AuthRoot"
.
certutil -addstore "AuthRoot" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -addstore "AuthRoot" "C:\Certs\Сертификат.cer"
Доверенные лица
Для установки сертификата в хранилище «Доверенные лица», нужно указать параметр -addstore "TrustedPeople"
.
certutil -addstore "TrustedPeople" [ПУТЬ К СЕРТИФИКАТУ]
Пример с сертификатом, расположенным в директории C:\Certs, и имеющим наименование Сертификат.cer:
certutil -addstore "TrustedPeople" "C:\Certs\Сертификат.cer"
Данный материал является переводом оригинальной статьи «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 SOFTWARE\Microsoft\SystemCertificates\ |
Физическое хранилище для пользовательских открытых ключей |
User | HKEY_CURRENT_USER SOFTWARE\Policies\Microsoft\SystemCertificates\ |
Физическое хранилище для пользовательских открытых ключей, установленных объектами групповой политики Active Directory (AD) (GPO) |
Computer | HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\SystemCertificates\ |
Физическое хранилище общедоступных ключей для всей машины |
Computer | HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Cryptography\Services\ |
Физическое хранилище ключей, связанных с определенной службой |
Computer | HKEY_LOCAL_MACHINE SOFTWARE\Policies\Microsoft\SystemCertificates\ |
Физическое хранилище открытых ключей для всей машины, установленных объектами групповой политики. |
Computer | HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\EnterpriseCertificates\ |
Физическое хранилище общедоступных ключей, установленных корпоративными контейнерами PKI в домене AD |
Контекст | Расположение файла | Объяснение |
---|---|---|
User | $env:APPDATA\Microsoft\SystemCertificates\ | Физическое хранилище для пользовательских открытых ключей и указателей на закрытые ключи |
User | $env:APPDATA\Microsoft\Crypto\ | Физическое хранилище для контейнеров закрытых ключей для конкретных пользователей |
Computer | $env:ProgramData\Microsoft\Crypto\ | Физическое хранилище для контейнеров закрытых ключей для всей машины |
Предварительные требования
В оставшейся части этой статьи вы найдете несколько примеров, демонстрирующих взаимодействие с хранилищами сертификатов 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:\Software\Microsoft\SystemCertificates\CA\Certificates'
Каждая запись в кусте реестра, который вы видите, будет соответствовать отпечатку сертификата доверенного центра сертификации и его сертификату в соответствующем свойстве. Вы можете увидеть пример вывода ниже.
Другое распространенное хранилище — это Personal store. Ваши сертификаты для этого хранилища находятся в файловой системе, а не в реестре. В следующих командах мы покажем эти различные физические пути и их цели.
Каждый файл в каталоге, возвращенный приведенной ниже командой, соответствует сертификату, установленному в личном хранилище текущего пользователя.
Get-ChildItem -Path $env:APPDATA\Microsoft\SystemCertificates\My\Certificates\
Каждый файл, возвращаемый в приведенной ниже команде, является ссылкой на объект для закрытого ключа, созданный поставщиком хранилища ключей (KSP). Имя файла соответствует идентификатору ключа субъекта сертификата. К каждому устанавливаемому вами закрытому ключу будет добавлен соответствующий файл.
Get-ChildItem -Path $env:APPDATA\Microsoft\SystemCertificates\My\Keys\
Каждый файл в каталоге, возвращаемый следующей командой, является уникальным контейнером для зашифрованного закрытого ключа, созданного KSP. Нет прямой связи между именем файла и сертификатом, но файл является целью указателя в предыдущей команде.
Get-ChildItem -Path $env:APPDATA\Microsoft\Crypto\Keys
Использование 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:\CurrentUser\Root\'
Возвращенные объекты будут объектами сертификатов, которые вы можете использовать в следующих примерах.
Общие расширения уже доступны как свойства объектов сертификата. В приведенном ниже примере вы используете Get-Member для вывода списка всех свойств возвращаемых объектов.
Get-ChildItem -Path 'Cert:\CurrentUser\Root\' | Get-Member -MemberType Properties
Как видим, некоторые из этих расширений, например «Issuer», помогают найти сертификат, который вы ищете. Расширения предоставляют информацию о сертификате, например, кому он выдан, для чего его можно использовать и любые ограничения на него.
В более сложных случаях использования вам может понадобиться найти сертификаты других расширений, таких как используемый шаблон сертификата. Сложность в том, что значения этих расширений возвращаются как массив целых чисел. Эти целые числа соответствуют содержимому в кодировке ASN.1.
Покажем пример взаимодействия с свойствами типа ScriptProperty. В приведенной ниже команде вы извлекаете Key Usages.
((Get-ChildItem -Path 'Cert:\CurrentUser\Root\' | 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:\CurrentUser\Root\' | Where-Object {$_.Thumbprint -eq $thumb}
Создание самозаверяющих (self-signed) сертификатов с помощью PowerShell
PowerShell может создавать самозаверяющие (self-signed) сертификаты с помощью командлета New-SelfSignedCertificate. Самозаверяющие сертификаты полезны для тестирования, поскольку они позволяют генерировать пару открытого и закрытого ключей без использования центра сертификации.
Теперь давайте создадим самозаверяющий сертификат в хранилищах текущего пользователя и локального компьютера, чтобы использовать его в примерах для следующих шагов.
В приведенном ниже примере PowerShell создает пару открытого и закрытого ключей, самозаверяющий сертификат и устанавливает их все в соответствующие хранилища сертификатов.
New-SelfSignedCertificate -Subject 'User-Test' -CertStoreLocation 'Cert:\CurrentUser\My'
New-SelfSignedCertificate -Subject 'Computer-Test' -CertStoreLocation 'Cert:\LocalMachine\My'
Использование самозаверяющих сертификатов для продуктивных сервисов не рекомендуется, поскольку не существует всех механизмов, основанных на доверии.
Импорт и экспорт сертификатов в 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:\CurrentUser\My\' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Теперь, когда вы выбрали сертификат, вы можете использовать команду Export-Certificate, чтобы сохранить файл в кодировке DER, используя команду ниже.
Export-Certificate -FilePath $env:USERPROFILE\Desktop\certificate.cer -Cert $certificate
Теперь давайте посмотрим на экспорт закрытого ключа. Ниже вы проверяете, что у выбранного сертификата есть закрытый ключ. Если он не возвращает True, то команда Get-Item, скорее всего, выбрала неправильный сертификат.
$certificate.HasPrivateKey
Ниже вы установите пароль, который будет использоваться для шифрования закрытого ключа. Затем экспортируйте выбранный сертификат в файл PFX и используйте пароль, который вы ввели ранее, чтобы зашифровать файл.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -FilePath $env:USERPROFILE\Desktop\certificate.pfx -Password $pfxPassword -Cert $certificate
В случае, если необходимо выполнить импорт, как и при экспорте, есть две команды. Одна команда для импорта сертификатов и одна для импорта файлов PFX.
Ниже команда Import-Certificate импортирует файл в формате DER, который вы экспортировали ранее, в личное хранилище текущего пользователя.
Import-Certificate -FilePath $env:USERPROFILE\Desktop\certificate.cer -CertStoreLocation 'Cert:\CurrentUser\My'
Допустим, вы тоже хотите установить закрытый ключ этого сертификата.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -Password $pfxPassword -CertStoreLocation 'Cert:\CurrentUser\My' -FilePath $env:USERPROFILE\Desktop\certificate.pfx
Имейте в виду, что пароль должен быть защищенной строкой. Кроме того, если вы импортируете в хранилище локального компьютера (например, «Cert:\LocalMachine«), вам нужно будет запустить команду из командной строки администратора с повышенными привилегиями.
В приведенном выше примере вы также используете параметр -Exportable с командой, отмечая закрытый ключ как экспортируемый в будущем. По умолчанию (без указания этого параметра) экспорт не используется. Экспортируемые закрытые ключи – отельный аспект информационной безопасности, заслуживающий отдельного внимания.
Удаление сертификатов с помощью PowerShell
При удалении сертификатов помните, что понятие «Корзина Windows» в этом случае отсутствует. Как только вы удалите сертификат, он исчезнет! Это означает, что очень важно подтвердить, что вы удаляете правильный сертификат, путем проверки уникального идентификатора, такого как серийный номер или значение расширения Thumbprint.
Как и выше, в приведенной ниже команде мы выбираем самозаверяющий сертификат из личного хранилища текущего пользователя.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:\CurrentUser\My\' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Ниже вы можете увидеть свойства отпечатка, серийного номера и темы для выбранного сертификата, чтобы убедиться, что это именно тот сертификат, который вы собираетесь выбрать.
$certificate.Thumbprint
$certificate.SerialNumber
$certificate.Subject
Убедитесь, что вы выбрали правильный сертификат, который собираетесь удалить.
Приведенная ниже команда удаляет все выбранные объекты сертификата, используйте с осторожностью! Передав объект $certificate через конвейер в командлет Remove-Item в приведенной ниже команде, вы удалите все содержимое сертификата без каких-либо запросов на проверку.
$certificate | Remove-Item
Резюме
На протяжении всей этой статьи вы работали с сертификатами в Windows, изучая, как получить к ним доступ, и некоторые инструменты, которые можно использовать при работе с ними. По этой теме можно изучить гораздо больше, в том числе о том, как связать установленные сертификаты с конкретными службами или даже о том, как реализовать инфраструктуру закрытого открытого ключа (PKI) путем развертывания собственных центров сертификации (CA).
Содержание
- Открываем «Хранилище сертификатов»
- Способ 1: Окно «Выполнить»
- Способ 2: Панель управления
- Вопросы и ответы
Сертификаты являются одним из вариантов безопасности для Виндовс 7. Это цифровая подпись, которая проверяет достоверность и подлинность различных веб-узлов, служб и всевозможных устройств. Выдача сертификатов осуществляется сертификационным центром. Они хранятся в специализированном месте системы. В данной статье мы рассмотрим, где находится «Хранилище сертификатов» в ОС Windows 7.
Открываем «Хранилище сертификатов»
Чтобы просмотреть сертификаты в Виндовс 7, заходим в ОС с правами администратора.
Подробнее: Как получить права администратора в Windows 7
Необходимость в доступе к сертификатам особенно важна для пользователей, которые часто совершают платежи в интернете. Все сертификаты хранятся в одном месте, так называемом Хранилище, которое разбито на две части.
Способ 1: Окно «Выполнить»
- При помощи нажатия комбинации клавиш «Win+R» попадаем в окошко «Выполнить». Вводим в командную строку
certmgr.msc
. - Цифровые подписи хранятся в папке, которая находятся в директории «Сертификаты – текущий пользователь». Здесь сертификаты находятся в логических хранилищах, которые разделены по свойствам.
В папках «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации» находится основной массив сертификатов Виндовс 7.
- Чтобы посмотреть информацию о каждом цифровом документе, наводим на него и кликаем ПКМ. В открывшемся меню выбираем «Открыть».
Переходим во вкладку «Общие». В разделе «Сведения о сертификате» будет отображено предназначение каждой цифровой подписи. Также представлена информация «Кому выдан», «Кем выдан» и сроки действия.
Способ 2: Панель управления
Также есть возможность посмотреть сертификаты в Windows 7 через «Панель управления».
- Открываем «Пуск» и переходим в «Панель управления».
- Открываем элемент «Свойства обозревателя».
- В открывшемся окне переходим во вкладку «Содержание» и щелкаем по надписи «Сертификаты».
- В открывшемся окошке предоставлен перечень различных сертификатов. Чтобы посмотреть подробную информацию об определённой цифровой подписи, жмём по кнопке «Просмотр».
После прочтения данной статьи вам не составит никакого труда открыть «Хранилище сертификатов» Windows 7 и узнать подробную информацию о свойствах каждой цифровой подписи в вашей системе.
Еще статьи по данной теме:
Помогла ли Вам статья?
Для добавления сертификата в доверенные корневые центры сертификации из командной строки необходимо выполнить следующую команду:
CertMgr.Exe -add -c "c:\path\to\certificate.cer" -s -r localMachine root
Запись опубликована в рубрике Windows с метками cmd, win. Добавьте в закладки постоянную ссылку.