Создание сертификата с альтернативными DNS

При публикации подписанных приложений или сайтов из локальной сети в глобальную, в некоторых случаях необходимо подписывать их сертификатом, который будет содержать Subject Alternative Name.

И вот как это можно сделать:

Для начала включим такую возможность на сервере (в моем случае это единственный IssuingCA):

certutil -setreg policyEditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc

Что ж, теперь подготовим запрос, в данном примере я привожу исключительно свои настройки тестовой среды (файл я назову request.inf):

[Version]
Signature=”$Windows NT$”

[NewRequest]
Subject = “CN=utm.office.local, OU=IT, O=TEST, L=Kiev, S=Kiev, C=UA”
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = “Microsoft RSA SChannel Cryptographic Provider”
FriendlyName = “utm.office.local + SAN”

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = Web Server

[Extensions]
2.5.29.17 = “{text}”
_continue_ = “DNS=*.utm.kiev.ua&”
_continue_ = “DNS=utm.kiev.ua&”
_continue_ = “DNS=utm.office.local&”
_continue_ = “DNS=utm&”
_continue_ = “DNS=localhost”

Теперь на сервере для которого мы подготавливаем сертификат выполняем:

certreq -new request.inf

…сохраняем .req файл, получаем с помощью него сертификат (.cer) от издающего центра, и устанавливаем полученный сертификат:

certreq -accept request.cer

Вот и все 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *