Где можно получить бесплатные SSL сертификаты
|Рассмотрим несколько вариантов получения бесплатного SSL сертификата для нашего сайта. Думаю многие читали новости и уже знают, что скоро сайты работающие по «http» будут считаться потенциально опасными и специфически обозначаться в браузерах (по крайней мере в Chrome точно). Кроме этого, уже с год (а возможно и более) наличие сертификата стало влиять на выдачу сайта. Сайты которые работают по «https» ранжируются немного лучше и держат чуть более высокие позиции. Стало быть, пора переводить ваш сайт на https!
Опишу 3 сервиса, двумя из которых пользуюсь сам:
На данный момент является наверное одним из самых новых, но в то же время и самых популярных сервисов по получению бесплатного SSL сертификата. Let’s Encrypt реализован совместно с компаниями Cisco, Akamai, Mozilla, IdenTrust, а также исследователями из Мичиганского университета.
Я думаю многие понимают, что HTTP без шифрования трафика может создавать массу проблем для сайтов с конфиденциальной информацией: риски кражи аккаунтов, слежка со стороны гос. организаций и коммерческих компаний, инъекция вредоносных скриптов. С помощью Let’s Encrypt вы можете сделать сайт как более безопасным для ваших пользователей, так и немного улучшить ситуацию в плане SEO для себя.
Получения сертификата и его последующая установка в случае с Let’s Encrypt не требует каких-то специфических навыков и много времени, все делается при помощи пару консольных команд в Linux и возможной корректировкой файла конфигурации вашего веб-сервера.
Для автоматической установки нам рекомендуют использовать «Cert Bot«. В нашем примере мы рассмотрим установку для Apache под Debian 7.
Сразу качаем скрипт Certbot и даем ему нужные права:
wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto
Следующим шагом будет непосредственно запуск самого скрипта:
./certbot-auto --apache
Далее нам надо проверить возможность автоматического продления, т.к. сертификаты Let’s Encrypt действую только в течении 90 дней, их надо постояно продлевать, но это не проблема потому как есть такая возможность, это бесплатно и оно может работать по крону:
./certbot-auto renew --dry-run
Для автоматического обновления, в cron надо добавить следующую команду (если добавляете скрипт в крон, всегда надо указывать ПОЛНЫЙ путь):
./path/to/certbot-auto renew --quiet --no-self-upgrade
На этом и закачивается установка, далее остается лишь немного подправить файлик конфигурации нашего Apache:
<VirtualHost 192.168.1.1:443> #SSL Config SSLEngine on SSLProtocol All -SSLv2 -SSLv3 -TLSv1 SSLHonorCipherOrder On SSLCertificateFile /etc/letsencrypt/live/www.website.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.website.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/www.website.com/chain.pem ServerAdmin webmaster@website.com Servername www.website.com ServerAlias website.com DocumentRoot /var/www/website/www/ <Directory /var/www/website/www> Options -Indexes +FollowSymLinks +MultiViews +Includes AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Как видите, сложного ничего нет, от стандартного файл конфигурации отличается не сильно. Надо не забыть только включить SSL Engine, указать путь до файлов-сертификатов, правильно указать путь к директории с вашим сайтом и отключить устаревшие протоколы SSL и TLSv1. Там где указан IP адрес 192.168.1.1 — надо заменить его на свой, ровно как и _website.com_
Далее перезапускаем наш Apache и у нас все должно работать:
service apache2 restart
Поздравляю, теперь ваш сайт стал еще немного безопаснее и пользователи могут с чистой совестью заходить на него в два раза чаще 🙂
Давайте теперь перейдем к другим сервисам, следующим у нас будет StartSSL.
В отличии от Lets Encrypt, StartSSL на рынке присутствует уже давно. Они занимаюся выдачей как платных сертификатов, включая Wildcard, так и бесплатных, которые нас и интересуют.
Получение бесплатного сертификата в данном случае, процесс такой же простой, как его последующая установка. Нет, тут нету никакого бота, но и трудностей такая задача вызвать не должна даже у новичков.
Первым делом вам нужно зарегистрироваться на сайте StartSSL, далее зайти в личный кабинет и «Certificates Wizzard».
В визарде, требуется указать домен и саб-домен на который вы хотели бы получить сертификат, я советую сразу подумать, как вы хотели бы чтобы ваш сайт работал, с WWW или без и в зависимости от этого выбирать нужную очередность, наш сайт из примера будет работаеть как _website.com_, по этому в поле где надо указывать домены, сразу прописываем _website.com_ , а затем _www.website.com (без подчеркиваний указывать надо, как обычные домены). Учтите, чтобы вообще там указать хоть какие-то домены, их прежде надо валидировать, для этого удобнее всего использовать почтовый ящик с вашим доменом, к примеру webmaster@website.com создать
Далее, на втором этапе выбираем «Generated by myself», заходим на сервер и генерируем наш private key:
openssl req -newkey rsa:2048 -keyout websitecom.key -out websitecom.csr
Такие имена сертификатом, с именем сайта удобно создавать для того, чтоб потом не путать их.
После того, как ваш приватный ключ сгенерирован, вам надо открыть файлик с расширением .csr и скопировать из него все в специальное поле на сайте StartSSL
Далее вы сможете скачать архив с вашими сертификатами.
После, этот архив надо распаковать и переместить сертификаты на сервер. Для этого очень удобно использовать WinSCP если работаете из под ОС Windows. Под каждый сайт лучше делать отдельные папки с сертификатами, чтоб их в последствии не путать. В самом конце остается лишь прописать пути к нашим сертификатам и как в случае с Lets Encrypt — перезапустить апач.
LoadModule ssl_module modules/mod_ssl.so Listen 443 DocumentRoot /home/httpd/private ErrorLog /usr/local/apache/logs/error_log TransferLog /usr/local/apache/logs/access_log SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /path/to/certs/2_website.com.crt SSLCertificateKeyFile /path/to/certs/websitecom.key SSLCertificateChainFile /path/to/certs/1_root_bundle.crt CustomLog /usr/local/apache/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
По итогу должно получиться так
На этом, все. Теперь ваш сайт будет доступен по https. В этом случае, опять же как и с предыдущим, лучше отключать SSL и TLSv1 протоколы. Кстати, в отличии от Let’s Encrypt, StartSSL выдает сертификаты сроком на 1 год, но у них нету возможности автоматического продления и по этому, каждый год они рассылают по почте напоминания за месяц до истечения срока действия актуального сертификата.
Ну и на последок быстренько заглянем к WoSign.
Это китайский центр сертификации, они занимаются выдаче как платных, так и бесплатных сертификатов. Выдают они бесплатные сертификаты сроком на 3 года. Увы, но их услугами лично я не пользовался, про возможность продления точно не могу сказать. Единственное, что хотелось бы отметить — это удобство, простота и стабильность того, что уже было перечислено выше. Мой совет вообще — использовать платные сертификаты или Lets Encrypt.
На сайте WoSign есть очень неплохие мануалы по получению и установке сертификата для разных версий веб-сервера, так что, думаю разобраться там можно без проблем. В этой статье мы рассматривали работу с Apache, и вот для апача соответствующие ссылки на генирацию и конфигурацию сертификата. В остальном — все происходит ровно так же, как и с предыдущими центрами сертификации.
Ссылки на центры сертификации предоставлены в шапке статьи, так что — пользуйтесь на здоровье!
Отступление: Немного про безопасность
Если вы все же решили, что пора переходить на протокол https и хотите, чтоб в адресной строке браузера сияла зелененькая надпись, то стоит не забывать и по корректную конфигурацию вашего сервера, а так же выполнение последующией проверки.
Не забывайте, что в протоколе SSL за последнее время было найдено множество разных типвом уязвимостей и по этой причине они не рекомендуются к использованию, отключайте устаревшие протоколы и работайте с TLSv.1.2
Выполнить проверку вашего сайта на корректность конфигурации «https» можно очень быстро и просто при помощи сервиса _www.ssllabs.com/ssltest/_ от компании Qualys. После выполнения сканирования вы получите список возможных ошибок конфигурации и рекомендации по их устранению.
Может быть интересно: