Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия Следующая версия справа и слева
security:free-ssl [2019/07/29 08:41]
admin
security:free-ssl [2021/01/16 14:58]
admin
Строка 3: Строка 3:
 {{ https://letsencrypt.org/images/letsencrypt-logo-horizontal.svg }} {{ https://letsencrypt.org/images/letsencrypt-logo-horizontal.svg }}
  
-<note> +Старый способ получения сертификатов через ''letsencrypt-auto'' больше не поддерживается. При запуске выдается такая ошибка:
-[[security:free-wildcard-ssl-certificate|Бесплатный Wildcard SSL сертификат]] +
-</note> +
- +
-[[https://letsencrypt.org/|Let's Encrypt]] позволяет получить бесплатный SSL сертификат автоматически, без регистрации и СМС! Дело нескольких минут. И этот сертификат [[https://letsencrypt.org/2015/10/19/lets-encrypt-is-trusted.html|воспринимают все популярные браузеры]]! +
- +
- +
-  * Сертификат без установки программ: https://www.sslforfree.com/ +
-  * [[https://habrahabr.ru/post/346798/|Гид по SSL]] +
-  * [[google-likes-https|Гугл предпочитает https]] +
-  * [[https://scotthelme.co.uk/how-to-revoke-a-lets-encrypt-certificate/|Как отозвать сертификат Lets encrypt]] +
- +
- +
-===== Установка необходимо ПО ===== +
- +
-<code bash> +
-cd ~ +
-git clone https://github.com/letsencrypt/letsencrypt +
-</code> +
- +
-===== Получение бесплатного SSL сертификата ===== +
- +
-<code bash> +
-cd letsencrypt +
-./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory -a manual auth +
-</code> +
- +
-При этом попросят ввести пароль, чтобы скрипт запустился с правами root. +
- +
-Далее необходимо ввести все домены, на которые необходимо получить сертификаты, через пробел и/или запятую. Далее предложат записать в публичный лог о получении сертификата, соглашаемся. +
- +
-После чего получим следующее сообщение:+
  
 <code> <code>
-Make sure your web server displays the following content at +./letsencrypt-auto has insecure permissions! 
-http://site.ru/.well-known/acme-challenge/abcdef-abcdef-abcdef before continuing: +To learn how to fix themvisit https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979
- +Upgrading certbot-auto 1.9.0 to 1.11.0..
-abcdef-abcdef-abcdef +Replacing certbot-auto... 
- +Your system is not supported by certbot-auto anymore
-If you don't have HTTP server configuredyou can run the following +Certbot will no longer receive updates. 
-command on the target server (as root): +Please visit https://certbot.eff.org/ to check for other alternatives.
- +
-mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge +
-cd /tmp/letsencrypt/public_html +
-printf "%s" abcdef-abcdef-abcdef > .well-known/acme-challenge/abcdef-abcdef-abcdef +
-# run only once per server: +
-$(command -v python2 || command -v python2.7 || command -v python2.6) -c +
-"import BaseHTTPServer, SimpleHTTPServer; +
-s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); +
-s.serve_forever()"+
 </code> </code>
  
-Таким образом, для проверки необходимо создать файл ''.well-known/acme-challenge/abcdef-abcdef-abcdef'' с содержимым ''abcdef-abcdef-abcdef'', который бы открывался по ссылке http://site.ru/.well-known/acme-challenge/abcdef-abcdef-abcdef +Теперь можно воспользоваться мастеромкоторый подскажет, что нужно [[https://certbot.eff.org/instructions|сделать по шагам]].
- +
-Проверяем, чтобы отдавались правильные заголовки и ответ: +
- +
-<code bash> +
-curl --head http://site.ru/.well-known/acme-challenge/abcdef-abcdef-abcdef +
-HTTP/1.1 200 OK +
-curl http://site.ru/.well-known/acme-challenge/abcdef-abcdef-abcdef +
-abcdef-abcdef-abcdef +
-</code> +
- +
-После этого нажимаем Enter в программе получения сертификатов. Если ввести несколько сайтов, программа интерактивно предложит проделать те же самые шаги для остальных доменов. +
- +
-<note tip> +
-Если после создания файла вместо него отдается страница CMS, необходимо настроить веб-сервер. А также на будущее, для следующих установок сертификатов, когда поставим редирект http => https. +
-</note> +
- +
-На примере Apache, сразу после ''RewriteEngine on'' вставляем: +
- +
-<file .htaccess> +
-# отдаем файлы для проверки Let's Encrypt сразу +
-RewriteRule ^(\.well-known/.*) - [L] +
-</file> +
- +
-<note tip> +
-Если в .htaccess корня сайта стоит AuthType Basic, отключить в каталоге ее можно размещением следующего файла: +
-</note> +
- +
-<file ini .htaccess> +
-Allow from all +
-Satisfy Any +
-</file> +
- +
-<note tip> +
-Если отдаются неправильные заголовкиих можно отключить: +
-</note> +
- +
-<file ini .htaccess> +
-Header unset Content-Type +
-</file> +
- +
-В случае успеха, получим сообщение об этом: +
- +
-<code> +
-IMPORTANT NOTES: +
- - Congratulations! Your certificate and chain have been saved at +
-   /etc/letsencrypt/live/site.ru/fullchain.pem. Your cert will +
-   expire on 2016-03-18. To obtain a new version of the certificate in +
-   the future, simply run Let's Encrypt again. +
- - If you like Let's Encrypt, please consider supporting our work by: +
- +
-   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate +
-   Donating to EFF:                    https://eff.org/donate-le +
-</code> +
- +
-===== Установка полученных сертификатов ===== +
- +
-Теперь необходимо прописать в настройки веб-сервера пути к сертификатам и сделать редирект на https. +
- +
-<note tip> +
-Так как [[https://letsencrypt.org/2015/11/09/why-90-days.htmlертификаты выдаются на 3 месяца]] (такая политика - чем чаще меняем сертификат, тем меньше вероятность, что сертификат будет скомпрометирован, а также таким способом навязывается автоматизация получения сертификатов), вместо копирования файлов лучше поставить на них симлинки, это будет удобнее. +
-</note> +
- +
-^ Файл          ^ Назначение                          ^ Apache                    ^ nginx ^ +
-| privkey.pem   | приватный ключ для сертификата      | SSLCertificateKeyFile     | ssl_certificate_key | +
-| cert.pem      | сертификат сервера                  | SSLCertificateFile        | :-: | +
-| chain.pem     | сертификат цепочки (не обязательно) | SSLCertificateChainFile   | :-: | +
-| fullchain.pem | соединение chain.pem и cert.pem                               | ssl_certificate | +
- +
-==== Apache ==== +
- +
-Для активации SSL сертификатов ''10.0.0.1'' заменить на свой IP, и прописать в конфиге индейца+
- +
-<file ini site.conf> +
- +
-<VirtualHost 10.0.0.1:80 10.0.0.1:443> +
-SSLEngine on +
-SSLCertificateFile /var/www/httpd-cert/vds/site.ru.crt +
-SSLCertificateChainFile /var/www/httpd-cert/vds/site.ru.chain.crt +
-SSLCertificateKeyFile /var/www/httpd-cert/vds/site.ru.key +
-</VirtualHost> +
- +
-</file> +
- +
-Для редиректов с www и http на https: +
- +
-<file ini .htaccess> +
-# 301 редирект с адресов с www на адреса без www +
-RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC] +
-RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L] +
- +
-# Редирект на HTTPS +
-RewriteCond %{HTTPS} !=on +
-RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] +
-</file> +
- +
-==== Nginx ==== +
- +
-<file ini site.conf> +
-server { +
-  listen 443; +
-  ssl on; +
-  ssl_certificate /etc/ssl/site.crt; +
-  ssl_certificate_key /etc/ssl/site.key; +
-+
-</file> +
- +
-===== Продление сертификата ===== +
- +
-До просрочки будут приходить письма напоминания о необходимости продления сертификата такого рода: +
- +
-<code> +
-Hello, +
- +
-Your certificate (or certificates) for the names listed below will expire in +
-0 days (on 25 Feb 17 17:21 +0000). Please make sure to renew +
-your certificate before then, or visitors to your website will encounter errors. +
- +
-pushorigin.ru +
- +
-For any questions or support, please visit https://community.letsencrypt.org/+
-Unfortunately, we can't provide support by email. +
- +
-For details about when we send these emails, please visit +
-https://letsencrypt.org/docs/expiration-emails/. In particular, note +
-that this reminder email is still sent if you've obtained a slightly +
-different certificate by adding or removing names. If you've replaced +
-this certificate with a newer one that covers more or fewer names than +
-the list above, you may be able to ignore this message. +
- +
-If you want to stop receiving all email from this address, click +
-http://mandrillapp.com/track/unsub.php?u=... +
-(Warning: this is a one-click action that cannot be undone) +
- +
-Regards, +
-The Let's Encrypt Team +
-</code> +
- +
-Само продление: +
- +
-<code bash> +
-./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory -a manual auth +
-service nginx reload +
-</code> +
- +
-Надо не забыть перегрузить веб-сервер! +
- +
-По материалам [[http://habrahabr.ru/post/270273/|статьи]].+
  
 +По сути, нужно установить snap-пакет: ''sudo snap install --classic certbot''.
Печать/экспорт