Для того, чтобы сайты начали работать по протоколу HTTPs, (а этого требует веяние времени для того, чтобы усложнить жизнь мелким пакостникам, заставив их развиваться и искать другие пути, как можно напакостить), нужно установить SSL-сертификат для шифрования данных, которыми обмениваются браузер пользователя и сервер (и на пути между ними сидят мелкие пакостники). Для облегчения жизни администраторам и автоматизации работы с установкой бесплатных сертификатов от Let’s Encrypt проще всего воспользоваться утилитой от разработчиков Certbot.
Установка Certbot на сервер
Установка Certbot на сервер с Debian 9 происходит не просто, а очень просто. Стандартным установщиком пакетов apt
нужно указать команду install
и имя пакета certbot
:
# apt install certbot
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
python3-acme python3-certbot python3-cffi-backend python3-configargparse python3-configobj python3-cryptography python3-idna python3-josepy python3-mock
python3-openssl python3-parsedatetime python3-pbr python3-pyasn1 python3-requests-toolbelt python3-rfc3339 python3-setuptools python3-tz python3-zope.component
python3-zope.event python3-zope.hookable python3-zope.interface
Suggested packages:
python3-certbot-apache python3-certbot-nginx python-certbot-doc python-acme-doc python-configobj-doc python-cryptography-doc python3-cryptography-vectors
python-mock-doc python-openssl-doc python3-openssl-dbg doc-base python-setuptools-doc
Recommended packages:
python3-pyicu
The following NEW packages will be installed:
certbot python3-acme python3-certbot python3-cffi-backend python3-configargparse python3-configobj python3-cryptography python3-idna python3-josepy python3-mock
python3-openssl python3-parsedatetime python3-pbr python3-pyasn1 python3-requests-toolbelt python3-rfc3339 python3-setuptools python3-tz python3-zope.component
python3-zope.event python3-zope.hookable python3-zope.interface
0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,372 kB of archives.
After this operation, 7,471 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
После это подтвердить желание установить выбранный пакет и другие пакеты, которые нужны для его работы, введя Y
и нажав Enter
. После этого certbot будет установлен на сервер:
Get:1 http://deb.debian.org/debian stretch/main amd64 python3-cffi-backend amd64 1.9.1-2 [70.1 kB]
Get:2 http://deb.debian.org/debian stretch/main amd64 python3-idna all 2.2-1 [32.7 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 python3-pyasn1 all 0.1.9-2 [34.5 kB]
Get:4 http://deb.debian.org/debian stretch/main amd64 python3-setuptools all 33.1.1-1 [215 kB]
Get:5 http://deb.debian.org/debian stretch/main amd64 python3-cryptography amd64 1.7.1-3+deb9u1 [210 kB]
Get:6 http://deb.debian.org/debian stretch/main amd64 python3-openssl all 16.2.0-1 [43.8 kB]
Get:7 http://deb.debian.org/debian stretch/main amd64 python3-josepy all 1.1.0-2~deb9u1 [27.8 kB]
Get:8 http://deb.debian.org/debian stretch/main amd64 python3-pbr all 1.10.0-1 [52.5 kB]
Get:9 http://deb.debian.org/debian stretch/main amd64 python3-mock all 2.0.0-3 [59.9 kB]
Get:10 http://deb.debian.org/debian stretch/main amd64 python3-requests-toolbelt all 0.7.0-1 [36.7 kB]
Get:11 http://deb.debian.org/debian stretch/main amd64 python3-tz all 2016.7-0.3 [27.1 kB]
Get:12 http://deb.debian.org/debian stretch/main amd64 python3-rfc3339 all 1.0-4 [6,282 B]
Get:13 http://deb.debian.org/debian stretch/main amd64 python3-acme all 0.28.0-1~deb9u1 [48.7 kB]
Get:14 http://deb.debian.org/debian stretch/main amd64 python3-configargparse all 0.11.0-1 [22.3 kB]
Get:15 http://deb.debian.org/debian stretch/main amd64 python3-configobj all 5.0.6-2 [35.2 kB]
Get:16 http://deb.debian.org/debian stretch/main amd64 python3-parsedatetime all 2.1-3+deb9u1 [37.7 kB]
Get:17 http://deb.debian.org/debian stretch/main amd64 python3-zope.hookable amd64 4.0.4-4+b2 [10.3 kB]
Get:18 http://deb.debian.org/debian stretch/main amd64 python3-zope.interface amd64 4.3.2-1 [89.8 kB]
Get:19 http://deb.debian.org/debian stretch/main amd64 python3-zope.event all 4.2.0-1 [8,412 B]
Get:20 http://deb.debian.org/debian stretch/main amd64 python3-zope.component all 4.3.0-1 [43.0 kB]
Get:21 http://deb.debian.org/debian stretch/main amd64 python3-certbot all 0.28.0-1~deb9u2 [222 kB]
Get:22 http://deb.debian.org/debian stretch/main amd64 certbot all 0.28.0-1~deb9u2 [37.7 kB]
Fetched 1,372 kB in 0s (2,141 kB/s)
Selecting previously unselected package python3-cffi-backend.
(Reading database ... 34007 files and directories currently installed.)
Preparing to unpack .../00-python3-cffi-backend_1.9.1-2_amd64.deb ...
Unpacking python3-cffi-backend (1.9.1-2) ...
Selecting previously unselected package python3-idna.
Preparing to unpack .../01-python3-idna_2.2-1_all.deb ...
Unpacking python3-idna (2.2-1) ...
Selecting previously unselected package python3-pyasn1.
Preparing to unpack .../02-python3-pyasn1_0.1.9-2_all.deb ...
Unpacking python3-pyasn1 (0.1.9-2) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../03-python3-setuptools_33.1.1-1_all.deb ...
Unpacking python3-setuptools (33.1.1-1) ...
Selecting previously unselected package python3-cryptography.
Preparing to unpack .../04-python3-cryptography_1.7.1-3+deb9u1_amd64.deb ...
Unpacking python3-cryptography (1.7.1-3+deb9u1) ...
Selecting previously unselected package python3-openssl.
Preparing to unpack .../05-python3-openssl_16.2.0-1_all.deb ...
Unpacking python3-openssl (16.2.0-1) ...
Selecting previously unselected package python3-josepy.
Preparing to unpack .../06-python3-josepy_1.1.0-2~deb9u1_all.deb ...
Unpacking python3-josepy (1.1.0-2~deb9u1) ...
Selecting previously unselected package python3-pbr.
Preparing to unpack .../07-python3-pbr_1.10.0-1_all.deb ...
Unpacking python3-pbr (1.10.0-1) ...
Selecting previously unselected package python3-mock.
Preparing to unpack .../08-python3-mock_2.0.0-3_all.deb ...
Unpacking python3-mock (2.0.0-3) ...
Selecting previously unselected package python3-requests-toolbelt.
Preparing to unpack .../09-python3-requests-toolbelt_0.7.0-1_all.deb ...
Unpacking python3-requests-toolbelt (0.7.0-1) ...
Selecting previously unselected package python3-tz.
Preparing to unpack .../10-python3-tz_2016.7-0.3_all.deb ...
Unpacking python3-tz (2016.7-0.3) ...
Selecting previously unselected package python3-rfc3339.
Preparing to unpack .../11-python3-rfc3339_1.0-4_all.deb ...
Unpacking python3-rfc3339 (1.0-4) ...
Selecting previously unselected package python3-acme.
Preparing to unpack .../12-python3-acme_0.28.0-1~deb9u1_all.deb ...
Unpacking python3-acme (0.28.0-1~deb9u1) ...
Selecting previously unselected package python3-configargparse.
Preparing to unpack .../13-python3-configargparse_0.11.0-1_all.deb ...
Unpacking python3-configargparse (0.11.0-1) ...
Selecting previously unselected package python3-configobj.
Preparing to unpack .../14-python3-configobj_5.0.6-2_all.deb ...
Unpacking python3-configobj (5.0.6-2) ...
Selecting previously unselected package python3-parsedatetime.
Preparing to unpack .../15-python3-parsedatetime_2.1-3+deb9u1_all.deb ...
Unpacking python3-parsedatetime (2.1-3+deb9u1) ...
Selecting previously unselected package python3-zope.hookable.
Preparing to unpack .../16-python3-zope.hookable_4.0.4-4+b2_amd64.deb ...
Unpacking python3-zope.hookable (4.0.4-4+b2) ...
Selecting previously unselected package python3-zope.interface.
Preparing to unpack .../17-python3-zope.interface_4.3.2-1_amd64.deb ...
Unpacking python3-zope.interface (4.3.2-1) ...
Selecting previously unselected package python3-zope.event.
Preparing to unpack .../18-python3-zope.event_4.2.0-1_all.deb ...
Unpacking python3-zope.event (4.2.0-1) ...
Selecting previously unselected package python3-zope.component.
Preparing to unpack .../19-python3-zope.component_4.3.0-1_all.deb ...
Unpacking python3-zope.component (4.3.0-1) ...
Selecting previously unselected package python3-certbot.
Preparing to unpack .../20-python3-certbot_0.28.0-1~deb9u2_all.deb ...
Unpacking python3-certbot (0.28.0-1~deb9u2) ...
Selecting previously unselected package certbot.
Preparing to unpack .../21-certbot_0.28.0-1~deb9u2_all.deb ...
Unpacking certbot (0.28.0-1~deb9u2) ...
Setting up python3-requests-toolbelt (0.7.0-1) ...
Setting up python3-pbr (1.10.0-1) ...
update-alternatives: using /usr/bin/python3-pbr to provide /usr/bin/pbr (pbr) in auto mode
Setting up python3-cffi-backend (1.9.1-2) ...
Setting up python3-mock (2.0.0-3) ...
Setting up python3-zope.event (4.2.0-1) ...
Setting up python3-idna (2.2-1) ...
Setting up python3-zope.interface (4.3.2-1) ...
Setting up python3-configargparse (0.11.0-1) ...
Setting up python3-zope.hookable (4.0.4-4+b2) ...
Setting up python3-pyasn1 (0.1.9-2) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up python3-configobj (5.0.6-2) ...
Setting up python3-setuptools (33.1.1-1) ...
Setting up python3-tz (2016.7-0.3) ...
Setting up python3-parsedatetime (2.1-3+deb9u1) ...
Setting up python3-cryptography (1.7.1-3+deb9u1) ...
Setting up python3-rfc3339 (1.0-4) ...
Setting up python3-zope.component (4.3.0-1) ...
Setting up python3-openssl (16.2.0-1) ...
Setting up python3-josepy (1.1.0-2~deb9u1) ...
Setting up python3-acme (0.28.0-1~deb9u1) ...
Setting up python3-certbot (0.28.0-1~deb9u2) ...
Setting up certbot (0.28.0-1~deb9u2) ...
Created symlink /etc/systemd/system/timers.target.wants/certbot.timer → /lib/systemd/system/certbot.timer.
Так как certbot написан на языке программирования Piton, то большинство пакетов, устанавливаемые вместе с certbot — это как раз пакеты этого языка и его библиотек.
Для проверки номера версии установленного certbot нужно ввести команду:
# certbot --version
certbot 0.28.0
Резюме
Так просто устанавливается certbot на сервер с Debian 9. Его настройки рассмотрим отдельно. Важно помнить, что перед установкой любого программного обеспечения, хорошо бы обновить список репозиториев командой apt update
и при необходимости обновить установленные программы до актуальных версий командой apt upgrade
.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)