Как сделать сертификат на компьютере

Добавил пользователь Алексей Ф.
Обновлено: 05.10.2024

Сертификат, очень хороший инструмент для поощрения пользователей. И сегодня мы добавим их к нашим тестам на Google формах. Для этого используем дополнение под названием Certify’em.

Установка дополнения

Открываем Google форму и в правом верхнем углу нажимаем на три точки и выбираем пункт “Дополнения”.

В открывшемся окне в строке поиска набираем Certify’em и нажимаем кнопку “Бесплатно”.

После этого дополнение заполнит вашу форму демо данными в качестве примера.

Обратите внимание, что форма автоматически начинает собирать адреса электронной почты. Это связано с тем, что сертификаты будут персонализированы с уникальным номером и будут рассылаться по электронной почте.

Настройка дополнения

Давайте создадим небольшой тест и подключим к нему сертификаты. Обязательно первым вопросом сделайте ФИО, так как первый вопрос используется для заполнения ФИО в сертификате. Для этого в правом верхнем углу нажимаем на иконку в виде пазла и выбираем “Certify’em”.


На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.

Чтобы выпустить сертификат для вашего локального домена, понадобится корневой сертификат. На его основе будут выпускаться все остальные сертификаты. Да, для каждого нового top level домена нужно выпускать свой сертификат. Получить корневой сертификат достаточно просто.
Сначала сформируем закрытый ключ:


Затем сам сертификат:


Нужно будет ввести страну, город, компанию и т.д. В результате получаем два файла: rootCA.key и rootCA.pem

Переходим к главному, выпуск самоподписанного сертификата. Так же как и в случае с корневым, это две команды. Но параметров у команд будет значительно больше. И нам понадобится вспомогательный конфигурационный файл. Поэтому оформим все это в виде bash скрипта create_certificate_for_domain.sh

Первый параметр обязателен, выведем небольшую инструкцию для пользователя.


Создадим новый приватный ключ, если он не существует или будем использовать существующий:


Запросим у пользователя название домена. Добавим возможность задания “общего имени” (оно используется при формировании сертификата):


Чтобы не отвечать на вопросы в интерактивном режиме, сформируем строку с ответами. И зададим время действия сертификата:


В переменной SUBJECT перечислены все те же вопросы, который задавались при создании корневого сертификата (страна, город, компания и т.д). Все значение, кроме CN можно поменять на свое усмотрение.

Сформируем csr файл (Certificate Signing Request) на основе ключа. Подробнее о файле запроса сертификата можно почитать в этой статье.


Формируем файл сертификата. Для этого нам понадобится вспомогательный файл с настройками. В этот файл мы запишем домены, для которых будет валиден сертификат и некоторые другие настройки. Назовем его v3.ext. Обращаю ваше внимание, что это отдельный файл, а не часть bash скрипта.


Да, верно, наш сертификат будет валидным для основного домена, а также для всех поддоменов. Сохраняем указанные выше строки в файл v3.ext

Возвращаемся в наш bash скрипт. На основе вспомогательного файла v3.ext создаем временный файл с указанием нашего домена:


Переименовываем сертификат и удаляем временный файл:


Скрипт готов. Запускаем его:


Получаем два файла: mysite.localhost.crt и device.key

Теперь нужно указать web серверу пути к этим файлам. На примере nginx это будет выглядеть так:

nginx ssl


Браузер не доверяет этому сертификату. Как быть?

Нужно отметить выпущенный нами сертификат как Trusted. На Linux (Ubuntu и, наверное, остальных Debian-based дистрибутивах) это можно сделать через сам браузер. В Mac OS X это можно сделать через приложение Keychain Access. Запускаем приложение и перетаскиваем в окно файл mysite.localhost.crt. Затем открываем добавленный файл и выбираем Always Trust:


Обновляем страницу в браузере и:


Успех! Браузер доверяет нашему сертификату.

Сертификатом можно поделиться с другими разработчиками, чтобы они добавили его к себе. А если вы используете Docker, то сертификат можно сохранить там. Именно так это реализовано на всех наших проектах.

date

02.11.2020

user

itpro

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 7

New-SelfSignedCertificate: командлет PowerShell для генерации самоподписанного сертификата

