Главная Security, Windows, Новое Выпуск собственного SSL-сертификата
  • Выпуск собственного SSL-сертификата

    Certificate-01

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

    Разница лишь в том, что сертификат, который вы выпустите, будет не доверенным. Это означает, что компьютер клиента будет выдавать предупреждение о том, что он не знает поставщика сертификатов, который выпустил сертификат, что собственно логично.

    image_thumb[31]

    Представьте себе, что какой ни будь пользователь с Урала обращается к вашему корпоративному порталу. А ему сообщают, что для шифрования будет использоваться сертификат, который выпустил Вася Пупкин. Ну кто такой этот Вася, и что он там выпустил? Можно ли ему доверять? Не понятно. Другое дело, если все пользователи будут знать этого Васю и полностью ему доверяют. В последнем случае вполне можно использовать сертификат, который он выпустил сам. А в предупреждающем сообщении вы можете просто нажать “Continue to this website (not recommended)

    Чтобы выпустить собственный сертификат безопасности вы можете пойти двумя методами. Развернуть в своей организации полноценный Центр Сертификации (Certification Authority) или воспользоваться утилитой selfssl.exe. Разница этих двух методов состоит в области их применения.

    Развернув Центр Сертификации вы можете обеспечить автоматический выпуск сертификатов по запросу пользователей. Следить за выданными сертификатами, а так же отзывать их при необходимости. Если же вам требуется выпустить всего один сертификат, чтобы обеспечить безопасную работу с корпоративным порталом, или с электронной почтой через OWA, то проще будет воспользоваться утилитой selfssl.exe.

    Утилита selfssl.exe входит в комплект пакета IIS6 Resource Kit Tools. Данный пакет является бесплатным и доступен для свободного скачивания с сайта Microsoft – http://www.microsoft.com/downloads/details.aspx?familyid=56FC92EE-A71A-4C73-B628-ADE629C89499 Загрузив пакет запустите его. После запуска вы увидите окно установки.

    image_thumb[15]

    Выберите метод установки Custom и нажмите Next для продолжения установки.

    image_thumb[14]

    Затем выберите путь для установки или оставьте тот, что уже указан, и нажмите Next

    image_thumb[13]

    Пакет включает в себя много утилит. Нас же интересует только одно. Снимите все флажки кроме одного, как показано на рисунке выше. Затем нажмите Next.

    Запустить установленную утилиту можно из меню Пуск, как показано на рисунке.

    image_thumb[6]

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

    image_thumb[17] 

    Как видно параметров, которые можно задать, довольно много. Давайте попробуем разобраться с каждым из них:

  • /N:CN задает имя вашего сайта например owa.contoso.com.
  • /K: задает длину ключа. Значение по умолчанию 1024.
  • /V: количество дней до окончания действия сертификата.
  • /S: номер сайта в IIS. По умолчанию равен 1.
  • /P: номер порта. Стандартом является 443. Это же значение задано по умолчанию.

    Например вы решили выпустить сертификат для сайта owa.contoso.com сроком на один год. Нет ничего проще! Наберите следующую команду:

    selfssl /N:cn=owa.contoso.com /V:365

    И нажмите Ввод.

    На вопос “Do you want to replace the SSL settings for site 1 (Y/N)?” нажмите “y”. Если у вас не установлен IIS то вы получите сообщение “Error opening metabase: 0x80040154” – просто игнорируйте его.

    Сертификат выпущен. Теперь вы можете делать с ним все, что угодно. Например установить на ваш WEB-сайт. Давайте посмотрим, как это сделать. Для начала вам нужно выгрузить ваш сертификат. Для этого запустите Microsoft Management Console (MMC). Нажмите Пуск->Выполнить…-> наберите mmc и нажмите ввод.

  •  

    image_thumb[19]

    Затем нажмите File –> Add/Remove Snap in…

    image_thumb[21]

    В появившемся окне нажмите Add…

    image_thumb[23]

    Затем выберите Certificates и нажмите Add…

    image_thumb[25]

    Выберите Computer account и нажмите Next

    image_thumb[27]

    Теперь нажмите Finish

    image_thumb[29]

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

    image_thumb[33]

    Разверните Crtificates (Local Computer) затем Personal и выберите Certificates. Справа вы увидите ваш сертификат. Щелкните по нему правой кнопкой мыши. Выберите All Tasks, а затем Export.

    image_thumb[38]

    В появившемся диалоговом окне нажмите Next.

    image_thumb[42]

    Если вы хотите использовать сертификат на вашем WEB-сайте, то для этого понадобиться выгрузить приватный ключ. Выберите “Yes, export the private key” и нажмите Next.

    image_thumb[1]

    И еще раз Next.

    image_thumb[3]

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

    image_thumb[5]

    Введите имя файла, то под которым файл будет храниться на диске.  Например owa.contoso.com и нажмите Next.

    image_thumb[7]

    В следующем окне нажмите Finish.

  • image_thumb[10]

  • Сертификат выгружен и готов к использованию. Теперь его необходимо установить на вашем WEB-сайте. В следующей статье я покажу как это сделать.

  •  

    Михаил Даньшин

