При публикации подписанных приложений или сайтов из локальной сети в глобальную, в некоторых случаях необходимо подписывать их сертификатом, который будет содержать 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
Вот и все 🙂