Установка SSL-сертификата Comodo WILDCARD.
![](/ComodoWildcardSSL/Ssl-1.png)
В моем блоге очень содержится очень много информации о сертификатах, о том как ими манипулировать программно, о том, как создавать их по российским чудо-алгоритмам (заточенным на ускорение доступа к защищаемым данным со стороны ФСБ), о том как писать собственные самописныне реализации SSL - начните читать все это отсюда - Организация SSL транспортного уровня по программно загружаемому клиентскому сертификату.
В этом топике я расскажу как сделать самую тупую и простую операцию - создать узел, доступный по SSL.
Для начала надо выбрать продавца сертификата. Вообще идея торговать воздухом - не новая. Еще Иисус Христос мог взять две рыбки и накормить ими 5000 человек. Торговля сертификатами - это то же самое. Создание потока кеша из ничего, кормление страждущих пустотой. Как бы некто удостоверяет, что некая компания действительно является компанией VOTPUSK.RU - при этом заполнить формы запроса сертификата на сайте торговца сертификатами может даже хорошо обученная обезьяна. Ну и идея все-все-все в инете делать анонимно и бесплатно (или почти бесплатно) - начиная от хостинга и регистрации домена - а подписывание ключей сертификата делать за нехилые деньги - это стоящая идея конечно! Не хуже чем накормить двумя рыбками пять тысяч человек.
Исходя из сказанного - поставщик сертификата значения не имеет, имеет значения только цена (и каким способом его можно оплатить). В моем случае был выбран http://ssl.comodo.com/ (и его дилер https://www.reg.ru/ssl-certificate/ - тем более он подписывает сертификаты WILDCARD (на произвольноепроизвольное количество поддоментов основного домена).
Для начала создается запрос сертификата - его можно сделать прямо в IIS - он выглядит как куча буковок (кодировка BASE64) в обрамлении тегов -----BEGIN CERTIFICATE REQUEST----- и -----END CERTIFICATE REQUEST-----.
![](/ComodoWildcardSSL/Ssl-2_1.png)
![](/ComodoWildcardSSL/Ssl-3_1.png)
![](/ComodoWildcardSSL/Ssl-4_1.png)
![](/ComodoWildcardSSL/Ssl-5_1.png)
![](/ComodoWildcardSSL/Ssl-6_1.png)
![](/ComodoWildcardSSL/Ssl-7_1.png)
После оплаты почтовый робот присылает на мыльце требуемый сертификат и корневой сертификат организации, промышляющей торговлей воздухом (в данном конкретном случае COMODO.COM)
Все эти данные доступны не только в мыльце, но и на формах REG.RU:
![](/ComodoWildcardSSL/Ssl-8_1.png)
![](/ComodoWildcardSSL/Ssl-9_1.png)
Теперь, после получения сертификата - его надо загрузить в IIS. К сожалению, напрямую загрузить кнопкой Complete certificate request (там же где делали запрос) - не получится, ибо присланный сертификат не содержит закрытого ключа. А как же IIS должен шифровать без закрытого ключа?
![](/ComodoWildcardSSL/Ssl-10_1.png)
Поэтому придется чуток напрячься. Для начала создадим себе оснастку СЕРТИФИКАТЫ (которая стандартно недоступна от кнопки ПУСК). Обратите внимание на ГЛАВНУЮ ФИШКУ - IIS работает с сертификатами локального кампутера, а не с сертификатами какого-нибудь юзера или какой-нибудь учетной записи кампутера. Строго говоря - это прихоть индусов Билла Гейтса, если бы я писал этот кусок кода - я сделал бы логичнее - IIS бы работал с сертификатами своей учетной записи, но... что сделано, то сделано. Итак, только учетка Local Computer.
![](/ComodoWildcardSSL/Ssl-11_1.png)
![](/ComodoWildcardSSL/Ssl-19_1.png)
![](/ComodoWildcardSSL/Ssl-12_1.png)
![](/ComodoWildcardSSL/Ssl-13_1.png)
![](/ComodoWildcardSSL/Ssl-14_1.png)
Далее импортируем корневые сертификаты - и убеждаемся, что они оказались в нужном месте.
![](/ComodoWildcardSSL/Ssl-15_1.png)
![](/ComodoWildcardSSL/Ssl-16_1.png)
![](/ComodoWildcardSSL/Ssl-17_1.png)
![](/ComodoWildcardSSL/Ssl-18_1.png)
Теперь займемся главным сертификатом, ключи которого собственно и используются для шифрования сессионных ключей SSL. Для начала придется поставить Microsoft Visual C++ 2008 SP1 Redistributable Package (x86), а затем и OpenSSL.
![](/ComodoWildcardSSL/Ssl-20_1.png)
![](/ComodoWildcardSSL/Ssl-24_1.png)
![](/ComodoWildcardSSL/Ssl-21_1.png)
![](/ComodoWildcardSSL/Ssl-22_1.png)
И теперь собственно собираем нужный нам сертификат с открытым и закрытым ключем вместе.
![](/ComodoWildcardSSL/Ssl-23_1.png)
Импортируем собранный сертификат в хранилище Personal для учетки локального кампутера (за этим громким абстрактным названием скрывается нужный ключ реестра) - именно здесь его увидит IIS.
![](/ComodoWildcardSSL/Ssl-25_1.png)
![](/ComodoWildcardSSL/Ssl-26_1.png)
И наконец, приступим к заключительному аккорду этой песни - загрузим этот сертификат на конкретный узел IIS. Остается напомнить только, что на одном айпишнике может быть только один SSL.
![](/ComodoWildcardSSL/Ssl-27_1.png)
![](/ComodoWildcardSSL/Ssl-28_1.png)
![](/ComodoWildcardSSL/Ssl-29_1.png)
Ну вот собственно и вся песня с самым примитивным способом использования сертификатов (для организации SSL). Без программного манипулирования, с самым распространенным RSA-алгоритмом. Все сдеалано в пару тычков мышкой и одной строкой в OpenSSL.
Я опубликовал эту заметку именно в силу ее классической постановки и радикальной простоты задачки. О более интересных случаях почитайте тут - Организация SSL транспортного уровня по программно загружаемому клиентскому сертификату.
cd C:\Windows\System32\Inetsrv appcmd set site /site.name:"Default Web Site" /-bindings.[protocol='https',bindingInformation='*:443:votpusk.ru'] appcmd set site /site.name:"Default Web Site" /-bindings.[protocol='https',bindingInformation='*:443:www.votpusk.ru'] appcmd set site /site.name:"Arenda" /+bindings.[protocol='https',bindingInformation='*:443:arenda.votpusk.ru'] appcmd set site /site.name:"Adm" /+bindings.[protocol='https',bindingInformation='*:443:adm.votpusk.ru'] appcmd set site /site.name:"Img" /+bindings.[protocol='https',bindingInformation='*:443:Img.votpusk.ru'] appcmd set site /site.name:"Foto" /+bindings.[protocol='https',bindingInformation='*:443:Foto.votpusk.ru'] appcmd set site /site.name:"Poputi" /+bindings.[protocol='https',bindingInformation='*:443:Poputi.votpusk.ru'] appcmd set site /site.name:"User" /+bindings.[protocol='https',bindingInformation='*:443:User.votpusk.ru'] appcmd set site /site.name:"Search" /+bindings.[protocol='https',bindingInformation='*:443:Search.votpusk.ru'] appcmd set site /site.name:"Story" /+bindings.[protocol='https',bindingInformation='*:443:Story.votpusk.ru'] appcmd set site /site.name:"Gate" /+bindings.[protocol='https',bindingInformation='*:443:Gate.votpusk.ru'] appcmd set site /site.name:"SSL" /+bindings.[protocol='https',bindingInformation='*:443:SSL.votpusk.ru'] appcmd set site /site.name:"Mention" /+bindings.[protocol='https',bindingInformation='*:Mention.443:votpusk.ru'] appcmd set site /site.name:"Debug" /+bindings.[protocol='https',bindingInformation='*:443:Debug.votpusk.ru'] cd C:\Windows\System32\Inetsrv appcmd set site /site.name:"Arenda" /+bindings.[protocol='https',bindingInformation='*:443:arenda.votpusk.ru'] appcmd set site /site.name:"Adm" /+bindings.[protocol='https',bindingInformation='*:443:adm.votpusk.ru'] appcmd set site /site.name:"Img" /+bindings.[protocol='https',bindingInformation='*:443:Img.votpusk.ru'] appcmd set site /site.name:"Foto" /+bindings.[protocol='https',bindingInformation='*:443:Foto.votpusk.ru'] appcmd set site /site.name:"Poputi" /+bindings.[protocol='https',bindingInformation='*:443:Poputi.votpusk.ru'] appcmd set site /site.name:"User" /+bindings.[protocol='https',bindingInformation='*:443:User.votpusk.ru'] appcmd set site /site.name:"Search" /+bindings.[protocol='https',bindingInformation='*:443:Search.votpusk.ru'] appcmd set site /site.name:"Story" /+bindings.[protocol='https',bindingInformation='*:443:Story.votpusk.ru'] appcmd set site /site.name:"Gate" /+bindings.[protocol='https',bindingInformation='*:443:Gate.votpusk.ru'] appcmd set site /site.name:"SSL" /+bindings.[protocol='https',bindingInformation='*:443:SSL.votpusk.ru'] appcmd set site /site.name:"SSL" /+bindings.[protocol='https',bindingInformation='*:443:Mention.votpusk.ru'] appcmd set site /site.name:"Debug" /+bindings.[protocol='https',bindingInformation='*:443:Debug.votpusk.ru'] cd C:\Windows\System32\Inetsrv %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"avia" /+bindings.[protocol='https',bindingInformation='*:443:avia.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:www.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"forum" /+bindings.[protocol='https',bindingInformation='*:443:forum.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"hotelfoto" /+bindings.[protocol='https',bindingInformation='*:443:hotelfoto.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"spb" /+bindings.[protocol='https',bindingInformation='*:443:spb.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"test" /+bindings.[protocol='https',bindingInformation='*:443:tst.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"test1" /+bindings.[protocol='https',bindingInformation='*:443:ts1.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"tours" /+bindings.[protocol='https',bindingInformation='*:443:tours.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"train" /+bindings.[protocol='https',bindingInformation='*:443:train.votpusk.ru'] %systemroot%\system32\inetsrv\AppCmd.exe set site /site.name:"routes" /+bindings.[protocol='https',bindingInformation='*:443:routes.votpusk.ru']
![](http://forum.vb-net.com/GetTopicCount.png?id=168D2171-AA22-458A-B7C2-5D48E1AA49C7)
<SITEMAP> <MVC> <ASP> <NET> <DATA> <KIOSK> <FLEX> <SQL> <NOTES> <LINUX> <MONO> <FREEWARE> <DOCS> <ENG> <CHAT ME> <ABOUT ME> < THANKS ME> |