Подключение бесплатного сертификата SSL от Let's encrypt к Nextcloud

Данная инструкция описывает подключение сертификата SSL к Nextcloud на базе web сервера apache2. Apache2 установлен на Debian 10 в виде отдельного сервиса. Для этих целей мы будем использовать программного клиента Certbot , который позволяет автоматизировать данный процесс. Для проведения данных операций вам потребуется:

  • Зарегистрированное доменное имя вашего сервера Nextcloud. Вы можете получить его на бесплатных сервисах по типу Namecheap или Freenom . Или на любых других регистраторах доменных имён.
  • A запись на публичном DNS сервере , где your_domain указывает на публичный IP-адрес вашего сервера. Запись A, где www.your_domain указывает на публичный IP-адрес вашего сервера.
  • Доступность Nextcloud по этому доменному имени. Для этого вам необходимо настроить trusted domains на Nextcloud. Как это сделать вы можете узнать в этой статье Как добавить доверенный домен в Nextcloud
  • Настроенный файл конфигурации Apache2 для вашего виртуального хоста Nextcloud

Шаг 1 Установка Certbot

Для получения сертификата от Let’s encrypt вам необходимо установить программное обеспечение Certbot. Нам необходимо установить два пакета certbot и python3-certbot-apache. Последний нужен для интеграции с Apache2 для автоматического получения сертификата для него. Выполним команду:

sudo apt install certbot python3-certbot-apache

Подтвердите установку нажав Y , а затем ENTER
Шаг 2 проверка конфигурации виртуального хоста Apache2
Чтобы автоматически получить сертификат от Let’s encrypt для Nextcloud на базе apache2, certbot должен найти файл конфигурации вашего виртуального хоста для nextcloud.
Имена доменов для ваших серверов CertBot получит из директив ServerName и ServerAlias из конфигурационного файла вашего виртуального хоста для Nextcloud.
Конфигруационный файл виртуального хоста для Nextcloud должен распологаться в директории /etc/apache2/sites-available , и называться your_domain.conf. Где your_domain доменное имя вашего сервера nextcloud.

Также у вас должны быть правильно настроенные директивы ServerName и ServerAlias в блоке VirtualHost в вашем конфигурационном файле. Для этого откроем файл конфигурации с помощью текстового редактора командой:

sudo nano /etc/apache2/sites-available/your_domain.conf

Найдите строки ServerName и ServerAlias. Они должны выглядеть следующим образом:

..............................
ServerName your_domain
ServerAlias www.your_domain
....................................

После изменения файла сохраним его нажав сочетание клавишь CTRL + O
Затем выйдем из редактора нажав сочетание клавишь CTRL + X
Затем проверим данные изменения на наличие ошибок в Apache2 выполнив команду:

sudo apache2ctl configtest

Если появилось сообщение Syntax OK , значит изменения были проведены корректно. Если появляются какие-то ошибки , то заново откройте файл конфигурации и проверьте на наличие ошибок и опечаток. После того как все изменения будут сделаны правильно выполните команду чтобы изменения вступили в силу:

sudo systemctl reload apache2

С этими изменениями Cerbot сможет найти корректный блок VirtualHost и обновить его.
Шаг 3 Получение сертификата SSL
Получим сертфикат Nextcloud при помощи программы Certbot с использование плагина apache. Для этого выполним команду:

sudo certbot –apache

Этот скрипт попросит вас ответить на ряд вопрос для получения сертификата. Сначала он попросит адрес электронной почты для получения уведомлений о продлении и безопасности.

Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): you@your_domain

После введения адреса электронной почты нажмите Enter.
Далее вас попросят согласиться с условиями использования Let’s encrypt. Вы можете нажать A , а затем подтвердить выбор нажав Enter

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

Далее вам будет предложено предоставить организации Electronic Frontier Foundation свой адрес электронной почты, чтобы получать новости и иную информацию. Если не хотите подписываться на их рассылку, то введите N. Если хотите — введите Y. Затем нажмите ENTER, чтобы перейти к следующему шагу.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

На следующем шаге вам будет предложено для каких доменов активировать HTTPS. Имена доменов cerbot берёт из директив ServerName и ServerAlias. По этому они должны быть настроены правильно. Если хотите получить сертификат для всех доменов ( рекомендуется) , то нажмите Enter. В противном случае выберите все домены для которых вы хотите получить сертификаты перечислив их через запятую или пробел , и нажмите Enter

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your_domain
2: www.your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):

Вывод будет выглядеть следующим образом:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for your_domain
http-01 challenge for www.your_domain
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/your_domain-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/your_domain-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf

Далее вам предложат перенаправлять трафик HTTP на HTTPS . Если вам это нужно согласитесь ,если нет не согласитесь если хотите сохранить и http и https для вашего сервера. Далее нажмите enter.

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

После этого конфигурация Let’s encrypt будет завершена и вам покажут последние замечания, а также как протестировать подлинность вашего сертификата с помощью сторонних инструментов

Congratulations! You have successfully enabled https://your_domain and
https://www.your_domain

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=your_domain
https://www.ssllabs.com/ssltest/analyze.html?d=www.your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your_domain/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your_domain/privkey.pem
   Your cert will expire on 2020-07-27. 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"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Теперь вашь сертификат установлен и загружен. Перезагрузите вашь сайт с помощью https:// и проверьте на наличие замка в адресной строке , что говорит о том что сайт защищён.

  • 37 istifadəçi bunu faydalı hesab edir
Bu cavab sizə kömək etdi?

Uyğun məqalələr

Как подсоединить папку по WebDav в Mac OS

Для получения доступа к папке Nextcloud по протоколу WebDav в Mac OS, можно использовать...

Как подсоединить папку Nextcloud по WebDav в мобильных ОС

Заходим в облачное хранилище Nextcloud , нажимаем значок “папочки” в верхней панели и затем...

Как добавить доверенный домен в Nextcloud

Если при попытке зайти на облачное хранилище Nextcloud вы получаете ошибку «отредактируйте...

Как подсоединить папку по WebDav в Windows

Встроенный в ОС Windows webdav клиент является очень чувствительным к SSL сертификату. Поэтому...

Как подключиться к сервису SaaS Nextcloud

Есть два варианта подключения к SaaS Nextcloud:⦁ Через веб-браузер ⦁ По протоколу FTP...