DDoS Protection Powered by DDoS-GUARD

Сертификаты шифрования для SOHO

Просмотров: 2640Комментарии: 0
Web-Сервер

В общем, все корневые сертификаты центров сертификации, которые продают сертификаты для пользователей - являются самоподписанными. secret

Просто пользователи настолько тупые, что не могу самостоятельно установить себе сертификат для обмена информацией, вот их и продают... mamba.gif сертификаты... Деньги из воздуха. Для использования в "SOHO (Small office/home office)" мы будем делать собственные сертификаты. Списки отозванных сертификатов публиковать не будем, "PowerShell" не позволяет разместить информацию об адресе распространения "CRL (Certificate Revocation List)"... Грусть печаль. sad На сайте "Microsoft" отлично, что удивительно, но описан этот процесс. Мы просто немного его изменим и дополним. good2
В статье используются программы:
AkelPad v4.9.8 Текстовый редактор оф. сайт
QIP Shot v3.4.3 Программа для создания скриншотов оф. сайт
Win64 OpenSSL v1.1.1g Light Open SSL оф. сайт
Полезные ссылки:
Имена X.509 распространённые.
Введение в криптографию и сертификаты.
Адекватный мануал по командлету "New-SelfSignedCertificate".

0. Скачиваем, устанавливаем "OpenSSL light".
1. Создание корневого сертификата и закрытого ключа.
2. Экспорт контейнера PFX с закрытым ключом.
3. Экспорт корневого сертификата.
4. Добавление корневого сертификата в доверенные сертификаты.
5. Создание сертификата и закрытого ключа для нашего WEB сервера.
6. Экспорт сертификата и закрытого ключа для веб сервиса (или любого другого сервиса).

К сожалению, в Microsoft, всё ещё недостаточно ебут программистов (и тех кто пишет документацию у них на сайте), ииии потому нам недостаточно будет только PowerShell, щука.
Мы сможем создать секретный ключ и сертификат для подписания наших сертификатов, НО! извлекать секретный ключ мы сможем только с помощью сторонней программы "OpenSSL". В теорию ключей и шифрования мы погружаться не будем, там пиздец, чёрт голову сломит.
1. Для начала сделаем пару ключей для подписи. Мы не будем указывать все возможные параметры. Для собственных SOHO потребностей это не нужно. Всё, что начинается со слова "Key", относится к "закрытому" ключу. Ключ будет 4096 бит длинной, и сроком действия 10 лет с момента выпуска (выполнения команды в консоли).
Параметр "-Subject" задаётся в формате "relative distinguished names" и по идее он задаёт значение кому был выдан сертификат. Человеку, адресу сервера, имени сервера. "CertStoreLocation" - путь в консоли (certmgr.msc) сертификатов куда он будет добавлен.
Самое важное - Для того, чтобы сертификат считался корневым сертификатом центра сертификации нужно ещё дописать вот это:
-TextExtension @("2.5.29.19 ={critical} {text}ca=1&pathlength=3")
Сертификат вместе с ключом будет расположен в "Личное -> Сертификаты" (текущего пользователя):



Всё можно делать без прав локального администратора!

Открываем консоль "PowerShell" и вставляем:

New-SelfSignedCertificate `
-FriendlyName "Friendly Name Certificate" `
-Type Custom `
-KeySpec Signature `
-Subject "CN=Subject,C=RU,L=Moscow,[email protected]" `
-KeyExportPolicy Exportable `
-HashAlgorithm sha256 `
-KeyLength 4096 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-KeyUsage CertSign `
-KeyUsageProperty All `
-NotAfter (get-date).addyears(10) `
-TextExtension @("2.5.29.19 ={critical} {text}ca=1&pathlength=3")



Доверия к вашему корневому сертификату нет даже у вас sarcastic.gif.



Если присмотреться то на значке сертификата есть ключик :) Это значит, что у нас есть не только сертификат но и закрытый ключ. Который лежит там же... там... жжжже...



Значение "Thumbprint (отпечаток)" используется для действий с сертификатом. При подписи этим сертификатом будет браться именно значение "Thumbprint".

2. Давайте экспортируем наш сертификат и закрытый ключ для резервного копирования и распространения сертификата, у нас всё равно открыта оснастка "certmgr.msc".
Нажимаем правую кнопку мыши и выбираем "Экспорт":



Далее:



Да, экспортировать закрытый ключ:



Оставляем всё как есть:



Ставим галочку на "Пароль", без этого не получится.
Microsoft нормально воспринимает оба типа шифрования. Если нужно будет импортировать на Android то нужно выбирать кодировку "TripleDES-SHA1"! Но я бы на вашем месте сделал два экспорта в обоих кодировках. Этот экспорт мы делаем чтобы всё не проебать.



Готово:



3. Теперь снова экспортируем, но только сертификат.
На втором шаге не выбираем "Закрытый ключ":


Кодировка для добавления на Android (Apache) нужна "BASE-64".
Расширения файла получается ".cer", для упоротых систем можно смело его сменить переименовыванием на ".crt"



Теперь у нас есть корневой Сертификат, и мы можем его раздавать всем, чтобы они доверяли нашим будущим сертификатам.
И есть архив ".PFX" для сохранения на случай поломки.
Класс shyesok.
Оставьте комментарий!

smile biggrin LOL rofl2 wink rolleyes2 acute aggressive bad blume1 blush bomb boredom bye clapping congratulate cool cray dance2 diablo drinks empathy flag_of_truce fool fool3 good good2 greeting help hi hmm i_am_so_happy mad mocking morning1 music nea new_russian nyam2 ok pardon playboy pleasantry sad scare scratch_one-s_head secret shok sorry stop timeout yahoo shyesok crazy dash1.gif dash2.gif gamer.gif hang1.gif ireful.gif mail1.gif mamba.gif sarcastic.gif wacko1.gif wacko2.gif wacko3.gif


Комментарий будет опубликован после проверки

     

  

(обязательно)