Ответ 1
Makecert, похоже, не поддерживает SAN, поэтому я создал сертификат с SAN для использования с IIS с использованием OpenSSL. Просмотрите мой пост об этом.
http://andyarismendi.blogspot.com/2011/09/creating-certificates-with-sans-using.html
Как создать сертификат с помощью makecert
с полем "Альтернативное имя субъекта"?
Вы можете добавить некоторые поля, например "Расширенное использование ключа" с опцией -eku, и я попробовал параметр -san, но makecert ему не нравится.
Это самозаверяющий сертификат, поэтому любой метод, который использует IIS для создания чего-либо для отправки в ЦС, не подходит.
Makecert, похоже, не поддерживает SAN, поэтому я создал сертификат с SAN для использования с IIS с использованием OpenSSL. Просмотрите мой пост об этом.
http://andyarismendi.blogspot.com/2011/09/creating-certificates-with-sans-using.html
Еще проще использовать командный файл PowerShell New-SelfSignedCertificate, который по умолчанию включает SAN. В одной команде вы можете создать сертификат и добавить его в хранилище.
New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My
Обратите внимание, что вам нужно запустить PowerShell в качестве администратора.
Обновление
Сертификат, сгенерированный с использованием метода makecert
, не работает надежно во всех браузерах, потому что он фактически не генерирует "Альтернативное имя субъекта".
Если вы проверите сертификат, вы увидите, что на самом деле оно не имеет поля Subject Alternative Name
, но вместо этого указывает несколько CN
в поле Subject
.
например.
Subject:
CN = blah.foo.corp
CN = blah
В то время как настоящий "SAN" cert имел бы что-то вроде:
Subject Alternative Name:
DNS Name=blah.foo.corp
DNS Name=blah
Чтобы понять различия и историю между полем "Тема" с полем "Общее имя" и "Имя альтернативного имени субъекта", я рекомендую прочитать The (скоро быть) не столь распространенное имя.
Итак, кажется, что makecert
нельзя использовать для создания истинного сертификата SAN, и вам нужно будет использовать другие инструменты, такие как openssl
.
Исходный ответ:
По крайней мере, с версией makecert
, которая поставляется с Visual Studio 2012, вы можете указать несколько объектов, просто указав список, разделенный запятыми -n "CN=domain1, CN=domain2"
например. (из блога технологов Makecert.exe Сертификат SAN и Wildcard)
makecert -r -pe -n "CN=*.fabrikam.com, CN=*.contoso.com" -b 01/01/2010 -e 01/01/2100 -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.3,1.3.6.1.5.5.7.3.4 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -len 2048
Я спросил Стив Джонсон этот вопрос по электронной почте, и его ответ был
Извините, я не думаю, что это возможно. По крайней мере, я не знаю пути.
что является для меня окончательным!
Вам нужно будет использовать другие инструменты, такие как openssl. См. эту статью для хорошего пошагового руководства (не обсуждается альтернативное поле имени tho)