Для создания самоподписанного сертификата в PowerShell нужно использовать командлет New-SelfSignedCertificate, входящий в состав модуля PKI (Public Key Infrastructure).

Чтобы вывести список всех доступных командлетов в модуле PKI, выполните команду:

Get-Command -Module PKI

управление самоподписанными сертфикатми встроенным модулем powershell pki

Самоподписанные сертификаты рекомендуется использовать в тестовых целях или для обеспечения сертификатами внутренних интранет служб (IIS, Exchange, Web Application Proxy, LDAPS, ADRMS, DirectAccess и т.п.), в тех случая когда по какой-то причине приобретение сертификата у внешнего провайдера или разворачивание инфраструктуры PKI/CA невозможны.

Совет. Не забывайте также про возможность использования полноценных бесплатных SSL сертификатов от Let’s Encrypt. Пример, как выпустить SSL сертификат Let’s Encrypt и привязать его к сайту IIS.

Для создания сертификата нужно указать значения –DnsName (DNS имя сервера, имя может быть произвольным и отличаться от имени localhost) и —CertStoreLocation (раздел локального хранилища сертификатов, в который будет помещен сгенерированный сертификат). Командлет можно использовать для создания самоподписанного сертификата в Windows 10 (в нашем примере), Windows 8/8.1 и Windows Server 2019/2016/2012 R2.

New-SelfSignedCertificate - командлет для создания сертификата

Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
Thumbprint Subject

Если вы указали нестандартный криптографический провайдер 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 хранилища сертификатов компьютера появился новый сертификат.

Как вы видите, в свойствах сертификата указано, что данный сертификат может использоваться для аутентификации клиентов (Client Authentication). Также он действителен и для аутентификации сервера (Server Authentication).

Самоподписанный сертифкат в разделе личных сертификатов

С помощью командлета Get-ChildItem можно вывести все параметры созданного сертификата по его отпечатку (Thumbprint):

Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object Thumbprint -eq DC1A0FDE0120085A45D8E14F870148D1EBCB82AE | Select-Object *

просмотр всех параметров самоподписанного сертфиката с помощью powershell

Примечание. Срок действия такого самоподписанного сертификата истечкает через 1 год с момента его создания. Можно задать другой срок действия сертификата с помощью атрибута –NotAfter.Чтобы выпустить сертификат на 3 года, выполните следующие команды:

