- Как создать самоподписанный сертификат в Windows?
- New-SelfSignedCertificate: командлет PowerShell для генерации самоподписанного сертификата
- Создать самоподписанный сертфикат типа Code Signing для подписывания кода
- Использование самоподписанного SSL сертификата SHA-256 в IIS
- Получение цифрового сертификата и создание цифровой подписи
- Что такое цифровая подпись?
- Получение цифровой подписи от центра сертификации или партнера Майкрософт
- Создание цифрового сертификата
- Получение цифровой подписи
- Получение цифровой подписи от партнера Майкрософт
- Создание собственной цифровой подписи
Как создать самоподписанный сертификат в Windows?
Большинству администраторов Windows, знакомых с темой PKI, известна утилита MakeCert.exe, с помощью которой можно создать самоподписанный сертификат. Эта утилита включена в состав Microsoft .NET Framework SDK и Microsoft Windows SDK. В современых версиях Windows 10/8.1 и Windows Server 2016/2012R2 вы можете создать самоподписанный сертификат с помощью PowerShell без использования дополнительных утилит.
New-SelfSignedCertificate: командлет PowerShell для генерации самоподписанного сертификата
Для создания самоподписанного сертификата в PowerShell нужно использовать командлет New-SelfSignedCertificate, входящий в состав модуля PKI (Public Key Infrastructure).
Чтобы вывести список всех доступных командлетов в модуле PKI, выполните команду:
Get-Command -Module PKI
Самоподписанные сертификаты рекомендуется использовать в тестовых целях или для обеспечения сертификатами внутренних интранет служб (IIS, Exchange, Web Application Proxy, LDAPS, ADRMS, DirectAccess и т.п.), в тех случая когда по какой-то причине приобретение сертификата у внешнего провайдера или разворачивание инфраструктуры PKI/CA невозможны.
Для создания сертификата нужно указать значения –DnsName (DNS имя сервера, имя может быть произвольным и отличаться от имени localhost) и —CertStoreLocation (раздел локального хранилища сертификатов, в который будет помещен сгенерированный сертификат). Командлет можно использовать для создания самоподписанного сертификата в Windows 10 (в нашем примере), Windows 8/8.1 и Windows Server 2019/2016/2012 R2.
Чтобы создать новый SSL сертификат типа SSLServerAuthentication (по умолчанию) для DNS имени test.contoso.com (указывается FQDN имя) и поместить его в список персональных сертификатов компьютера, выполните команду:
New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My
Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
Thumbprint Subject
———- ——-
2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 CN=test.contoso.com
Если вы указали нестандартный криптографический провайдер CSPs (например, с помощью параметров -KeyAlgorithm «ECDSA_secP256r1» -Provider ‘Microsoft Smart Card Key Storage Provider’ ), убедитесь, что он установлен на компьютере (по умолчанию используется CSP Microsoft Enhanced Cryptographic Provider). Иначе появится ошибка:
По-умолчанию генерируется самоподписанный сертификат со следующим параметрами:
- Криптографический алгоритм: RSA;
- Размер ключа: 2048 бит;
- Допустимые варианты использования ключа: Client Authentication и Server Authentication;
- Сертификат может использоваться для: Digital Signature, Key Encipherment ;
- Срок действия сертификата: 1 год.
Данная команда создаст новый сертификат и импортирует его в персональное хранилище компьютера. Откройте оснастку certlm.msc и проверьте, что в разделе Personal хранилища сертификатов компьютера появился новый сертификат.
С помощью командлета Get-ChildItem можно вывести все параметры созданного сертификата по его отпечатку (Thumbprint):
Get-ChildItem -Path «Cert:\LocalMachine\My» | Where-Object Thumbprint -eq DC1A0FDE0120085A45D8E14F870148D1EBCB82AE | Select-Object *
$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
New-SelfSignedCertificate -dnsname test.contoso.com -notafter $add3year -CertStoreLocation cert:\LocalMachine\My
Можно создать цепочку сертфикатов. Сначала создается корневой сертификат (CA), а на основании него генерируется SSL сертификат сервера:
$rootCert = New-SelfSignedCertificate -Subject «CN=TestRootCA,O=TestRootCA,OU=TestRootCA» -KeyExportPolicy Exportable -KeyUsage CertSign,CRLSign,DigitalSignature -KeyLength 2048 -KeyUsageProperty All -KeyAlgorithm ‘RSA’ -HashAlgorithm ‘SHA256’ -Provider «Microsoft Enhanced RSA and AES Cryptographic Provider» `
New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName «test2.contoso.com» -Signer $rootCert -KeyUsage KeyEncipherment,DigitalSignature
Для экспорта полученного сертификата c закрытым ключом в pfx файл, защищенный паролем, нужно получить его отпечаток (Thumbprint). Сначала нужно указать пароль защиты сертификата и преобразовать его в формат SecureString. Значение Thumbprint нужно скопировать из результатов выполнения команды New-SelfSignedCertificate.
$CertPassword = ConvertTo-SecureString -String “YourPassword” -Force –AsPlainText
Export-PfxCertificate -Cert cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\test.pfx -Password $CertPassword
Можно экспортировать открытый ключ сертификата:
Export-Certificate -Cert Cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\testcert.cer
Проверьте, что в указанном каталоге появился cer(PFX)файл сертификата. Если щелкнуть по нему правой клавишей и выбрать пункт меню Install Certificate, можно с помощью мастера импорта сертификатов добавить сертификат в корневые доверенные сертификаты компьютера.
Выберите Store location -> Local Machine, Place all certificates in the following store -> Trusted Root Certification Authorities.
Полученный открытый ключ или сам файл сертификата можно распространить на все компьютеры и сервера в домене с помощью GPO (пример установки сертификата на компьютеры с помощью групповых политик).
Одной из полезных возможностей командлета New-SelfSignedCertificate является возможность создать сертификат с несколькими различными именами Subject Alternative Names (SAN).
Если создается сертификат с несколькими именами, первое имя в параметре DnsName будет использоваться в качестве CN (Common Name) сертификата. К примеру, создадим сертификат, у которого указаны следующие имена:
- Subject Name (CN): adfs1.contoso.com
- Subject Alternative Name (DNS): web-gw.contoso.com
- Subject Alternative Name (DNS): enterprise-reg.contoso.com
Команда создания сертификата будет такой:
New-SelfSignedCertificate -DnsName adfs1.contoso.com,web_gw.contoso.com,enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My
Также можно сгенерировать wildcard сертификат для всего пространства имен домена, для этого в качестве имени сервера указывается *.contoso.com.
New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname *.contoso.com
Создать самоподписанный сертфикат типа Code Signing для подписывания кода
В PoweShell 3.0 командлет New-SelfSifgnedCertificate позволял генерировать только SSL сертификаты, которые нельзя было использоваться для подписывания кода драйверов и приложений (в отличии сертификатов, генерируемых утилитой MakeCert).
В версии PowerShell 5 новая версия командлета New-SelfSifgnedCertificate теперь может использоваться для выпуска сертификатов типа Code Signing.
Для создания самоподписанного сертфиката для подписывания кода приложений, выполните команду:
$cert = New-SelfSignedCertificate -Subject «Cert for Code Signing” -Type CodeSigningCert -CertStoreLocation cert:\LocalMachine\My
Set-AuthenticodeSignature -FilePath C:\PS\test_script.ps1 -Certificate $cert
Если при выполнении команды появится предупреждение UnknownError, значит этот сертификат недоверенный, т.к. находится в персональном хранилище сертификатов пользователя.
Move-Item -Path $cert.PSPath -Destination «Cert:\CurrentUser\Root»
После этого вы можете подписать свой PowerShell скрипт с помощью данного самоподписанного сертификата.
Использование самоподписанного SSL сертификата SHA-256 в IIS
Обратите внимание, что при создании самоподписанный сертификат для IIS через консоль Internet Information Manager (пункт меню Create Self-Signed Certificate), создается сертификат с исопльзованием алгоритма шифрования SHA-1. Такие сертификаты многими браузерами считаются недоверенными, поэтому они могут выдавать предубеждение. Командлет New-SelfSignedCertificate позволяет создать более популырный тип сертификата с помощью алгоритма шифрования SHA-256.
Вы можете привязать самоподписанный сертификат SHA-256, созданный в PowerShell, к сайту IIS. Если вы с помощью PowerShell создали SSL сертификат и поместили его в хранилище сертификатов компьютера, он будет автоматически доступен для сайтов IIS.
Запустите консоль IIS Manager, выберите ваш сайт, затем в настройке Site Binding, выберите созданный вами сертификат и сохраните изменения.
Получение цифрового сертификата и создание цифровой подписи
В этой статье объясняется, как получить или создать цифровую подпись для использования в документах Office. Чтобы узнать больше о том, как использовать их в документах Office, ознакомьтесь со статьей Добавление и удаление цифровой подписи в файлах Office.
Что такое цифровая подпись?
Цифровая подпись (удостоверение) чаще называется цифровым сертификатом. Для цифрового подписания документа Office требуется действующий цифровой сертификат. Цифровые сертификаты обычно выдаются доверенным центром сертификации (ЦС) — надежной сторонней организацией, которая выпускает цифровые сертификаты. Существует множество коммерческих центров сертификации, у которых вы можете приобрести или бесплатно получить цифровой сертификат. Многие учреждения, правительственные организации и предприятия также могут выдавать свои собственные сертификаты.
Цифровой сертификат необходим для цифровой подписи, так как она предоставляет открытый ключ, который можно использовать для проверки закрытый ключ, связанной с цифровой подписью. Цифровые сертификаты позволяют использовать цифровые подписи как способ проверка подлинности цифровой информации.
Получение цифровой подписи от центра сертификации или партнера Майкрософт
Если предполагается обмениваться документами, содержащими цифровую подпись, с другими людьми и при этом позволять получателям документов проверять подлинность цифровой подписи, можно получить цифровой сертификат у известного стороннего центра сертификации. Дополнительные сведения можно найти в разделе Поиск цифрового удостоверения или служб цифровых подписей.
Создание цифрового сертификата
Если вы не хотите приобретать цифровой сертификат у стороннего центра сертификации или вам требуется срочно подписать документ, вы можете создать собственный цифровой сертификат.
- Какую версию Windows вы используете?
- Windows 10
- Windows 8
- Windows 7, Windows Vista или Windows XP
Перейдите в папку C:\Program Files (x86) \Microsoft оффице\рут\ (или C:\Program Files\Microsoft Office\root\Office16 , если используется 64-разрядная версия Office).
Запустите программу SelfCert.exe. Откроется диалоговое окно Создание цифрового сертификата.
В поле Имя вашего сертификата введите описательное имя сертификата.
Нажмите кнопку ОК.
Когда появится сообщение «SelfCert: успех», нажмите кнопку ОК.
Перейдите в папку C:\Program Files\Microsoft Office\ \.
Запустите программу SelfCert.exe. Откроется диалоговое окно Создание цифрового сертификата.
В поле Имя вашего сертификата введите описательное имя сертификата.
Нажмите кнопку ОК.
Когда появится сообщение «SelfCert: успех», нажмите кнопку ОК.
Нажмите кнопку Пуск и выберите по очереди пункты Все программы, Microsoft Office, Средства Microsoft Office и Средство создания цифровых сертификатов для проектов VBA. Откроется диалоговое окно Создание цифрового сертификата.
В поле Имя вашего сертификата введите описательное имя сертификата.
Нажмите кнопку ОК.
Когда появится сообщение «SelfCert: успех», нажмите кнопку ОК.
Чтобы просмотреть хранилище личных сертификатов, выполните указанные ниже действия.
Откройте Internet Explorer.
В меню Сервис выберите пункт Свойства обозревателя, а затем откройте вкладку Содержание.
Нажмите кнопку Сертификаты и откройте вкладку Личные.
Важно: Если подписать документ с применением собственного цифрового сертификата и поделиться им, то другие пользователи не смогут проверить достоверность вашей цифровой подписи. Им придется вручную указать, что они доверяют вашему самозаверяющему сертификату.
Получение цифровой подписи
Если вы пытаетесь подписать документ Office 2007 без цифрового сертификата, появится диалоговое окно Получение цифрового удостоверения и вам будет предложено выбрать, как вы хотите получить цифровую подпись.
У вас есть два варианта:
Подробнее о каждом варианте см. в следующих разделах.
Получение цифровой подписи от партнера Майкрософт
Если вы выбрали вариант Получить цифровое удостоверение от партнера Майкрософт в диалоговом окне Получение цифрового удостоверения, вы будете перенаправлены на веб-сайт Microsoft Office, где вы можете приобрести цифровой сертификат одного из сторонних центров сертификации (ЦС).
Если предполагается обмениваться документами, содержащими цифровую подпись, с другими людьми и при этом позволять получателям документов проверять подлинность цифровой подписи, рекомендуется получить цифровой сертификат у известного стороннего центра сертификации.
Создание собственной цифровой подписи
Если вы не хотите приобретать цифровой сертификат у стороннего центра сертификации или вам требуется срочно подписать документ, вы можете создать собственный цифровой сертификат, выбрав параметр Создать свое цифровое удостоверение в диалоговом окне Получение цифрового удостоверения.
Создание собственного цифрового сертификата
В диалоговом окне Получение цифрового удостоверения выберите параметр Создать свое цифровое удостоверение.
Важно: Диалоговое окно Получение цифрового удостоверения появится только в том случае, если попытаться поставить цифровую подпись в документе, не имея цифрового сертификата.
В диалоговом окне Создание цифрового удостоверения введите следующие сведения для цифровой подписи:
В поле Имя введите свое имя.
В поле Адрес электронной почты введите свой адрес электронной почты.
В поле Организация введите название организации или компании.
В поле Расположение укажите свое географическое местоположение.
Примечание: Если подписать документ с применением собственного цифрового сертификата и поделиться им, то другие пользователи не смогут проверить достоверность вашей цифровой подписи. Ваша цифровая подпись может быть проверена только на том компьютере, где она была создана.