Бесплатный SSL сертификат с бесплатным автоматическим обновлением
Поисковые системы стали ухудшать позиции сайтов, которые не шифруют содержимое при передаче данных. В результате SSL сертификат стал обязательным для сайтов. Можно зарегистрировать доменное имя у крупного регистратора Рег.ру и получить SSL сертификат бесплатно. Вот только проблема заключается в том, что такой сертификат бесплатно предоставляется только на один год по акции. Цена на продление SSL сертификата может вам совсем не понравиться. Хотя конечно никто не мешает год пользоваться одним сертификатом, а потом завести или бесплатный или дешёвый в другом месте.
Бесплатный SSL сертификат можно получить на Let's Encrypt и ZeroSSL. В обоих случаях сертификат будет выдан только на 90 дней. ZeroSSL - это коммерческая организация, которая предлагает и сертификаты на год, но конечно уже не бесплатно.
Let's Encrypt находится под управлением некоммерческой Internet Security Research Group (ISRG) и принимает пожертвования. При этом существует множество ACME клиентов, позволяющих с лёгкостью получить и обновлять сертификат. У нормального хостинг провайдера панель управления должна позволять автоматически обновлять сертификаты. Let's Encrypt отлично интегрируется с панелями управления Plesk, cPanel и прочими. При этом управление доменом рекомендуется осуществлять при помощи Certbot, а не протокола ACME. Настройка на выделенном сервере не вызывает проблем. Да и Let's Encrypt работает через DNS API благодаря которому интегрирована в CloudFlare, GoDaddy, Namecheap, Рег.ру,...
Я воспользовался ACME-клиентом в виде BASH скрипта. Для начала скачал скрипт:
Для выпуска сертификата достаточно было выполнить команду:
К сожалению, Valuehost предлагает SSL сертификат Positive SSL за 1500 рублей на год. Бесплатное обновление сертификата у этого хостинг-провайдера возможно на виртуальном хостинге только при помощи панели управления и не поддаётся автоматизации.
Если выполнить следующий код:
то по нему сертификат автоматически перевыпускается каждые 60 дней. При этом нужен перезапуск сервера Apache, который на виртуальном хостинге не выполняется.
В результате пользоваться CRON для регулярной проверки и обновления сертификата не имеет смысла.
Как обойти это ограничение, совершенно не могу понять. Certbot на виртуальном хостинге установить не могу. Для DNS использую сервера Valuehost, поэтому через DNS API обновлять сертификат у регистратора не получается. Есть ли какое-то ещё решение по обновлению сертификата при помощи, например, скрипта для виртуального хостинга? Или в бесплатном варианте придётся обновлять SSL сертификат вручную каждые 90 дней?
Обновление (5 июля 2020г. 22:47)
Разница в ценах на сертификаты шокирует. Благодаря моему посту, подсказали, что на HubSpot можно зарегистрировать сертификат PositiveSSL на год за 500 рублей. У используемого мной американского регистратора доменов Namecheap сертификат PositiveSSL стоит от 5 долларов в год при получении сертификата на 5 лет до 8 долларов за 1 год. Можно найти сертификат PositiveSSL и дешевле, но только не на официальном сайте, на котором ценник просто конский.
Бесплатный SSL сертификат можно получить на Let's Encrypt и ZeroSSL. В обоих случаях сертификат будет выдан только на 90 дней. ZeroSSL - это коммерческая организация, которая предлагает и сертификаты на год, но конечно уже не бесплатно.
Let's Encrypt находится под управлением некоммерческой Internet Security Research Group (ISRG) и принимает пожертвования. При этом существует множество ACME клиентов, позволяющих с лёгкостью получить и обновлять сертификат. У нормального хостинг провайдера панель управления должна позволять автоматически обновлять сертификаты. Let's Encrypt отлично интегрируется с панелями управления Plesk, cPanel и прочими. При этом управление доменом рекомендуется осуществлять при помощи Certbot, а не протокола ACME. Настройка на выделенном сервере не вызывает проблем. Да и Let's Encrypt работает через DNS API благодаря которому интегрирована в CloudFlare, GoDaddy, Namecheap, Рег.ру,...
Я воспользовался ACME-клиентом в виде BASH скрипта. Для начала скачал скрипт:
wget -O - https://get.acme.sh | sh
Для выпуска сертификата достаточно было выполнить команду:
./acme.sh --issue -d example.com -d 'www.example.com' -w /path/to/certfile
К сожалению, Valuehost предлагает SSL сертификат Positive SSL за 1500 рублей на год. Бесплатное обновление сертификата у этого хостинг-провайдера возможно на виртуальном хостинге только при помощи панели управления и не поддаётся автоматизации.
Если выполнить следующий код:
acme.sh --install-cert -d example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullc hain.pem \
--reloadcmd "service apache2 force-reload"
то по нему сертификат автоматически перевыпускается каждые 60 дней. При этом нужен перезапуск сервера Apache, который на виртуальном хостинге не выполняется.
В результате пользоваться CRON для регулярной проверки и обновления сертификата не имеет смысла.
0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null
Как обойти это ограничение, совершенно не могу понять. Certbot на виртуальном хостинге установить не могу. Для DNS использую сервера Valuehost, поэтому через DNS API обновлять сертификат у регистратора не получается. Есть ли какое-то ещё решение по обновлению сертификата при помощи, например, скрипта для виртуального хостинга? Или в бесплатном варианте придётся обновлять SSL сертификат вручную каждые 90 дней?
Обновление (5 июля 2020г. 22:47)
Разница в ценах на сертификаты шокирует. Благодаря моему посту, подсказали, что на HubSpot можно зарегистрировать сертификат PositiveSSL на год за 500 рублей. У используемого мной американского регистратора доменов Namecheap сертификат PositiveSSL стоит от 5 долларов в год при получении сертификата на 5 лет до 8 долларов за 1 год. Можно найти сертификат PositiveSSL и дешевле, но только не на официальном сайте, на котором ценник просто конский.