Можно создать цепочку сертфикатов. Сначала создается корневой сертификат (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-PfxCertificate - экспорт сертификата в файл

Можно экспортировать открытый ключ сертификата:

Export-Certificate -Cert Cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\testcert.cer

Проверьте, что в указанном каталоге появился cer(PFX)файл сертификата. Если щелкнуть по нему правой клавишей и выбрать пункт меню Install Certificate, можно с помощью мастера импорта сертификатов добавить сертификат в корневые доверенные сертификаты компьютера.

установить cer/pfx сертификат с помощью powershell

Выберите Store location -> Local Machine, Place all certificates in the following store -> Trusted Root Certification Authorities.

импорт сертфиката в доверенные корневые сертфикаты компьютера

Можно создать сертификат и сразу импортировать его в доверенные корневые сертификаты компьютера командами:
$cert=New-SelfSignedCertificate …..
$certFile = Export-Certificate -Cert $cert -FilePath C:\certname.cer
Import-Certificate -CertStoreLocation Cert:\LocalMachine\AuthRoot -FilePath $certFile.FullName

Полученный открытый ключ или сам файл сертификата можно распространить на все компьютеры и сервера в домене с помощью GPO (пример установки сертификата на компьютеры с помощью групповых политик).

Одной из полезных возможностей командлета New-SelfSignedCertificate является возможность создать сертификат с несколькими различными именами Subject Alternative Names (SAN).

Примечание. Утилита Makecert.exe, в отличии от командлета New-SelfSignedCertificate, не умеет создавать сертификаты с SAN.

Если создается сертификат с несколькими именами, первое имя в параметре DnsName будет использоваться в качестве CN (Common Name) сертификата. К примеру, создадим сертификат, у которого указаны следующие имена:

Команда создания сертификата будет такой:

Сертификат на несколько DNS имен

Создать самоподписанный сертфикат типа 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, значит этот сертификат недоверенный, т.к. находится в персональном хранилище сертификатов пользователя.

Ошибка UnknownError при подписывании PowerShell скрипта самоподписанным сертификатом

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.

сгенерировать самоподписанный сертификат в iis

Вы можете привязать самоподписанный сертификат SHA-256, созданный в PowerShell, к сайту IIS. Если вы с помощью PowerShell создали SSL сертификат и поместили его в хранилище сертификатов компьютера, он будет автоматически доступен для сайтов IIS.

привязать самоподписанный ssl сертфикат к сайту в IIS Manager

Запустите консоль IIS Manager, выберите ваш сайт, затем в настройке Site Binding, выберите созданный вами сертификат и сохраните изменения.

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 22 человек(а).

Напечатанные сертификаты могут быть хорошим подарком для друзей и семьи. В этой статье вы можете узнать о том, как собственными руками сделать сертификат, используя интернет и некоторую компьютерную технику.

Изображение с названием Make Your Own Printable Certificate Step 1

Изображение с названием Make Your Own Printable Certificate Step 2

  • Если вы используете веб-сайт Microsoft Office и при этом не используете Internet Explorer, то нажмите download еще раз, но уже на другой странице.

Изображение с названием Make Your Own Printable Certificate Step 3

Найдите шаблон в папке ваших загрузок. Если вы загрузили шаблон из Word Templates Online, то вы можете его найти как ZIP файл (архив) с примерным названием "Free Gift Certificate Templates". Сделайте двойной клик, и вы увидите документ Word с таким же названием. Если вы загрузили с сайта Microsoft Office, то вы увидите документ с кучей цифр и букв в его названии.

Изображение с названием Make Your Own Printable Certificate Step 4

Нажмите два раза, чтобы открыть файл. Заполните желаемые строки и распечатайте сертификат на принтере.

Наградите усердного сотрудника, выдающегося спортсмена или прилежного ученика сертификатом, созданным на основе премиум-шаблона Майкрософт.

Шаблоны сертификатов

Популярные сертификаты

Наградите кого-то особенного с помощью этих бесплатных шаблонов сертификатов.​

Похвальная грамота с цветной полосой

Свидетельство о прохождении программы (зеленого цвета)

Подарочный сертификат

Грамота лучшему сотруднику месяца (с серой рамкой в виде цепи)

Сертификат о прохождении курса

Свидетельство об окончании

Премиум-шаблоны

Оформляйте документы с помощью красивых профессиональных шаблонов.

Диплом участника

Подарочный сертификат на день рождения (яркое оформление)

Аттестат дошкольного учреждения

Похвальная грамота

Связанные шаблоны

Поощрение — это просто! Попробуйте другие шаблоны, чтобы отметить особенных людей.

Слайд-шоу, приуроченное к окончанию учебного года

Слайд-шоу, приуроченное к окончанию учебного года

Фотоальбом спортивных наград

Фотоальбом спортивных наград

Благодарственная грамота со спиральным рисунком

Благодарственная грамота со спиральным рисунком

Найдите вдохновение для вашего следующего проекта с тысячами идей на выбор

Наградите кого-то особенного с помощью шаблона сертификата

Если вы ищете способ с энтузиазмом отпраздновать чей-то успех и выразить признание, ознакомьтесь с коллекцией шаблонов сертификатов Майкрософт. Наградите кого-то особенного сертификатом, чтобы отметить и увековечить его достижения. В подборке можно найти и распечатать шаблон сертификата для любого случая. Сообщите усердному сотруднику о том, что его усилия не остались незамеченными, с помощью сертификата "Сотрудник месяца". Наградите прилежного ученика сертификатом за отличную учебу, а обладателя лучшего костюма на Хэллоуин — сертификатом на основе одного из бесплатных шаблонов. Не можете выбрать подходящий подарок? Скачайте шаблоны подарочных сертификатов и подарите своему другу, родственнику или другому близкому человеку в качестве подарка какое-нибудь веселое совместное занятие. Что бы это ни было — награда или подарок — у Майкрософт найдется шаблон сертификата для любого случая. Все шаблоны сертификатов разработаны профессионалами и готовы к использованию, но если вы захотите что-нибудь изменить, то сможете легко настроить их под себя. Просмотрите разнообразную коллекцию печатных шаблонов сертификатов, чтобы найти то, что подойдет именно вам.

Читайте также: