Введение
Центром информации в мире все больше становится всемирная паутина. Многие газеты и журналы заменили свои бумажные версии на электронные. Каждая организация, коммерческая или общественная имеет свою страницу на просторах интернет. Именно в это время безопасное управление своими страницами становится необходимостью. Также на первый план выходит доверие к странице в интернет, на которой публикуется информация. В августе 2014 года Google сделали заявление, что в целях повышения информационной безопасности рекомендуется перейти с протокола HTTP, который передается по каналам связи в открытом текстовом виде, на защищенный протокол HTTPS. В первую очередь это нужно для тех, кто управляет сайтом, выкладывает на него новые материалы, делает дизайн и т.д. Именно для выполнения этих функций пользователи сначала должны представится системе и доказать с помощью учетной записи и пароля, что имеют такое право проводить изменения на сайте. Отсылая свои учетные данные в открытую через каналы интернет люди дают возможность перехватывать их, накапливать и применять не по назначению. Применяя зашифрованный канал обмена информацией между сервером и рабочим компьютером мы сильно затрудняем перехват и последующие неправомерное искажение информации. Также Google начинает давать преимущество в ранжировании поисковых ответов сайтам, которые используют HTTPS как основной протокол.
Для перевода своего сайта на HTTPS необходимо получить сертификаты для своего доменного имени, на котором отвечает Ваш сайт. Предлагается множество платных вариантов получения сертификатов, среди них такие известные поставщики, как Comodo, Thawte или GeoTrust. Преимуществом данных поставщиков является страхование устойчивости и потерь от взлома, удобство управления сертификатами и т.д. Но для начала своей деятельности молодым организациям не хватает финансовых средств для ведения основного бизнеса и поэтому бесплатный вариант генерации сертификатов может быть предпочтительнее. Некоммерческая организация Internet Security Research Group предлагает создавать сертификаты под брендом Let’s Encrypt. Также разработчики предлагают наборы инструментов, которые помогут автоматизировать процесс получения сертификатов, так как данные сертификаты действую в течении 3-х месяцев с даты выпуска.
Установка сертификата Let’s Encrypt
в Linux Centos 7
В стандартных дистрибутивах Linux есть репозитарии, в которых есть пакет certbot, автоматизирующий получение сертификатов. В Centos 7 пакет certbot находится в репозитарии Epel. Чтобы его добавить нужно выполнить команду:
$ sudo yum install epel-release
Также нужно установить сопроводительные пакеты:
$ sudo yum install httpd mod_ssl python-certbot-apache
После установки пакетов мы сразу можем приступать к генерации сертификатов. Для сервера apache certbot генерирует сразу все настройки сервера, которые позволяют использовать сертификаты сразу без дополнительных движений:
# certbot --apache -d domain.tld Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org Obtaining a new certificate Performing the following challenges: tls-sni-01 challenge for domain.tld Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/httpd/conf.d/virtual-le-ssl.conf Deploying Certificate for itplus.intavacon.ru to VirtualHost /etc/httpd/conf.d/virtual-le-ssl.conf Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 Redirecting vhost in /etc/httpd/conf.d/virtual.conf to ssl vhost in /etc/httpd/conf.d/virtual-le-ssl.conf ------------------------------------------------------------------------------- Congratulations! You have successfully enabled https://domain.tld You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=domain.tld ------------------------------------------------------------------------------- IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/domain.tld/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/domain.tld/privkey.pem Your cert will expire on 2018-01-20. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Во время создания сертификата, если Вы первый раз запускали скрипт, то у Вас спросят адрес электронной почты, чтобы присылать уведомления с технической информацией. Также во время установки сертификата в сервер apache скрипт запросил выбор: выбрать 1, если я сам позже настрою перенаправление на https версию сайта или выбрать 2 и дать возможность скрипту сделать это автоматически. Я доверил скрипту создание перенаправления и теперь при открытии страницы сайта по протоколу http меня автоматически переключают на протокол https. Теперь при открытии сайта в заголовке я вижу следующее:
В Google Chrome:

Вид командной строки в Google Chrome после установки сертификата Let’s Encrypt
В Internet Explorer:

Вид командной строки в Internet Explorer после установки сертификата Let’s Encrypt
Если мы откроем детальную информацию по сертификату, то увидим следующую информацию:

Сертификат, который выдан центром сертификации Let’s Encrypt. Общая информация

Сертификат, который выдан центром сертификации Let’s Encrypt. Детальная информация

Сертификат, который выдан центром сертификации Let’s Encrypt. Дерево пути прохождения авторизации
Создание сертификата для Windows сервера IIS
Для того, чтобы сгенерировать сертификат для Windows сервера IIS воспользуемся ручной генерацией сертификатов:
$ letsencrypt certonly -d domain.tld --manual
Во время генерации сертификата появится запрос на подтверждение:
Create a file containing just this data: yZM8Qz-yRuYSGWjMi4LDFsiIJNpyb4vhpKHeSzP0RvY.jFahV2zgtjhGQgAnE8CIeYEuSCVeBF423B2slhkycL0 And make it available on your web server at this URL: http://domain.tld/.well-known/acme-challenge/yZM8Qz-yRuYSGWjMi4LDFsiIJNpyb4vhpKHeSzP0RvY
Так как iis по умолчанию не настроен обрабатывать файлы без расширения, то создадим каталог .well-known/acme-challenge в корневом каталоге сайта и в нем расположим файл web.config с содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension="." mimeType="application/unknown" />
</staticContent>
</system.webServer>
</configuration>
И добавим файл с именем, как нас попросил скрипт letsencrypt. В моем случае это yZM8Qz-yRuYSGWjMi4LDFsiIJNpyb4vhpKHeSzP0RvY и содержимое файла:
yZM8Qz-yRuYSGWjMi4LDFsiIJNpyb4vhpKHeSzP0RvY.jFahV2zgtjhGQgAnE8CIeYEuSCVeBF423B2slhkycL0
После того, как мы создали ответ на сервере, нажимаем Enter в окне выполнения скрипта letsencrypt и если ошибок не было и мы правильно создали файл ответов, то мы получим такой результат скрипта:
Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/domain.tld/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/domain.tld/privkey.pem Your cert will expire on 2018-02-09. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Для того, чтобы конвертировать сертификат для сервера IIS, перейдем в каталог /etc/letsencrypt/live/domain.tld с созданным сертификатом и выполним команду с установленной ранее утилитой openssl:
$ openssl pkcs12 -inkey privkey1.pem -in fullchain1.pem -export -out domain.tld.pfx
Об авторе