Комментарии

  1. А для установки сертификата куда-либо ещё разве не нужно экспортировать приватный ключ в том числе?

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

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

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

  3. Ну вопрос не про клиента. Судя по тексту мы занимаеся экспортом сертификата для последующей его установке на другом веб сервере (допустим, для SSL). При этом не экспортируем приватный ключ, т.е. если я правильно понимаю, экспортируется только публичный ключ, который невозможно будет использовать на веб сервере

  4. Коллеги, вы оба правы. Для установки на другой WEB-сервер нужен приватный ключ. Видимо статью придётся немного подправить. 🙂

  5. Статья была изменена. В предыдущей версии картинка расходилась с текстом. По картинке выходило, что приватный ключ не выгружался. А в нашем сценарии это было не верно. Для того, чтобы иметь возможность на другом вэбсайте использовать сертификат безопасности вам необходимо выгрузить пару ключей – публичный и приватный.

  6. Михаил,спасибо отличная статья, давно хотел почитать, все руки не доходили, а тут все ясно и понятно.

  7. Денис, спасибо за отзыв. Саша Станкевич прочитал мне лекцию по безопасности. Сейчас пишу статью о том в каких случаях лцчше не использовать самоподписные сертификаты и почему.
    И еще планирую написать о том насколько просто выпускать такие сертификаты в IIS 7.

  8. Спасибо за пост…Позновательно.
    А скажите можно ли использовать данный сертификат для служб шлюза терминалов через isa 2006?

  9. Ну очень слабая статья. И я еще критиковал Карманова! Да у него по сравнению с этим просто кладезь знаний. Думаю в будущем такого уровня статьи публиковать не стоит.

    Вот для кого такие картинки? Здесь вроде не секретарши собрались.
    http://itband.ru/wp-content/uploads/2009/10/image_thumb15.png
    http://itband.ru/wp-content/uploads/2009/10/image_thumb14.png
    http://itband.ru/wp-content/uploads/2009/10/image_thumb13.png

    Вся суть статьи сводится к нескольким строчкам

    >Утилита selfssl.exe входит в комплект пакета IIS6 Resource Kit Tools.

    >Как видно параметров, которые можно задать, довольно много. Давайте попробуем разобраться с каждым из них:

    /N:CN задает имя вашего сайта например owa.contoso.com.
    /K: задает длину ключа. Значение по умолчанию 1024.
    /V: количество дней до окончания действия сертификата.
    /S: номер сайта в IIS. По умолчанию равен 1.
    /P: номер порта. Стандартом является 443. Это же значение задано по умолчанию.

    Остальное – вода. Зачем такое надо – много букв и мало толку – не понятно.

    Предлагаю для примера сравнить с последними статьями Vadims Podāns. И решить к чему стремиться.
    А гнаться за контентом ради контента…. Имхо лучше мало, но хороших статей.

    >Денис, спасибо за отзыв. Саша Станкевич прочитал мне лекцию по безопасности. Сейчас пишу статью о том в каких случаях лцчше не использовать самоподписные сертификаты и почему.

    да почти в любых случаях лучще не использовать.

    Ну и на мой взгляд лучше более универсальные вещи, типа того же makecert. 🙂

  10. MaximillianGreat, то что Русскому хорошо, то Немцу смерть))) Опять с Вами не соглашусь)) Ну всем нравятся только золотые червонцы. Люди разные, мозги тоже. И вкусы в том числе. Vadims Podāns отличный парень, пишет немного и его читают 110 его друзей. У нас даже сейчас картинка несколько иная. Идеальный вариант когда в день выходит 3 поста уровня 100,200 и 300. Но это пока не достижимо. Как вы видите по комментам есть ИТ-шики которые раньше не задавались вопросом как создать самоподписный сертификат.

    Я через пару недель выложу труд (60 стр. А4)по репликации, там реальный взрыв мозга. И часть людей скажет фиии… чего-то много сложных букв.

  11. В последних статьях (про PKI) у Vadims Podāns я “взрыва мозга” не наблюдаю 🙂

    А 60 страниц чисто физически читать тяжело, не многие осилят 🙂
    Хотя тема очень интересная. А кто автор?

    >Идеальный вариант когда в день выходит 3 поста уровня 100,200 и 300. Но это пока не достижимо.

    А какая цель вообще приследуется? Раскрутится поболее? Так порнуху надо вывешивать – народ толпами повалит.
    Я вот счётчик майлрушный посмотрел – выше вас в списке нет сисадминских ресурсов.
    У Вадима посещаемость ниже, т.к. у него довольно узкая направленность. И он один 🙂

    Конструктивное предложение: ввести для каждой статьи метку с уровнем сложности. Можно как у мс, можно какую-нибудь другую систему.

  12. >Хотя тема очень интересная. А кто автор?

    Я и Константин Леонтьев, в соавторстве. В один присест она выложена и не будет.

    >А какая цель вообще приследуется?

    На странице “О проекте” пункт “Чего мы хотим достичь?”.))

    Спокойной ночи.)

  13. Гы 🙂 Спасибо 🙂

    >Мы ходим создать площадку где профессионалы могли бы общаться и узнавать новое. А начинающие администраторы могли понять

    Ага, значит цели благие 🙂 Я сосвем не против статей для начинающих и обзорных статей. Далеко ходить даже не надо – вот хорошая стаьтя такого плана http://itband.ru/2009/10/active-sync-2.

    Но всё же стаьтя в которой три содержательных строчки, куча воды и картинки как нажимать “некст” при установке программы это перебор даже для начинающих.
    А статью вашу коллективную буду ждать с нетерпением 🙂

  14. я согласен с некоторыми комментаторами в этой теме, что самоподписанные сертификаты на серверных службах (будь то HTTP/RDP/etc) — это вселенское зло, за которое нужно карать. Поясняю причины:

    Для чего вам SSL сертификат на веб-сайте? Предположим, на сайте нужно вводить какие-то личные данные и их могут перехватить через интернет (man-in-the-middle). Ок, все пользователи должны должны будут установить этот самоподписанный сертификат (открытую часть) в контейнер Trusted Root CAs. Как вы знаете, корневые сертификаты являются конечной точкой доверия и текущие реализации certificate chaining engine не могут проверить корневой сертификат на отзыв. Что это значит? А это значит, что если закрытый ключ был каким-либо образом скомпрометирован, то вы его не сможете отозвать. Причин тому 2:
    1) нет интерфейса, который бы позволял это делать;
    2) это корневой сертификат и он не может быть проверен на отзыв.

    Следовательно, при компрометации закрытого ключа вам придётся менять сертификат на веб-узле, а клиентам переустанавливать новый сертификат в контейнер доверенных CA. Если замена сертификата на веб-узле не вызовет каких-либо трудностей, то замена сертификата на клиенте — это будет очень большой проблемой.

    Ссылаться на правомерность существования такой статьи только на то, что она уровня 100 — нехорошо. Любой уровень должен учить только правильным концепциям. А уровень сложности только показывает целевую аудиторию, для которой написан материал. Я не претендую на истину высшей инстанции, просто показал свою аргументацию по этому вопросу.

    з.ы. посмотрел картинку selfssl и сразу нарисовался вопрос: а зачем там указан ключ порта? Ведь в Subject сертификата порты используемых служб не указываются.

  15. сейчас ещё раз пробежался по картинкам и есть замечания:
    http://itband.ru/wp-content/uploads/2009/10/image_thumb31.png
    В описании картинки написано, что обычно мы видим сообщение о том, что сертификат выдан недоверенным CA. Но на картинке совсем другое сообщение — предъявленый сертификат возможно выдан доверенным CA, но вводимое имя сайта не совпадает с именем, на которое выдан сертификат.

    http://itband.ru/wp-content/uploads/2009/10/image_thumb32.png
    Зачем здесь сертификат экспортируется с включенным Private key strong protection? Ведь вы же не сможете импортировать его обратно с этой опцией. Это может вызывать путаницу.

    > Нажмите Пуск->Выполнить…-> наберите mmc и нажмите ввод.
    а на картинках такого не видно. Там Start -> Run…

    > Введите пароль или оставьте поле пустым (последнее не рекомендуется)
    вы не сможете экспортировать сертификат в pkcs12 без пароля начиная с Windows Vista, так что там пустым вы его оставить не сможете. Такое безобразие возможно только в системах до висты.

    Ну и ошибки, в тексте много грамматических и пунктуационных ошибок. Вот Мише нужно поработать над грамматикой.

  16. а можно “выписать” сертификат сразу на два адреса (например фирма.local и фирма.ru) ?

  17. “книги разные нужны, книги разные важны”
    Иногда, да чего уж там – довольно часто :), нужны именно минимальные степ-бай-степ. Когда нужно, чтобы заработало еще вчера, а времени а изучение и копание в ньюансах нет. Это ни хорошо и ни плохо, ТАК просто есть. Объективно. Именно по этому на ресурсе будут появляться и статьи уровня 100, и уровня 300. Мы считаем что это правильно и полезно.

    Единственное, в чем я сейчас вижу реальную проблему – в силу объективных причин мы пока не можем заркыть каждый рассматриваемый вопрос, так чтобы он был интересен и начинающим админам (или тем кому нужно “еще вчера” и нет времени вникать в тонкости) и людям, которые хотят досканально разобраться в технологии. Возможно это стоит делать в рамках нескольких статей, возможно в рамках одной. Но этот вопрос администрация и авторы не забывают, и стараются в меру своих сил решить.

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

  18. “а можно «выписать» сертификат сразу на два адреса (например фирма.local и фирма.ru)?”

    http://support.microsoft.com/kb/931351/en-us.

  19. Алексей, повторюсь, я не против статей уровня 100, но только хороших.

    Для тех же кому “нужно ещё вчера” – http://www.somacon.com/p42.php первая ссылка гугля на вопрос о создании самоподписанных сертификатов.
    Мне там особенно нравится фраза “It is so simple to use that no instructions are required beyond the pointer to the download.”

    >Единственное, в чем я сейчас вижу реальную проблему — в силу объективных причин мы пока не можем заркыть каждый рассматриваемый вопрос, так чтобы он был интересен и начинающим админам … и людям, которые хотят досканально разобраться в технологии.

    Не уверен что это вообще возможно 🙂

    [offtopic]
    Да, и ещё раз здесь сразу несколько создателей ресурса собрались – последнюю неделю (может и больше) что-то с хостингом творится – сайт переодически тормозит, либо не отвечает совсем.

  20. MaximillianGreat, по поводу хостинга и тормозов, работа ведется.

  21. “Тормознутости” сайта есть несколько объяснений: и периодическая болезнь хостера, и увеличение “массы” читателей. Работу в этом плане как отметил Илья, мы ведем

  22. Коллеги, всем привет!

    Спасибо за ваши отзывы. Я не ставил перед собой цель написать учебник по PKI. Этим объясняется краткость изложения. Так же не планировал объяснять хорошо это, или плохо выпускать самоподписные сертификаты. Я просто написал как это сделать. Это как покупать автомобиль жигули. Тот кто его покупает и так понимает, что это не самый лучший вариант, что есть другие, более надёжные способы доставить своё драгоценное тело из точки А в точку Б, но обстоятельства не позволяют поступить иначе. Да и с аргументами уважаемого коллеги Vadimsa Podānsa я, если не поспорил, то во всяком случае обсудил бы. 😉 Надеюсь увидимся на платформе.

    P.S.
    У меня такое чувство, что я начинаю понимать почему Вася так обрадовался своему отпуску. )))

    P.S.S.
    Коллеги, друзья, уважаемые читатели. Ресурс itband еще очень молодой. Коллектив его администрации хочет создать ресурс, который будет полезен и интересен всем. И они экспериментируют, ищут пути, чтобы улучшить своё детище. Думаю в свою критику нужно включать больше конструктива и меньше эмоций. IMHO только тогда мы сможем помочь.

  23. Мне кажется, я включил в критику только конструктив.

    > Так же не планировал объяснять хорошо это, или плохо выпускать самоподписные сертификаты.

    вот поэтому люди будут его использовать везде и всегда, ведь это так просто!

    > но обстоятельства не позволяют поступить иначе

    если обстоятельства не позволяют использовать нормальную инфраструктуру PKI (тем более, что накладных расходов на ПО и лицензии в большинстве случаев не будет вообще), то это значит, что PKI им не нужно в данный момент. Не надо приучивать людей к неподдерживаемым и несопровождаемым решениям.

  24. Коллега, по-моему вы говорите о людях, а не о живих овощах. 🙂 Ну с чего вы взяли, что если появится описание какой-то утилиты, то все сразу же ринутся ее использовать, и при этом совершенно не включая мозг? Захотят будут, не захотят не будут. Не переживайте коллега. Вы не в ответе за все человечество. Эта функция возложена на высшие силы. 🙂

    Я так понимаю вы специалист по безопасности? Это замечательно! Если вы напишите статью, в которой поведаете миру сатанинскую сущность сертификатов, имя которых нельзя произносить, то уверен, Ваш труд удостоиться почётного места среди манускриптов банды.

  25. > Ну с чего вы взяли, что если появится описание какой-то утилиты, то все сразу же ринутся ее использовать, и при этом совершенно не включая мозг?

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

    > Я так понимаю вы специалист по безопасности?

    Вообще-то по PowerShell.

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

    я этим у себя в блоге занимаюсь на регулярной основе.

  26. 2 mdanshin

    Ещё спешу заметить – справа сверху 6 баннеров, первый снизу – ссылка на блог.

  27. ИМХО … не стоило так вот уж сразу открещиваться от CA … там настройки на пять минут… (коллеги не будем развивать тему…)

    Статью стоило бы назвать.. “А вот еще один способ создания SSL сертификата”… думаю критики было бы меньше :)) За статью спасибо …

  28. Спор из-за не чего

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

    Все гениальное просто. Согласен с автором, те кто будут читать статью не овощи и смогут сами принять решение. Да CA поставить быстро, но ведь бывают ситуации когда он не нужен. Притянув за уши вариант, установка IIS на клиентской ОС где крутиться чудо поделие, но все равно есть желание защитить юзеров.

    Кстати по поводу картинок. Когда их много – это хорошо. Люди лучше усваивают визуальную информацию. Аля вариант что, кто то нашел статью по гуглу/яндексу зная, что хотит, но нужна уже инструкция вида step-by-step

  29. Af71
    Эм… как бы это… а про Best Practice/Security Guide мы уже забыли?

    Вот именно, что вариант “притянут за уши” :)))) ИМХО – это не совсем корректно, когда профессионалы “советуют” другим “профессионалам” подобные решения… Те кто будет читать статью и знают/понимают, что такое СА, вот так поступать точно не будут… а остальные и проверять не станут… поскольтку – “Ну вот тут профессионалы статью опубликовали”

    Про картинки – ага.. это правильно подмечено.

    ребзя… без обид, в споре рождается истина…

  30. Наконец-то я нашел ресурс, на котором могу найти действительно качественный
    материал, касающийся области моего
    изучения…

    Here is my page; Казино в фукуоке

  31. Прекрасный интернет-ресурс!
    Я хочу научиться у вас;) Как можно подписаться на ваш интернет-портал?
    Благодаря вашим статьям,
    я стал намного лучше разбираться
    в этой теме. У вас потрясающие концепции
    и идеи;)

    Here is my homepage: онлайн автоматы игровые бесплатные игры вулкан