Генерация сертификата ssl: Как сгенерировать самоподписанный сертификат SSL
Как сгенерировать самоподписанный сертификат SSL
SSL cертификаты используются для шифрования информации, передаваемой через сети общего доступа. Сертификаты применяют при построении почтовой системы, а также (значительно чаще) устанавливают на домены для получения доступа к сайту через интернет браузер по порту 443. Только посредством https соединения осуществляются любые денежные операции на сайтах систем онлайн торговли.
SSL cертификаты и ключи можно генерировать на любых Linux серверах, подписывать из должны сертфикационные центры, также сертфикаты можно подписывать самостоятельно. Браузер при обращении к сайту, работающему с самоподписанным SSL сертификатом будет выдавать предупреждение о невозможности убедиться в защищенности соединения, однако часто такой вариант также находит применение. Рассмотрим как сгенерировать самоподписанный сертификат SSL.
Для того чтобы сгенерировать самоподписанный сертификат потребуется установить на сервер пакет openssl (часто он установлен по умолчанию)
apt-get install openssl
Файлы приватного ключа и цепочки сертификатов генерируются одной командой
openssl req -new -x509 -days 365 -sha256 -newkey rsa:2048 -nodes -out example.pem -keyout example.key
После ее выполнения возникает ряд диалогов, в которых нужно указать данные организации и домен для которого выпускается сертификат
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:some state
Locality Name (eg, city) []:mycity
Organization Name (eg, company) [Internet Widgits Pty Ltd]:company
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:mail@example.com
Результатом будут создавшиеся файлы example.pem и example.key
Обычно этого достаточно и файлы уже можно использовать
Путь к ним теперь необходимо будет указывать при настройке различного ПО, использующего сертификаты: веб- (Apache, Nginx) и почтовых серверов (Postfix, Exim, Dovecot).
Генерация самоподписанного сертификата в несколько шагов
Далее описан тот же процесс, что и ранее, но не в одной команде, а по шагам.
Создаем ключ
openssl genrsa -des3 -out example.key 1024
Создаем запрос на сертификат на основе ключа
openssl req -new -key example.key -out cert.csr
Появится файл example.src
Парольная фраза при использовании приватного ключа
Каждый раз когда мы производим какие-либо операции с приватным ключом система запрашивает парольную фразу. Чтобы не вводить ее каждый раз производим следующие действия. Генерируем ключ .nopass и заменяем использовавшийся ранее ключ.
openssl rsa -in example.key -out example.key.nopass
mv example.key.nopass example.key
После этого парольная фраза уже не понадобится
Генерируем сертификат
openssl x509 -req -days 365 -in example.csr -signkey example.key -out example.crt
Читайте также про то, как установить SSL сертификат на Apache и на Nginx
Онлайн Генератор Самоподписанного SSL Сертификата для Сайта, Создать Самоподписанный SSL Сертификат Бесплатно
Использование SSL сертификатов
Сертификаты SSL необходимы, когда вам нужно открывать веб-сайты, используя HTTPS протокол. Профессиональным веб-сайтам требуются профессиональные надежные SSL сертификаты центров SSL сертификации, таких как Comodo, Symantec, Thawte, GeoTrust, RapidSSL. Доверенные SSL сертификаты используют цепочку доверия, где каждый сертификат подписан (доверен) более высоким и более надежным сертификатом. В верхней части цепочки доверия находятся корневые сертификаты, принадлежащие Verisign или GeoTrust. Такие корневые сертификаты обычно поставляются с вашей операционной системой или веб-браузером.
Как браузер анализирует SSL ответ
Когда вы посещаете веб-сайт по HTTPS протоколу, ваш веб-браузер получает SSL сертификат для веб-сайта. Он проверяет SSL сертификат, чтобы убедиться, что он действительно выдан для этого имени домена, которое вы открываете. После этого он проверит цепочку доверия и кто его подписал. Если этот SSL сертификат является корневым сертификатом, браузер сравнит его с теми, которые поставляются с операционной системой. Если это сертификат не корневой но подписан доверенным SSL сертификатом, он проверит всю цепочку доверия.
При использовании самоподписанного SSL сертификата у него нет цепочки доверия. Сертификат подписан самим собой. Веб-браузер обнаружит это и покажет предупреждение, сообщая вам, что сертификат веб-сайта не трастовый. Поэтому не стоит использовать самоподписанные SSL сертификаты для профессионального использования, так как ваши посетители не будут доверять вашему веб-сайту и могут отказаться от его использования.
Реальные трастовые SSL сертификаты
Настоящие доверенные SSL сертификаты безопасны и защищённы, браузеры доверяют им, а все посетители не получают никаких SSL предупреждений. Мы предоставляем огромное количество настоящих трастовых SSL сертификатов, каждый может найти наиболее подходящий SSL продукт.
Генерация и использование SSL-сертификатов в Linux
В целях безопасности, в частности во избежание перехвата конфиденциальных, персональных или важных данных. Многие владельцы сайтов в сети защищают трафик с помощью SSL-сертификатов. Естественно, защите подлежит только тот трафик, который связан непосредственно с запросами и передачей данных с определённым адресом — адресом сайта. Системные администраторы, сотрудники техподдержки должны ориентироваться в вопросах, касающихся создания и внедрения SSL-сертификатов для хостов. Поскольку предоставляют соответствующие услуги. Для этих целей в системах Linux существует утилита openssl. Она является свободной реализацией методов защиты, протокола SSL, а также генерации сертификатов.
Как SSL-сертификат помогает защитить данные?
На самом деле схема защиты трафика основана на его шифровании открытым ключом и его расшифровке закрытым ключом. Понятие SSL-сертификата применимо в контексте подтверждения того факта, что открытый ключ действительно принадлежит именно тому домену, с которым происходит соединение. Таким образом, в данной схеме присутствуют две составляющие:
- Пара ключей (открытый и закрытый) — для шифрования/расшифровки трафика;
- Подпись открытого ключа. Гарантирующая, что он подлинный и обслуживает именно тот домен, для которого и был создан.
Обе эти составляющие и представляют собой то, что принято обозначать понятием SSL-сертификат. Подпись является гарантией, поскольку выдаётся авторитетным центрами сертификации. Это доступные всем онлайн-сервисы (достаточно воспользоваться любой поисковой системой), которым можно отправить свой ключ, заполнив соответствующую анкету. Далее сервис (центр сертификации) обрабатывает данные из анкеты и сам ключ и высылает уже подписанный ключ обратно его владельцу. Среди самых популярных на сегодняшний день центров сертификации являются такие как Comodo.
Важно заметить, что зашифрованный открытым ключом трафик возможно расшифровать только соответствующим ему закрытым ключом. В свою очередь подпись для открытого ключа от авторитетного цента говорит, что зашифрованный трафик пришёл от «своего» или подлинного узла и его можно принять в обработку, т. е. расшифровать закрытым ключом.
Общий порядок создания SSL-сертификата, ключи и подпись
Во время создания SSL-сертификата происходит последовательная обработка следующих видов ключей:
- *.key – это сами ключи шифрования, открытий и/или закрытый;
- *.csr – ключ, содержащий сформированный запрос для получения подписи сертификата от центра сертификации, а сам запрос — это открытый ключ и информация о домене и организации, связанной с ним;
- *.crt, *.cer, *.pem – это, собственно, сам сертификат, подписанный центром сертификации по запросу из файла *.csr.
Для начала нужно создать закрытый ключ:
$ openssl genrsa -des3 -out server.key 2048
Здесь команда genrsa генерирует RSA-ключ, опция -des3 указывает алгоритм шифрования ключа. А опция -out указывает, что ключ должен быть получен в виде файла server.key. Число 2048 — это сложность шифрования. При выполнении этой команды пользователю будет предложено ввести пароль для шифрования. Поскольку указан его алгоритм опцией -des3. Если это личный ключ и его планируется использовать на сервере, который можно настроить в собственных целях, то естественно шифрование обязательно. Однако, многие серверы требуют закрытые ключи без шифрования (например хостинг-площадки, поскольку предоставляют универсальную услугу по заказу SSL-сертификатов). Поэтому перед генерацией закрытого ключа нужно определиться, как он будет использоваться.
Теперь нужно создать запрос на подпись — CSR-файл, который будет включать только что сгенерированный ключ server.key:
$ openssl req -new -key server.key -out server.csr
При выполнении этой команды пользователю необходимо ввести информацию о домене и организации. Причём наименование домена следует вводить точно, например, если идентификатор URL сайта https://mycompany.com, то ввести нужно mycompany.com. Для URL-идентификатора www.mycompany.com уже необходим отдельный сертификат.
Теперь файл server.csr со сформированным запросом на подпись можно отправить в выбранный центр сертификации.
Подписание SSL-сертификатов
Получить подписанный сертификат, когда имеется закрытый ключ и запрос на подпись можно несколькими способами: воспользоваться услугой авторитетных центров сертификации, отправив им запрос (CSR-файл) и получив в ответ готовый сертификат *.crt. Либо можно сделать сертификат самоподписанным. Т. е. подписать его тем же ключом, который использовался при создании файла CSR. Для этого следует выполнить команду:
$ openssl x509 -signkey server.key -in server.csr -req -days 365 -out server.crt
Здесь опция -days указывает количество дней, в течение которых выпускаемый сертификат server.crt будет действителен. В данном случае на протяжении одного года.
Также можно создать самоподписанный сертификат из имеющегося закрытого ключа без использования CSR-файла. Но в этом случае нужно вводить информацию CSR-запроса:
$ openssl req -key server.key -new -x509 -days 365 -out server.crt
Параметр -x509 задаёт формат генерируемого сертификата. Он является самым распространённым и используется в большинстве случаев. Опция -new позволяет запрашивать информацию для запроса у пользователя.
Важно отметить, что сертификаты, подписанные авторитетными центрами сертификации известны веб-браузерам. Самоподписанные сертификаты необходимо импортировать в хранилище доверенных сертификатов веб-браузера вручную. Поскольку соединения с доменами, обслуживаемыми такими сертификатами по-умолчанию блокируются.
Использование SSL-сертификатов для домена
Для использования сертификата доменом, для которого он был создан, необходимо соответствующим образом настроить виртуальный хост этого домена. Для начала нужно сохранить файлы *.crt и *.key где-нибудь, где доступ к ним может получить только их владелец. Например в ~/ssl/certs/ нужно поместить файл server.crt, в ~/ssl/private/ — файл server.key. Далее, в конфигурационном файле виртуального хоста нужно определить следующие директивы:
SSLCertificateFile /home/john/ssl/certs/server.crt SSLCertificateKeyFile /home/john/ssl/private/server.key
Важно заметить, что для SSL-соединений домена должен быть отдельный конфигурационный файл (или просто отдельная конфигурация в одном файле) виртуального хоста для него. Это необходимо, поскольку обычные HTTP-соединения обрабатываются по порту 80, а HTTPS (SSL) — по 443. Это отдельные конфигурации одного виртуального хоста (хотя это не совсем верное определение). Также для Apache должен быть включен модуль SSL. Типичная конфигурация может выглядеть следующим образом:
<IfModule mod_ssl.c> <VirtualHost 128.138.243.150:443> ServerName www.mycompany.com ServerAdmin [email protected] DocumentRoot /var/www/htdocs/mycompany ErrorLog logs/www.mycompany.com-ssl-error_log CustomLog logs/www.mycompany.com-ssl-access_log combined ScriptAlias /cgi-bin/ /var/www/cgi-bin/mycompany SSLEngine on SSLCertificateFile /home/john/ssl/certs/server.crt SSLCertificateKeyFile /home/john/ssl/private/server.key </VirtualHost> </IfModule>
Как подключить ssl сертификата в nginx читайте в этой статье.
Заключение
В заключение следует заметить, что генерация и подключение SSL-сертификатов к домену — далеко не самая сложная задача. Однако она требует очень внимательного выполнения отдельных её этапов, поскольку от ошибки зависит безопасность для домена.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как создать SSL сертификат самостоятельно?
Для создания защищенного соединения между пользователем сетевого ресурса и сервером широко применяются SSL сертификаты, которые являются гарантией того, что передаваемые данные будут надежно зашифрованы и смогут быть прочитаны только владельцем данного сертификата. Подобная схема позволяет исключить утечку информации при передаче сведений о банковской карте клиента, его персональных данных и прочей конфиденциальной информации. Даже в том случае, если поток данных удастся перехватить, расшифровать его без наличия секретного ключа и алгоритма шифрования не представляется возможным.
Процесс создания SSL сертификата самостоятельно — достаточно трудоемкий процесс, требующий немало времени, особенно, если Вы раньше не сталкивались с этим вопросом. Поэтому в некоторых случаях проще получить самый простой сертификат от доверенного центра сертификации, выдача которого занимает всего 5 минут.
Создать сертификат самому можно средствами свободно распространяемого пакета IIS6 Resource Kit Tools.
Может потребоваться установка служб. Для этого в Панели управления необходимо выбрать раздел «Программы и компоненты» и в открывшемся окне в меню слева нажать на ссылку «Включение или отключение компонентов Windows». Далее в открывшемся окне нужно включить компонент «Службы IIS».
Что следует учесть перед созданием сертификата?
Прежде чем создать сертификат, следует проанализировать сферу его применения. Данный метод удобен для организации защиты данных на локальном сервере или во внутренней сети предприятия. Но если к сайту, использующему самоподписанный сертификат, обратится посторонний клиент, ему будет выдано уведомление, что создатель сертификата неизвестен и будет предложено выбрать, доверяет ли пользователь этому сертификату или нет. Не все готовы доверить свои личные и тем более финансовые данные неизвестному производителю. Поэтому, если Ваш сайт предполагает работу с внешними посетителями, мы рекомендуем приобрести один из SSL сертификатов доверительного центра сертификации, который занимается этим на профессиональной основе:
Использование доверенного сертификата гарантирует безопасность и исключает риски клиента. К сайтам, использующим проверенных поставщиков сертификатов безопасности, клиенты относятся более лояльно, что обеспечивает более эффективное и выгодное сотрудничество.
Создать сертификат: пошаговая инструкция
Самостоятельно создать сертификат можно, выполнив 4 простых шага:
- В Панели управления войдите в раздел «Администрирование» и выберите там пункт «Диспетчер служб IIS»
.
- В Диспетчере служб нужно перейти в раздел «Сертификаты сервера».
- Справа расположен столбец «Действия». В нем выберите пункт «Создать самозаверенный сертификат…»
- В открывшемся диалоговом окне понадобится ввести название сертификата.
Привязать сертификат к серверу
После того, как Вы создали SSL сертификат, следует привязать его к IIS-серверу. Для этого вернитесь в раздел «Сертификаты сервера» и в разделе «Подключения» слева выберите сайт, к которому планируете привязать созданный.
В столбце «Действия» нажмите на «Привязки…».
В открывшемся диалоговом окне «Добавление привязки сайта» введите сведения о привязке (не забудьте выбрать созданный сертификат в соответствующем поле) и нажмите «ОК».
После создания сертификата, описывающего метод шифрования данных, необходимо экспортировать его приватный ключ и задать пароль, чтобы предотвратить выполнение изменений. В результате этих действий будет получен полноценный сертификат, который можно применять для обеспечения защищенных соединений.
Генерация бесплатного SSL-сертификата на хостинге Евробайт
Инструкция по генерации бесплатного SSL-сертификата Let’s Encrypt на виртуальном хостинге Евробайт для перевода сайта на протокол https или при смене хостера.
SSL-сертификат Let’s Encrypt
Let’s Encrypt – это бесплатный, автоматизированный и открытый сертификат, предоставляемый некоммерческой исследовательской группой Internet Security Research Group (ISRG). Он выпускается сроком на 90 дней, после чего требуется его обновление.
Хостинг-провайдеры Beget и Timeweb предоставляют своим клиентам бессрочные SSL-сертификаты Let’s Encrypt, которые генерируют и обновляют сами.
Клиент компании Евробайт самостоятельно генерирует бесплатный SSL-сертификат и перед окончанием срока его действия перевыпускает новый.
Подготовка к генерации сертификата
Перед генерацией и первой установкой сертификата Let’s Encrypt необходимо выполнить следующие действия:
- провести резервное копирование сайта;
- скачать утилиту putty.exe;
- найти письмо от хостинг-провайдера Евробайт с регистрационными данными.
Резервные копии могут понадобиться для восстановления сайта, если что-то пойдет не так. Не забывайте о резервном копировании перед любым вмешательством в файлы и базы данных вашего сайта.
Бесплатная утилита putty.exe понадобится для подключения по SSH в свой аккаунт на виртуальном хостинге. Скачиваем ее с этой страницы в разделе «Alternative binary files» (32-битную или 64-битную версию на выбор).
Из письма Евробайт об активации хостинга понадобятся адрес, логин и пароль из раздела FTP/SSH для входа в аккаунт через командную строку утилиты putty.exe.
Письмо об активации хостинга Евробайт
Запуск утилиты putty.exe
Это операция проводится каждый раз при генерации первого и последующих бесплатных SSL-сертификатов Let’s Encrypt.
Запускаем программу putty.exe, открывается следующее окно:
Окно настроек утилиты putty.exe
Подключаемся по SSH в свой аккаунт. Для этого понадобятся Адрес, Логин и Пароль из письма Евробайт об активации хостинга.
Вписываем в поле Host Name указанный в письме Адрес и нажимаем кнопку Open. Открывается окно командной строки с приглашением ввести логин:
Рабочее окно утилиты putty.exe
Вводим Логин и нажимаем клавишу Enter, появляется приглашение ввести пароль. Вводим Пароль (при его вводе, в целях безопасности, никакие знаки в командной строке не отображаются), нажимаем Enter. С первого раза войти в аккаунт по SSH получается не всегда, иногда сервер прерывает соединение.
Вставка из буфера обмена с помощью клавиатуры в программе putty.exe не работает, скопированный текст вставляется щелчком правой кнопки мыши, при вставке пароля никакие знаки не отображаются, как и при ручном вводе.
Создание директории и загрузка скрипта
Эти процедуры выполняются на виртуальном хостинге Евробайт однократно перед генерацией самого первого SSL-сертификата.
Запускаем putty.exe и подключаемся по SSH в свой аккаунт на хостинге Евробайт. Далее последовательно копируем каждую команду, вставляем ее щелчком правой кнопки мыши на жирном курсоре в окне программы putty.exe и нажимаем клавишу Enter.
1. Создаем директорию private (копируем, вставляем и выполняем следующую команду):mkdir ~/private
2. Переходим в директорию private:cd ~/private/
3. Скачиваем скрипт letsencrypt_eb.sh:wget http://soft.eurodir.ru/letsencrypt_eb.sh
Этот скрипт установится в директорию private и будет использоваться для генерации бесплатных SSL-сертификатов для всех ваших сайтов, размещенных на хостинге Евробайт.
Генерация сертификата Let’s Encrypt
Эта процедура выполняется каждый раз при генерации нового SSL-сертификата, в том числе и для обновления действующего. Обновление заключается в выпуске нового сертификата и замены им устаревающего.
Открываем putty.exe, подключаемся по SSH в свой аккаунт на хостинге Евробайт и выполняем команду, запускающую скрипт letsencrypt_eb.sh (domain.com следует заменить на свой домен, для которого требуется сгенерировать SSL-сертификат):sh letsencrypt_eb.sh domain.com
В результате работы скрипта будут созданы файлы:
- cert-123456789.pem
- chain-123456789.pem
- fullchain-123456789.pem
- privkey-123456789.pem
В FileZilla эти файлы будут выглядеть следующим образом:
Путь к файлам сертификата в FileZilla
Далее в панели управления ISPmanager хостинга Евробайт в меню слева следует выбрать страницу «SSL сертификаты». На верхней панели инструментов нажимаем кнопку «Создать». Откроется следующее окно:
Окно создания нового SSL сертификата
Придумываем «Имя сертификата» и записываем его латиницей. В конце имени можно добавить через дефис единичку, чтобы последующие сертификаты для одного сайта можно было именовать одинаково, но под разными номерами.
«Тип сертификата»: выбираем из раскрывающегося списка значение «существующий».
Поле «Использовать ключ» заполнится само значением «указать вручную».
«Пароль» можно пропустить.
Оставшиеся поля заполняем текстовым содержимым сгенерированных файлов:
- «Приватный ключ» – privkey-123456789.pem
- «Сертификат» – cert-123456789.pem
- «Цепочка сертификатов»* – chain-123456789.pem
* В инструкции на самом хостинге Евробайт написано, что «Цепочке сертификатов» соответствует файл fullchain-123456789.pem. Однако, это не так.
Чтобы вставить в соответствующие поля текстовое содержимое файлов, необходимо перейти к ним в менеджере FileZilla или через ту же панель управления ISPmanager, открыв еще один ее экземпляр в новом окне.
Открываем нужный файл, выбирая в FileZilla из контекстного меню «Просмотр/Правка», а в панели ISPmanager нажав кнопку «Изменить». В открывшемся файле копируем текст и вставляем в соответствующее окно формы «Новый SSL сертификат».
Обратите внимание, что в конце вставленных текстов не должно быть пробелов и невидимых символов переноса строки. Если они есть, удалите их кнопкой «Backspace». Иначе, при попытке создать новый сертификат, будет выведено сообщение о неверной цепочке сертификатов.
Установка и обновление SSL-сертификата
Чтобы сертификат применился для нашего сайта, переходим в ISPmanager на вкладку «WWW домены», выделяем домен и нажимаем кнопку «Изменить». В открывшемся окне «Параметры WWW домена» ставим галочку в чек-боксе SSL, появятся поля «SSL порт» и «SSL сертификат». SSL порт отобразится автоматически, а в поле «SSL сертификат» выбираем только что созданный сертификат Let’s Encrypt из раскрывающегося списка и нажимаем кнопку «OK».
Окно «Параметры WWW домена»
Чтобы обновить сертификат перед окончанием срока его действия, необходимо сгенерировать и создать новый SSL-сертификат под другим именем, например, используя нумерацию.
Когда новый сертификат будет готов, выбираем его в окне «Параметры WWW домена» и нажимаем кнопку «OK». Обновить SSL-сертификат можно не ранее, чем за 30 дней до окончания срока действия предыдущего.
Если в корневой папке домена, для которого генерируется сертификат, лежит файл .htaccess с настроенным перенаправлением на https, то перед запуском скрипта необходимо переименовать файл, например в .htaccess_ , а после завершения его работы – переименовать обратно.
Все вышесказанное касается самостоятельной генерации и использования бесплатных SSL-сертификатов на виртуальном хостинге Евробайт.
Напомню, что у хостинг-провайдеров Beget и Timeweb можно заказать бессрочные сертификаты Let’s Encrypt, которые они сами сгенерируют для ваших сайтов и будут регулярно обновлять.
Создаём самоподписанный ssl сертификат с помощью OpenSSL. » Pechenek.NET
Недавно возникла необходимость создать самоподписанный сертификат. Использовал я для этого утилиту OpenSSL и Linux. Собственно этим и хочу с вами поделиться.
Для начала нам необходима ОС Linux, в принципе данная утилита есть и пот Windows, но так как есть linux пользуюсь им. В ОС необходимо установить пакет OpenSSL. Устанавливаем его следующей командой (если под админом можно без “sudo”):
sudo apt-get install openssl
sudo apt-get install openssl |
После установки OpenSSL, создаём папки, в которых будут лежать наши сертификаты и ключи, например так:
mkdir /home/devuser/cert/
mkdir /home/devuser/cert/ |
Приступаем к созданию самоподписанного ssl сертификата. Выполняем команду:
sudo openssl req -x509 -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt
sudo openssl req -x509 -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt |
Описание параметров:
- req – это генерация запросов на подпись сертификата, но если мы задаём ключ “-x509”, это означает, что мы генерируем самоподписанный сертификат.
- -newkey rsa:2048 – если у нас ещё нет ключа, мы добавляем данный параметр, что бы ключ был создан автоматически. Указываем параметры ключа.
- -days 365 – указываем количество дней, в течении которых будет действовать данный сертификат.
- -keyout /home/devuser/cert/mykey.key – параметр нужен, так как мы указали newkey и генерируем новый ключ. Указываем в какой фал положим ключ.
- -out /home/devuser/cert/cert.crt – сюда положим наш сертификат.
OpenSSL создаём сертификат
Дальше нас попросят ввести пароль к ключу. Вводим пароль, не меньше 4 символов, и повторяем ввод пароля. Затем нас попросят ввести данные о сертификате (информацию о серверной стороне). Если какие-то данные Вам не нужны можете просто ставить точку (“.”).
Давайте рассмотрим по порядку, что нам предлагают ввести:
- Country Name (2 letter code) [AU]: 77 – страна/регион
- State or Province Name (full name) [Some-State]:. – штат (у нас их нет, поэтому пропускаем)
- Locality Name (eg, city) []:Moscow – город
- Organization Name (eg, company) [Internet Widgits Pty Ltd]:Pechenek.NET – имя организации
- Organizational Unit Name (eg, section) []:. – подразделение организации, пропускаем.
- Common Name (e.g. server FQDN or YOUR name) []:Pechenek.net – Обязательное поле, это имя по которому к серверу будут обращаться.
- Email Address []:[email protected] – адрес электронной почты, тоже можно пропустить.
В итоге мы получили два файла, ключ и сертификат. Ключ-это секретный ключ, публичный ключ находиться в теле самого сертификата. Сам сертификат выглядит так:
OpenSSL самоподписанный сертификат
Убираем пароль с секретного ключа.
Ещё можно немного модифицировать наш скрипт, например убрать пароль с секретного ключа, это в большинстве случаев не удобно, если сервис стартует в автоматическом режиме, в тот момент когда ему необходимо будет получить доступ к секретному ключу, нужно будет вручную ввести пароль.
Добавляем параметр “-nodes”, в результате секретный ключ не будет зашифрован паролем.
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt |
Так же можно ещё добавить параметр “-subj” – этот тот кому принадлежит сертификат, то что мы вводили в интерактивном режиме (название организации, мыло и так далее). Можно эти параметры сразу указать в скрипте. Например так:
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt -subj /C=/ST=/L=/O=/CN=pechenek.net
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt -subj /C=/ST=/L=/O=/CN=pechenek.net |
В примере выше пропускаем все поля, кроме CN (Common Name).
Для просмотра сертификата можно воспользоваться этой командой:
openssl x509 -noout -text -in /home/devuser/cert/cert.crt
openssl x509 -noout -text -in /home/devuser/cert/cert.crt |
- -noout – выводим данные не в файл а в консоль.
- -text – выводим данные в текстовом виде.
- -in /home/devuser/cert/cert.crt – откуда берём сертификат
На этом всё. Не забывайте пользоваться кнопками «Поделиться в соц. сетях», так же подписываться на наш Канал и группы в ВК, Twitter, Facebook.
Всем удачи и море печенек!
Как создать самоподписанный сертификат в Windows
Большинству администраторов Windows, знакомых с темой PKI, известна утилита MakeCert.exe, с помощью которой можно создать самоподписанный сертификат. Эта утилита включена в состав Microsoft .NET Framework SDK и Microsoft Windows SDK. В Windows 8 и Windows Server 2012 появилась встроенная возможность создания самоподписанного сертификата средствами PowerShell 3.0 и выше без использования специальных утилит.
- Использование командлета New-SelfSignedCertificate для создания сертфикатов
- Создаем самоподписанный сертфикат типа Code Signing для подписывания кода
Использование командлета New-SelfSignedCertificate для создания сертфикатов
Для создания самоподписанного сертификата в PowerShell предлагается использовать командлет New-SelfSignedCertificate, входящий в состав модуля PoSh с именем PKI (Public Key Infrastructure).
Чтобы вывести список всех доступных командлетов в модуле PKI, выполните команду:
Get-Command -Module PKI
Самоподписанные сертификаты рекомендуется использовать в тестовых целях или для обеспечения сертификатами внутренних интранет служб (IIS, Exchange, Web Application Proxy, LDAPS, ADRMS, DirectAccess и т.п.), в тех случая когда по какой-то причине приобретение сертификата у внешнего провайдера или разворачивание инфраструктуры PKI/CA невозможны.
Совет. Не забывайте также про возможность использования полноценных бесплатных SSL сертификатов от Let’s Encrypt. Пример, как выпустить SSL сертификат Let’s Encrypt и привязать его к сайту IIS.
Для создания сертификата нужно указать значения –DnsName (DNS имя сервера, имя может быть произвольным и отличаться от имени localhost) и —CertStoreLocation (раздел локального хранилища сертификатов, в который будет помещен сгенерированный сертификат). Командлет можно использовать для создания самоподписанного сертификата в Windows 10 (в нашем примере), Windows 8/8.1 и Windows Server 2016/2012/2012 R2.
Чтобы создать сертификат для DNS имени test.contoso.com и поместить его в список персональных сертификатов компьютера, выполним команду:
New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My
Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
Thumbprint Subject
---------- -------
2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 CN=test.contoso.com
По-умолчанию генерируется самоподписанный сертификат со следующим настройками:
- Криптографический алгоритм: RSA;
- Размер ключа: 2048 бит;
- Допустимые вариантов использования ключа: Client Authentication и Server Authentication;
- Сертификат может использоваться для: Digital Signature, Key Encipherment ;
- Срок действия сертификата: 1 год.
Данная команда создаст новый сертификат и импортирует его в персональное хранилище компьютера. Открыв оснастку certlm.msc, проверим, что в разделе Personal хранилища сертификатов компьютера появился новый сертификат.
Как вы видите, в свойствах сертификата указано, что данный сертификат может использоваться для аутентификации клиентов (Client Authentication), однако он действителен и для аутентификации сервера (Server Authentication).
Примечание. Срок действия такого самоподписанного сертификата ограничивается 1 годом с момента его создания. Чтобы выпустить сертификат на 3 года, выполните следующие команды:
$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
New-SelfSignedCertificate -dnsname test.contoso.com -notafter $add3year -CertStoreLocation cert:\LocalMachine\My
Чтобы экспортировать полученный сертификат c закрытым ключом в pfx файл, защищенный паролем, нам понадобится его отпечаток (Thumbprint), который нужно скопировать из результатов выполнения команды New-SelfSignedCertificate:
$CertPassword = ConvertTo-SecureString -String “YourPassword” -Force –AsPlainText
Export-PfxCertificate -Cert cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\test.pfx -Password $CertPassword
Можно экспортировать открытый ключ сертификата:
Export-Certificate -Cert Cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\testcert.cer
Полученный открытый ключ или сам файл сертификата можно установить на веб-сервер или клиентах домена с помощью GPO (пример установки сертификата на ПК с помощью групповых политик).
Одной из полезных возможностей командлета New-SelfSignedCertificate является возможность создать сертификат с несколькими различными именами Subject Alternative Names (SAN).
Примечание. Если создается сертификат с несколькими именами, первое имя в параметре DnsName будет использоваться в качестве CN (Common Name) сертификата.
К примеру, создадим сертификат, у которого указаны следующие имена:
- Subject Name (CN): adfs1.contoso.com
- Subject Alternative Name (DNS): web_gw.contoso.com
- Subject Alternative Name (DNS): enterprise_reg.contoso.com
Команда создания сертификата будет такой:
New-SelfSignedCertificate -DnsName adfs1.contoso.com,web_gw.contoso.com,enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My
Также можно выписать сертификат для всего пространства имен в домене, для этого в качестве имени сервера указывается *.contoso.com.
New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname *.contoso.com
Создаем самоподписанный сертфикат типа Code Signing для подписывания кода
В PoweShell 3.0 командлет New-SelfSifgnedCertificate генерировал только SSL сертификаты, которые нельзя было использоваться для подписывания кода драйверов и приложений (в отличии сертификатов, генерируемых утилитой MakeCert).
В PowerShell 5 новая версия командлета New-SelfSifgnedCertificate теперь может использоваться для выпуска сертификатов типа Code Signing.
Для создания самоподписанного сертфиката для подписывания кода приложений, выполните команду:
$cert = New-SelfSignedCertificate -Subject "Cert for Code Signing” -Type CodeSigningCert -CertStoreLocation cert:\LocalMachine\My
Попробуем подписать PowerShell скрипт с помощью данного сертификата:
Set-AuthenticodeSignature -FilePath C:\PS\test_script.ps1 -Certificate $cert
Если при выполнении команды появится предупреждение UnknownError, значит этот сертификат недоверенный, т.к. находится в персональном хранилище сертификатов пользователя.
Нужно переместить его в корневые сертификаты (не забывайте периодически проверять хранилище сертификатов Windows на наличие недоверенных сертфикатов и обновлять списки корневых сертификатов):
Move-Item -Path $cert.PSPath -Destination "Cert:\CurrentUser\Root"
После этого вы можете подписать свой PowerShell скрипт с помощью данного самоподписанного сертификата.
Создание самоподписанного сертификата SSL
Последнее обновление 27 мая 2020 г.
При использовании функции конечной точки SSL для непроизводственных приложений вы можете избежать затрат, связанных с сертификатом SSL, используя самоподписанный сертификат SSL. Хотя в сертификате реализовано полное шифрование, посетители вашего сайта увидят предупреждение браузера, указывающее на то, что этому сертификату нельзя доверять.
Вы можете пропустить это предупреждение, чтобы просмотреть зашифрованный сайт.
Предварительные требования
Библиотека openssl требуется для создания вашего собственного сертификата. Выполните следующую команду в своей локальной среде, чтобы узнать, установлен ли у вас openssl.
$ который openssl
/ usr / bin / openssl
Если команда и
не возвращает путь, вам нужно будет установить openssl самостоятельно:
Сгенерировать закрытый ключ и запрос на подпись сертификата
Для создания сертификата SSL требуются закрытый ключ и запрос на подпись сертификата.Их можно сгенерировать с помощью нескольких простых команд.
Когда команда openssl req
запрашивает «пароль вызова», просто нажмите return, оставив пароль пустым. Этот пароль используется центрами сертификации для аутентификации владельца сертификата, когда они хотят отозвать свой сертификат. Поскольку это самозаверяющий сертификат, отозвать его через CRL (список отзыва сертификатов) невозможно.
$ openssl genrsa -des3 -passout pass: x -out server.пароль 2048
...
$ openssl rsa -passin pass: x -in server.pass.key -out server.key
запись ключа RSA
$ rm server.pass.key
$ openssl req -new -key server.key -out server.csr
...
Название страны (двухбуквенный код) [AU]: США
Название штата или провинции (полное название) [Some-State]: Калифорния
...
Пароль вызова []:
...
Создать сертификат SSL
Самоподписанный сертификат SSL генерируется из закрытого ключа server.key
и файлов server.csr
.
$ openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
Файл server.crt
— это сертификат вашего сайта, подходящий для использования с надстройкой SSL Heroku вместе с закрытым ключом server.key
.
.
OpenSSL CSR Tool — создавайте свою CSR быстрее
Наш мастер OpenSSL CSR Wizard — это самый быстрый способ создать CSR для Apache (или любой платформы) с помощью OpenSSL.
Введите данные, щелкните Generate , затем вставьте настроенную команду OpenSSL CSR в свой терминал.
После того, как вы создали запрос на подпись сертификата (CSR) и заказали сертификат, вам все равно необходимо установить сертификат SSL на свой сервер.
Инструкции по установке сертификатов SSL см. В разделе «Инструкции и руководства по установке сертификатов SSL».
Где мне вставить эту команду?
Вы можете запускать эту команду везде, где у вас есть OpenSSL — скорее всего, на вашем сервере, но вы также можете запустить ее на своем собственном компьютере, поскольку в большинстве дистрибутивов Linux по умолчанию установлен OpenSSL. Просто убедитесь, что вы отслеживаете свой файл закрытого ключа после создания CSR; вам понадобится этот закрытый ключ для установки сертификата.
Что происходит, когда я запускаю эту команду?
OpenSSL создает и ваш закрытый ключ, и ваш запрос на подпись сертификата, и сохраняет их в двух файлах: your_common_name.key и your_common_name.csr. Затем вы можете скопировать содержимое файла CSR и вставить его в текстовое поле CSR в нашей форме заказа.
Какой сертификат мне купить?
Если вам нужен сертификат SSL для Apache, лучше всего использовать стандартные сертификаты и сертификаты с подстановочными знаками.
DigiCert Wildcard может защитить все имена серверов в вашем домене (например, * .example.com, ).
Годовая цена | ||||
---|---|---|---|---|
2 года | $ 653 в год | (1307 долл. США) | (вы экономите 10%) | Купить сейчас |
1 год | $ 688 | Купить сейчас |
Стандартные сертификаты способны защитить одно имя сервера (например.г., mail.example.com ). Если вам нужен SSL только для одного имени хоста, стандартный сертификат будет работать отлично.
Годовая цена | ||||
---|---|---|---|---|
2 года | 207 долларов в год | (414 долл. США) | (вы экономите 10%) | Купить сейчас |
1 год | $ 218 | Купить сейчас |
Что делать, если мне нужны альтернативные имена субъектов?
Многодоменные сертификаты (SAN) позволяют назначать несколько имен хостов, известных как альтернативные имена субъектов или SAN, в одном сертификате.
Использование OpenSSL для добавления альтернативных имен субъектов в CSR — сложная задача. Мы советуем не хлопотать, используйте наиболее важное имя сервера в качестве общего имени в CSR, а затем укажите другие имена в процессе заказа. Наш процесс заказа сертификатов для нескольких доменов (SAN) позволяет указать все нужные имена, не заставляя вас включать их в CSR.
Вы также можете использовать OpenSSL для создания запроса сертификата для сертификата подписи кода.
Si desea información en español a Hacer un CSR Utilizando OpenSSL.
Связанный:
.
Создание и установка SSL-сертификата Let’s Encrypt для приложения Bitnami
Введение
Let’s Encrypt — это бесплатный центр сертификации (ЦС), который выдает сертификаты SSL. Вы можете использовать эти SSL-сертификаты для защиты трафика к хосту приложения Bitnami и от него.
Это руководство проведет вас через процесс создания сертификата Let’s Encrypt SSL для вашего домена, а также его установку и настройку для работы со стеком приложений Bitnami.
ВАЖНО: шаги, описанные в этом руководстве, применимы ко всем приложениям Bitnami, за следующими исключениями:
Допущения и предпосылки
В этом руководстве предполагается, что:
- Вы развернули приложение Bitnami, и приложение доступно по общедоступному IP-адресу, поэтому процесс Let’s Encrypt может подтвердить ваш домен.
- У вас есть необходимые учетные данные для входа в экземпляр приложения Bitnami.
- У вас есть одно или несколько доменных имен.
- Вы настроили DNS-запись доменного имени так, чтобы она указывала на общедоступный IP-адрес вашего экземпляра приложения Bitnami.
Используйте инструмент настройки Bitnami HTTPS
ВАЖНО: Инструмент настройки Bitnami HTTPS пока не поддерживает настройку веб-серверов NGINX. Если вы используете NGINX, следуйте разделу альтернативного подхода.
Bitnami HTTPS Configuration Tool — это инструмент командной строки для настройки в основном сертификатов HTTPS в стеках Bitnami, но также и общих функций, таких как автоматическое обновление, перенаправление (например, HTTP на HTTPS) и т. Д. Этот инструмент находится в каталоге установки стека. по адресу / opt / bitnami .
ПРИМЕЧАНИЕ. Перед использованием инструмента настройки Bitnami HTTPS убедитесь, что конфигурация DNS вашего домена правильно отражает IP-адрес хоста. Вы можете обновить конфигурацию DNS своего домена через своего поставщика DNS.
Чтобы запустить Bitnami HTTPS Configuration Tool, выполните следующую команду и следуйте подсказкам:
$ sudo / opt / bitnami / bncert-инструмент
Обратитесь к нашему руководству для получения дополнительной информации об этом или если вы не можете найти инструмент в своем стеке Bitnami.
ПРИМЕЧАНИЕ. Инструмент настройки Bitnami HTTPS автоматически создаст задание cron для обновления вашего сертификата (ов). По умолчанию, если в системе существует учетная запись пользователя bitnami , задания cron будут добавлены под этой учетной записью.Чтобы просмотреть и изменить задание cron, используйте команду sudo crontab -u bitnami -l .
Если вы предпочитаете вручную создавать и устанавливать сертификаты Let’s Encrypt, воспользуйтесь этим альтернативным подходом.
Поиск и устранение неисправностей
В случае сбоя процесса генерации сертификата и / или если вы хотите сбросить сертификаты для любого резонанса, выполните следующие шаги:
Удалите задания cron в таблице cron пользователя root и bitnami .Выполните следующие команды и удалите все строки / команды, связанные с обновлением сертификата:
$ sudo crontab -e $ sudo crontab -e -u битнами
Измените файл конфигурации веб-сервера, чтобы использовать исходные сертификаты server.crt и server.key (они не переименовываются и не перемещаются инструментом настройки Bitnami HTTPS). В качестве альтернативы можно восстановить исходный файл конфигурации веб-сервера, который зарезервирован инструментом как битнами.conf.back.DATE в том же каталоге.
Перезапустить все сервисы Bitnami:
$ sudo /opt/bitnami/ctlscript.sh start
ВАЖНО: пользователи будут видеть предупреждения о сертификате SSL при доступе к веб-сайту, пока используются фиктивные сертификаты. Эти предупреждения исчезнут после установки действительных сертификатов SSL для веб-сайта.
Альтернативный подход
ПРИМЕЧАНИЕ. Мы находимся в процессе изменения файловой структуры и конфигурации для многих стеков Bitnami.В связи с этими изменениями пути к файлам, указанные в этом руководстве, могут измениться в зависимости от того, использует ли ваш стек Bitnami собственные системные пакеты Linux (подход A) или это автономная установка (подход B). Чтобы определить тип установки Bitnami и какой подход использовать, выполните следующую команду:
$ тест! -f "/ opt / bitnami / common / bin / openssl" && echo "Подход A: Использование системных пакетов". || echo «Подход B: Автономная установка».
Вывод команды указывает, какой подход (A или B) используется при установке, и позволит вам определить пути, конфигурацию и команды для использования в этом руководстве.Обратитесь к FAQ для получения дополнительной информации об этих изменениях.
Если ваш образ Bitnami не включает скрипт автоконфигурации или каталог / opt / bitnami / letsencrypt / , вы можете вручную установить клиент Lego, а также сгенерировать и установить сертификаты Let’s Encrypt. Следуйте инструкциям ниже.
Шаг 1. Установите клиент Lego
Клиент Lego упрощает процесс создания сертификата Let’s Encrypt. Чтобы использовать его, выполните следующие действия:
- Войдите в консоль сервера как пользователь bitnami .
Выполните следующие команды, чтобы установить клиент Lego. Обратите внимание, что вам нужно будет заменить заполнитель X.Y.Z на фактический номер версии загруженного архива:
$ cd / tmp $ curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | вырезать -d '"' -f 4 | wget -i - $ tar xf lego_vX.Y.Z_linux_amd64.tar.gz $ sudo mkdir -p / opt / bitnami / letsencrypt $ судо мв лего / опт / битнами / letsencrypt / лего
Эти шаги позволят загрузить, извлечь и скопировать клиент Lego в каталог на вашем пути.
Шаг 2. Создайте сертификат Let’s Encrypt для вашего домена
ПРИМЕЧАНИЕ. Прежде чем продолжить этот шаг, убедитесь, что ваше доменное имя указывает на общедоступный IP-адрес хоста приложения Bitnami.
Следующим шагом будет создание сертификата Let’s Encrypt для вашего домена.
Отключить все сервисы Bitnami:
$ sudo /opt/bitnami/ctlscript.sh остановить
Запросите новый сертификат для своего домена, как показано ниже, с префиксом www и без него.
ВАЖНО: Замените заполнитель DOMAIN своим фактическим доменным именем, а заполнитель EMAIL-ADDRESS — своим адресом электронной почты.
$ sudo / opt / bitnami / letsencrypt / lego --tls --email = "EMAIL-ADDRESS" --domains = "DOMAIN" --domains = "www.DOMAIN" --path = "/ opt / bitnami / letsencrypt "запустить
ПРИМЕЧАНИЕ. Вы можете использовать более одного домена (например, ДОМЕН и www.DOMAIN ), указав параметр —domains столько раз, сколько доменов вы хотите указать.При предоставлении нескольких доменов Lego создает сертификат SAN (альтернативные имена субъектов), в результате чего получается только один сертификат, действительный для всех введенных вами доменов. Первый домен в вашем списке будет добавлен как «CommonName» сертификата, а остальные будут добавлены как «DNSNames» к расширению SAN в сертификате.
Согласен с условиями использования.
Теперь набор сертификатов будет сгенерирован в каталоге / opt / bitnami / letsencrypt / Certificates .Этот набор включает файл сертификата сервера DOMAIN.crt и файл ключа сертификата сервера DOMAIN.key .
ВАЖНО: Из соображений безопасности никогда не публикуйте и не раскрывайте файл закрытого ключа SSL вашего сервера на открытом форуме.
Выходное сообщение предоставит некоторую информацию, включая дату истечения срока действия сертификата. Внимательно запомните эту дату истечения срока действия, так как вам нужно будет обновить свой сертификат до этой даты, чтобы он оставался действительным.
Пример
.