Как создать SSL сертификат самостоятельно?
Для создания защищенного соединения между пользователем сетевого ресурса и сервером широко применяются SSL сертификаты, которые являются гарантией того, что передаваемые данные будут надежно зашифрованы и смогут быть прочитаны только владельцем данного сертификата. Подобная схема позволяет исключить утечку информации при передаче сведений о банковской карте клиента, его персональных данных и прочей конфиденциальной информации. Даже в том случае, если поток данных удастся перехватить, расшифровать его без наличия секретного ключа и алгоритма шифрования не представляется возможным.
Процесс создания SSL сертификата самостоятельно — достаточно трудоемкий процесс, требующий немало времени, особенно, если Вы раньше не сталкивались с этим вопросом. Поэтому в некоторых случаях проще получить самый простой сертификат от доверенного центра сертификации, выдача которого занимает всего 5 минут.
Создать сертификат самому можно средствами свободно распространяемого пакета IIS6 Resource Kit Tools.
Может потребоваться установка служб. Для этого в Панели управления необходимо выбрать раздел «Программы и компоненты» и в открывшемся окне в меню слева нажать на ссылку «Включение или отключение компонентов Windows». Далее в открывшемся окне нужно включить компонент «Службы IIS».
Что следует учесть перед созданием сертификата?
Прежде чем создать сертификат, следует проанализировать сферу его применения. Данный метод удобен для организации защиты данных на локальном сервере или во внутренней сети предприятия. Но если к сайту, использующему самоподписанный сертификат, обратится посторонний клиент, ему будет выдано уведомление, что создатель сертификата неизвестен и будет предложено выбрать, доверяет ли пользователь этому сертификату или нет. Не все готовы доверить свои личные и тем более финансовые данные неизвестному производителю.
Использование доверенного сертификата гарантирует безопасность и исключает риски клиента. К сайтам, использующим проверенных поставщиков сертификатов безопасности, клиенты относятся более лояльно, что обеспечивает более эффективное и выгодное сотрудничество.
Создать сертификат: пошаговая инструкция
Самостоятельно создать сертификат можно, выполнив 4 простых шага:
- В Панели управления войдите в раздел «Администрирование» и выберите там пункт «Диспетчер служб IIS»
.
- В Диспетчере служб нужно перейти в раздел «Сертификаты сервера».
- Справа расположен столбец «Действия». В нем выберите пункт «Создать самозаверенный сертификат…»
- В открывшемся диалоговом окне понадобится ввести название сертификата.
Привязать сертификат к серверу
После того, как Вы создали SSL сертификат, следует привязать его к IIS-серверу. Для этого вернитесь в раздел «Сертификаты сервера» и в разделе «Подключения» слева выберите сайт, к которому планируете привязать созданный.
В столбце «Действия» нажмите на «Привязки…».
В открывшемся диалоговом окне «Добавление привязки сайта» введите сведения о привязке (не забудьте выбрать созданный сертификат в соответствующем поле) и нажмите «ОК».
После создания сертификата, описывающего метод шифрования данных, необходимо экспортировать его приватный ключ и задать пароль, чтобы предотвратить выполнение изменений. В результате этих действий будет получен полноценный сертификат, который можно применять для обеспечения защищенных соединений.
Как установить SSL-сертификат Let’s Encrypt для Ubuntu 20.
04Антон Белов
19 мая 2021
Обновлено 8 августа 2022
Apache Nginx SSL Ubuntu
Шифрование SSL / TLS является неотъемлемой частью сетевой инфраструктуры. Все web и почтовые сервера позволяют включить шифрование данных. В этой статье мы расскажем, как получить бесплатный SSL-сертификат Let’s Encrypt.
Как получить бесплатный сертификат Let’s Encrypt:
- Установите пакет «Let’s Encrypt»
- Используйте опцию автономного сервера для получения SSL-сертификата «Let’s Encrypt»
- Используйте автоматическую установку SSL-сертификата на web-серверах nginx и Apache
- Создайте и установите Wildcard-сертификат «Let’s Encrypt»
В качестве начальных условий вам потребуется доменное имя. Его A-запись DNS должна содержать публичный адрес вашего сервера.
sudo ufw allow 80
sudo ufw allow 443
Шаг 1. Установка пакета «Let’s Encrypt»
Процесс установки пакета «Let’s Encrypt» со всеми его зависимостями предельно прост — достаточно ввести команду:
sudo apt install letsencrypt
Вместе с пакетом «Let’s Encrypt» эта команда также устанавливает утилиту «certbot.timer» для автоматического продления сертификата. Она проверяет действительность SSL-сертификатов в системе два раза в день и продлевает те, срок действия которых истекает в следующие 30 дней. Для проверки запуска утилиты введите:
sudo systemctl status certbot.timer
Существуют разные конфигурации и условия получения сертификата. Далее рассмотрим некоторые из них.
Step 2 – Автономный сервер для получения SSL-сертификата «Let’s Encrypt»
Самый простой способ получить SSL-сертификат — использовать отдельную опцию в Certbot. Замените domain-name. com на свое доменное имя, выполните команду и следуйте инструкциям:
sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d domain-name.com
Параметр certonly означает, что сертификат будет получен только без установки на каком-либо web-сервере, standalone позволяет запускать собственный web-сервер для аутентификации, agree-tos — принятие ACME соглашения о подписке на сервер, являющемся предварительным условием, а preferred-challenges http — выполнение авторизации с использованием HTTP.
Step 3 – Автоматическая установка SSL-сертификата на web-серверах nginx и Apache
Certbot может автоматически устанавливать сертификат на web-серверы nginx и Apache. Для этого вам необходимо установить и выбрать подходящий дополнительный пакет для вашего сервера.
apt install python3-certbot-nginx
apt install python3-certbot-apache
Команда для nginx:
sudo certbot --nginx --agree-tos --preferred-challenges http -d domain-name. com
Для Apache:
sudo certbot --apache --agree-tos --preferred-challenges http -d domain-name.com
Следуйте инструкциям, и Certbot установит SSL-сертификат.
Step 4 – Wildcard-сертификат «Let’s Encrypt»
Единственный возможный метод создания Wildcard-сертификата — это DNS. В параметре d необходимо указать как пустой домен, так и wildcard.
sudo certbot certonly --manual --agree-tos --preferred-challenges dns -d domain-name.com -d *.domain-name.com
После этого поместите указанную запись TXT на свой DNS-сервер и нажмите «continue».
Если все в порядке, вы увидите путь хранения вашего нового Wildcard-сертификата и другую информацию.
5 из 5
Аverage rating : 5
Оценок: 1
191028 Санкт-Петербург Литейный пр. , д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300
Как получить бесплатный действительный сертификат SSL для вашего домена (HTTPS)
Получение бесплатного сертификата SSL
1. Что такое HTTPS?
2. Как работает безопасность веб-сайта?
3. Почему я должен получить SSL-сертификат?
4. Где я могу получить бесплатный сертификат SSL?
5. Что нужно учитывать при получении SSL-сертификата?
6. Как установить SSL-сертификат?
7. Что еще мне нужно сделать?
Наша команда WP Buffs помогает владельцам веб-сайтов, партнерам-агентствам и партнерам-фрилансерам получить SSL-сертификаты для своих веб-сайтов WordPress. Если вам нужно, чтобы мы управляли 1 веб-сайтом или поддерживали 1000 клиентских сайтов, мы вас поддержим.
1. Что такое HTTPS?
«HTTP» или «HTTPS» появляется в начале каждого URL-адреса веб-сайта в веб-браузере. HTTP означает Hyper Text Transfer Protocol , а S в HTTPS означает Secure. В общем, это описывает протокол, по которому данные передаются между вашим браузером и просматриваемым веб-сайтом.
HTTPS гарантирует, что вся связь между вашим браузером и веб-сайтом, который вы просматриваете, зашифрована. Это означает, что это безопасно. Только принимающий и отправляющий компьютеры могут видеть информацию при передаче данных (другие потенциально могут получить к ней доступ, но не смогут ее прочитать). На защищенных сайтах веб-браузер показывает значок замка в области URL-адреса, чтобы уведомить вас.
HTTPS должен быть на любом веб-сайте, который собирает пароли, платежи, медицинскую информацию или другие конфиденциальные данные. Но что, если бы вы могли получить бесплатный и действительный сертификат SSL для своего домена?
2. Как работает система безопасности веб-сайта?
Для включения HTTPS необходимо установить сертификат SSL (Secure Socket Layer). Сертификат содержит открытый ключ, необходимый для безопасного начала сеанса. Когда запрашивается подключение HTTPS к веб-странице, веб-сайт отправит сертификат SSL в ваш веб-браузер. Затем ваш браузер и сайт инициируют «рукопожатие SSL», которое включает обмен «секретами» для установления безопасного соединения между вашим браузером и веб-сайтом.
Стандартный и расширенный SSL
Если веб-сайт использует стандартный SSL-сертификат, вы увидите значок замка в области URL-адреса браузера (см. снимок экрана). Если используется SSL-сертификат с расширенной проверкой (EV), адресная строка или URL-адрес будут зелеными. Стандарты EV SSL превосходят стандарты SSL. EV SSL обеспечивает удостоверение личности владельца домена. Для получения сертификата EV SSL также требуется, чтобы кандидаты прошли строгий процесс оценки, чтобы подтвердить свою подлинность и право собственности.
3. Зачем мне получать SSL-сертификат?
Даже если ваш веб-сайт не принимает и не передает конфиденциальные данные, есть несколько причин, по которым вы можете захотеть иметь безопасный веб-сайт и использовать бесплатный и действительный сертификат SSL для своего домена.
- Производительность. SSL может сократить время загрузки страницы.
- Поисковая оптимизация (SEO). Google стремится сделать Интернет безопасным и безопасным для всех, а не только для тех, кто использует, например, Google Chrome, Gmail и Диск. Компания заявила, что безопасность будет фактором, влияющим на ранжирование сайтов в результатах поиска. На данный момент он небольшой. Однако, если у вас есть безопасный веб-сайт, а у ваших конкурентов его нет, ваш веб-сайт может иметь более высокий рейтинг, что может быть преимуществом, необходимым для получения этого клика со страницы результатов поиска.
- Траст. Если ваш сайт не защищен и собирает пароли или кредитные карты, то пользователи Chrome версии 56 (выпущенной в январе 2017 года) увидят предупреждение о том, что сайт не защищен (см. скриншот ниже). Посетители, не разбирающиеся в технологиях (большинство пользователей сайта), увидев это, могут встревожиться и покинуть ваш сайт просто потому, что не понимают, что это значит. С другой стороны, если ваш сайт безопасен, это может успокоить посетителей, повысив вероятность того, что они заполнят регистрационную форму или оставят комментарий на вашем сайте. У Google есть долгосрочный план показывать все HTTP-сайты как незащищенные в Chrome.
4. Где я могу получить бесплатный сертификат SSL?
Вы получаете сертификат SSL от центра сертификации. Некоторые надежные бесплатные источники:
- Let’s Encrypt: сертификаты действительны в течение 90 дней, рекомендуемое обновление через 60 дней
- Cloudflare: бесплатно для личных веб-сайтов и блогов
- FreeSSL: бесплатно для некоммерческих организаций и стартапов в настоящее время; не может быть клиентом Symantec, Thawte, GeoTrust или RapidSSL
- StartSSL: сертификаты действительны от 1 до 3 лет
- GoDaddy: бесплатные сертификаты для проектов с открытым исходным кодом, действительные в течение 1 года
Тип сертификата и срок действия зависят от органа власти. Большинство органов предлагают стандартные сертификаты SSL бесплатно и взимают плату за сертификаты EV SSL, если они их предоставляют. Cloudflare предлагает бесплатные и платные планы и различные дополнительные опции.
5. Что нужно учитывать при получении SSL-сертификата?
Google рекомендует сертификат с 2048-битным ключом. Если у вас уже есть 1024-битный сертификат, который слабее, рекомендуется его обновить.
Вам нужно будет решить, нужен ли вам одиночный, многодоменный или подстановочный сертификат:
- Один сертификат будет для одного домена (например, www.example.com).
- Мультидоменный сертификат может использоваться для нескольких известных доменов (например, www.example.com, cdn.example.com, example.co.uk).
- Подстановочный сертификат предназначен для защищенного домена с множеством динамических поддоменов (например, a.example.com, b.example.com).
6. Как установить сертификат SSL?
Ваш веб-хост может установить сертификат бесплатно или за плату. У некоторых хостов есть возможность установки Let’s Encrypt на панели инструментов cPanel, что позволяет легко сделать это самостоятельно. Спросите своего текущего хоста или найдите тот, который предлагает прямую поддержку Let’s Encrypt. Если ваш хост не предоставляет эту услугу, ваша компания по обслуживанию веб-сайта или разработчик могут установить сертификат для вас.
Следует ожидать, что вам придется время от времени обновлять сертификат. Сроки уточняйте в центре сертификации.
Для самой простой реализации просто сотрудничайте с полностью управляемым хостинг-провайдером, и они обо всем позаботятся за вас. Один тикет в службу поддержки и готово!
7. Что еще мне нужно сделать?
Force SSL
После получения и установки SSL-сертификата вам необходимо принудительно установить SSL на сайт. Опять же, вы можете попросить сделать это своего веб-хостинга, обслуживающую компанию или разработчика. Однако, если вы предпочитаете делать это самостоятельно и ваш сайт находится на WordPress, вы можете сделать это, загрузив, установив и используя плагин.
При использовании плагина обязательно проверяйте его совместимость с вашей версией WordPress, отзывы и инструкцию по установке. Два популярных плагина для принудительного использования SSL:
- Really Simple SSL
- WP Force SSL
Обязательно сначала сделайте резервную копию своего сайта и будьте очень осторожны при выполнении этого. Если вы что-то неправильно настроите, это может иметь ужасные последствия:
- посетители не смогут увидеть ваш сайт,
- изображения не будут отображаться,
- скрипты не загружаются, что повлияет на работу некоторых вещей на вашем сайте,
- типографика и цвета не отображаются должным образом.
Настроить 301 редиректы на стороне сервера
Вам необходимо перенаправлять пользователей и поисковые системы на страницы HTTPS через 301 редиректы в файле .htaccess в корневой папке на сервере. Файл .htaccess является невидимым, поэтому убедитесь, что ваша FTP-программа настроена на отображение скрытых файлов. Например, в FileZilla выберите Сервер > Принудительно показывать скрытые файлы (см. снимок экрана).
Прежде чем добавлять перенаправления, было бы неплохо сделать резервную копию файла .htaccess. На сервере временно переименовать файл, удалив точку (именно это делает его невидимым в первую очередь), скачать файл (который теперь будет виден на вашем компьютере в результате удаления точки), затем добавить точку обратно к тому, что на сервере.
Изменить настройки Google Analytics
После выполнения этих действий вам потребуется изменить предпочтительный URL-адрес в своей учетной записи Google Analytics, чтобы отображалась HTTPS-версия вашего домена. В противном случае ваша статистика трафика будет отключена, потому что HTTP-версия URL-адреса рассматривается как веб-сайт, полностью отличающийся от HTTPS-версии.
Google Search Console также рассматривает HTTP и HTTPS как отдельные домены, поэтому добавьте домен HTTPS в эту учетную запись.
Имейте в виду, что при переключении с HTTP на HTTPS, если на вашем сайте включены кнопки социальных сетей, количество общих ресурсов будет сброшено.
Вот как вы устанавливаете бесплатный и действительный сертификат SSL для своего домена и шифруете свои данные, чтобы обеспечить их безопасность. SSL-сертификаты — часть будущего безопасности WordPress, так что приобретите свой или останетесь в каменном веке.
Хотите оставить отзыв или присоединиться к беседе? Добавляйте свои комментарии 🐦 в Twitter.
SaveSave
SaveSave
linux — Использование openssl для получения сертификата с сервера
спросил
Изменено 1 год, 4 месяца назад
Просмотрено 1,1 млн раз
Я пытаюсь получить сертификат удаленного сервера, который затем можно использовать для добавления в хранилище ключей и использования в моем приложении Java.
Старший разработчик (который в отпуске 🙁 ) сообщил мне, что я могу запустить это:
openssl s_client -connect host.host:9999
, чтобы получить необработанный сертификат, который затем можно скопировать и экспортировать. Я получаю следующий вывод:
depth=1 /C=NZ/ST=Тестовый штат или провинция/O=Название организации/OU=Название организационной единицы/CN=Test CA проверить ошибку: число = 19: самоподписанный сертификат в цепочке сертификатов проверить возврат: 0 23177: ошибка: 14094410: подпрограммы SSL: SSL3_READ_BYTES: ошибка рукопожатия предупреждения sslv3: s3_pkt.c: 1086: номер предупреждения SSL 40 23177: ошибка: 140790E5: подпрограммы SSL: SSL23_WRITE: ошибка рукопожатия SSL: s23_lib.c: 188:
Я также пробовал с этой опцией:
-showcerts
и этот (заметьте, работающий на Debian):
-CApath /etc/ssl/certs/
Но я получаю ту же ошибку.
Этот источник говорит, что я могу использовать этот флаг CApath, но, похоже, это не помогает. Я пробовал несколько путей безрезультатно.
Пожалуйста, дайте мне знать, где я ошибаюсь.
- linux
- безопасность
- сертификат
- openssl
- ssl-certificate
Если удаленный сервер использует SNI (то есть совместное использование нескольких хостов SSL на одном IP-адресе), вам необходимо отправить для получения нужного сертификата.
openssl s_client -showcerts -servername www.example.com -connect www.example.com:443Если удаленный сервер не использует SNI, то вы можете пропустить
-servername
параметр:openssl s_client -showcerts -connect www. example.com:443Чтобы просмотреть полную информацию о сертификате сайта, вы также можете использовать эту цепочку команд: $ echo | \ openssl s_client -servername www.example.com -connect www.example.com:443 2>/dev/null | \ openssl x509-текст13
Однострочник для извлечения сертификата с удаленного сервера в формате PEM, на этот раз с использованием
sed
:openssl s_client -connect www.google.com:443 2>/dev/null2
Хотя я согласен с ответом Ари (и проголосовал за него :), мне нужно было сделать дополнительный шаг, чтобы заставить его работать с Java в Windows (где его нужно было развернуть):
openssl s_client -showcerts -connect www. example.com:443 < /dev/null | openssl x509-outform DER > derp. derПеред добавлением преобразования
openssl x509 -outform DER
я получал сообщение об ошибке от keytool в Windows с жалобой на формат сертификата. Импорт файла .der работал нормально.1
Оказывается, здесь есть большая сложность: мне нужно было предоставить гораздо больше деталей, чтобы запустить этот процесс. Я думаю, это как-то связано с тем фактом, что это соединение требует аутентификации клиента, а хэнкшейку нужно больше информации, чтобы перейти к этапу, на котором сертификаты были сброшены.
Вот моя рабочая команда:
openssl s_client -connect host:port -key our_private_key.pem -showcerts \ -cert наш_сервер-signed_cert.pemНадеюсь, это толчок в правильном направлении для тех, кому нужна дополнительная информация.
3
Самая простая командная строка для этого, которая включает вывод PEM для добавления его в хранилище ключей, а также удобочитаемый вывод, а также поддерживает SNI, что важно, если вы работаете с HTTP-сервером:
openssl s_client -servername example. com -connect example.com:443 \ /dev/null | openssl x509-текстПараметр -servername включает поддержку SNI, а openssl x509 -text печатает сертификат в удобочитаемом формате.
1
Чтобы получить сертификат удаленного сервера, вы можете использовать инструмент
openssl
, и вы можете найти его междуBEGIN CERTIFICATE
иEND CERTIFICATE
, которые необходимо скопировать и вставить в файл сертификата (CRT).Вот команда, демонстрирующая это:
ex +'/BEGIN CERTIFICATE/,/END CERTIFICATE/p' <(echo | openssl s_client -showcerts -connect example.com:443) -scq > file.crtЧтобы вернуть все сертификаты из цепочки, просто добавьте
g
(глобальный), например:ex +'g/BEGIN CERTIFICATE/,/END CERTIFICATE/p' <(echo | openssl s_client -showcerts -connect example.com :443) -scqЗатем вы можете просто импортировать файл сертификата (
file. crt
) в свою связку ключей и сделать его доверенным, чтобы Java не жаловалась.В OS X вы можете дважды щелкнуть файл или перетащить его в свою цепочку для ключей, чтобы он появился в логине/сертификатах. Затем дважды щелкните импортированный сертификат и сделайте его Always Trust for SSL .
В CentOS 5 вы можете добавить их в файл
/etc/pki/tls/certs/ca-bundle.crt
(и запустить:sudo update-ca-trust force-enable
), или в CentOS 6 скопируйте их в/etc/pki/ca-trust/source/anchors/
и запуститеsudo update-ca-trust Extract
.В Ubuntu скопируйте их в
/usr/local/share/ca-certificates
и запуститеsudo update-ca-certificates
.HOST=gmail-pop.l.google.com ПОРТ=995 openssl s_client -servername $HOST -connect $HOST:$PORT < /dev/null 2>/dev/null | openssl x509 - превзойти PEMУ меня тоже была такая же проблема, и рядом с этим я обнаружил, что openssl не возвращает корень ca. .*'"${MYHOST}"'/,/-----КОНЕЦ СЕРТИФИКАТА-----/{следующий;}/-----НАЧАЛО/,/-----КОНЕЦ СЕРТИФИКАТ-----/{print}' 9.*'"${MYHOST}"'/,/-----КОНЕЦ СЕРТИФИКАТА-----/{следующий;}/-----НАЧАЛО/,/-----КОНЕЦ СЕРТИФИКАТА--- --/{print}' >>/etc/pki/tls/certs/ca-bundle.crt
1
Если ваш сервер является сервером электронной почты (MS Exchange или Zimbra), возможно, вам нужно добавить флаги
starttls
иsmtp
:
openssl s_client -starttls smtp -connect HOST_EMAIL:SECURE_PORT 2>/dev/null < /dev/ноль | sed -ne '/-НАЧАТЬ СЕРТИФИКАТ-/,/-КОНЕЦ СЕРТИФИКАТА-/p' > CERTIFICATE_NAME.pem
Где
HOST_EMAIL — домен сервера, например, mail-server.com.
SECURE_PORT — порт связи, например, 587 или 465
CERTIFICATE_NAME имя выходного файла (формат BASE 64/PEM)
Вы можете получить и сохранить корневой сертификат сервера, используя следующий сценарий bash:
CERTS=$(echo -n | openssl s_client -connect $HOST_NAME:$PORT -showcerts | sed -ne '/-BEGIN CERTIFICATE-/,/ -КОНЕЦ СВИДЕТЕЛЬСТВА-/p') эхо "$CERTS" | awk -v RS="-----НАЧАТЬ СЕРТИФИКАТ-----" 'NR > 1 { printf RS $0 > "'$SERVER_ROOT_CERTIFICATE'"; близко("'$SERVER_ROOT_CERTIFICATE'") }'
Просто перезапишите необходимые переменные.