Как использовать HTTPS на веб-сервере Arch Linux

Предпосылки

  • Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью ).
  • Работающий веб-сервер, Apache или Nginx
  • Доступ в судо
    • Команды, необходимые для запуска с правами root, начинаются с префиксов #, и те, которые могут запускаться как обычные пользователи $. Рекомендуемый способ запускать команды , как корень, чтобы, как обычный пользователь, префикс каждого из них sudo.
  • Установите текстовый редактор и ознакомьтесь с ним, например, vi, vim, nano, emacs или другой подобный редактор.

Безопасное обслуживание через HTTPS

Обслуживание контента через HTTPS может использовать чрезвычайно надежное шифрование, поэтому никто не может перехватить трафик между пользователем и веб-сервером. Он не только шифрует сам трафик, но и URL, к которому осуществляется доступ, что в противном случае может предоставить информацию. В течение некоторого времени Google частично определял поисковый рейтинг на основе того, использует ли страница HTTPS, как часть инициативы HTTPS Everywhere.

Примечание . При поиске DNS открывается имя подключаемого домена, но весь URL-адрес не отображается во время этого процесса.

Получить сертификат SSL / TLS

Технически TLS заменил SSL для HTTPS-сертификатов, но в большинстве мест просто продолжал вызывать TLS-сертификаты более популярным термином SSL-сертификаты. После обычного использования это руководство будет делать то же самое.

Чтобы использовать HTTPS, вашему веб-серверу нужен закрытый ключ ( .key) для частного использования и сертификат ( .crt) для общего доступа, который включает открытый ключ. Сертификат должен быть подписан. Вы можете подписать его самостоятельно, но современные браузеры будут жаловаться, что они не распознают подписывающего. Например, Chrome будет показывать: Your connection is not private. Attackers might be trying to steal your information... NET::ERR_CERT_AUTHORITY_INVALID. Если веб-сайт будет использовать только частная группа людей, это может быть приемлемо, потому что браузеры позволят продолжить работу. Например, в Chrome нажмите «Дополнительно», затем «Перейти к ... (небезопасно)»; он по-прежнему будет отображать «Не безопасно» и вычеркнет «https».

Обратите внимание, что этот процесс попросит вас указать вашу страну, штат / провидение, местность, организацию, организационную единицу и общие имена, а также ваш адрес электронной почты; все это доступно в любом браузере, подключающемся к вашему сайту через HTTPS.

Также обратите внимание, что если вы даете сертификаты виртуальных хостов, вам нужно будет указать отдельные имена файлов ниже и указать их в конфигурации вашего виртуального хоста.

Перейдите в каталог, соответствующий вашему веб-серверу.

Если вы установили Apache:

$ cd /etc/httpd/conf

Если вы установили Nginx:

$ cd /etc/nginx

Попав в соответствующий каталог, сгенерируйте закрытый ключ ( server.key) и самозаверяющий сертификат ( server.crt):

# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 825

Установите разрешения только для чтения и разрешите чтение секретного ключа только пользователю root:

# chmod 400 server.key
# chmod 444 server.crt

Кроме того, вы можете получить сертификат, подписанный доверенным центром сертификации. Вы можете заплатить различным компаниям (центрам сертификации), чтобы они подписали для вас свой сертификат. При рассмотрении центров сертификации может быть важно выяснить, какие браузеры и какие версии распознают их. Некоторые новые центры сертификации могут быть признаны не более официальными, чем самозаверяющий сертификат в старых версиях браузера.

Обычно вам нужен не только публичный IP-адрес, но и доменное имя. Некоторые центры сертификации могут выдавать сертификат на общедоступный IP-адрес, но это делается редко.

Многие провайдеры предлагают бесплатную 30-дневную пробную версию, которую рекомендуется начать с того, чтобы вы могли убедиться, что процесс работает на вас, прежде чем платить за него. Цены могут варьироваться от нескольких долларов в год до сотен, в зависимости от типа и вариантов, таких как несколько доменов или поддоменов. Стандартный сертификат будет указывать только на то, что подписывающий орган подтвердил, что лицо, получающее сертификат, может вносить изменения в домен. Сертификат расширенной проверки также будет указывать, что подписывающее лицо провело некоторую должную осмотрительность для проверки запрашивающей стороны, и в современных браузерах будет отображать зеленую полосу в URL-адресе или рядом с ним. При проверке того, что вы можете вносить изменения в домен, некоторые подписывающие органы потребуют, чтобы вы получали электронную почту по важному адресу в доменном имени, например[email protected], Многие предлагают альтернативную проверку, например, предоставление вам файла для размещения на вашем сервере, например, размещение своего файла /srv/http/.well-known/pki-validation/для Apache или /usr/share/nginx/html/.well-known/pki-validation/для Nginx, для конфигураций каталогов с одним хостингом; или временно создавая запись CNAME, которую они предоставляют вам в записях DNS вашего домена.

Выбираемые вами права подписи могут иметь несколько иные шаги, но большинство из них примет следующую процедуру:

В правильном каталоге сгенерируйте закрытый ключ ( server.key):

# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key

Установите закрытый ключ только для чтения, только root:

# chmod 400 server.key

Создайте запрос на подпись сертификата ( server.csr). Вы должны ввести свое доменное имя, когда оно запрашивает у вас Common Name, и вы можете оставить пароль вызова пустым:

# openssl req -new -sha256 -key server.key -out server.csr

Установите запрос на подпись сертификата только для чтения, только для пользователя root:

# chmod 400 server.csr

Просмотрите содержимое запроса на подпись сертификата. Эта информация в кодировке base64, поэтому будет выглядеть как случайные символы:

# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
.....
-----END CERTIFICATE REQUEST-----

Пройдите процесс вашего подписывающего органа, и, когда вас попросят вставить в CSR, скопируйте и вставьте весь этот файл, включая -----строки. В зависимости от выбранного вами органа подписи и типа сертификата, они могут сразу же дать вам подписанный сертификат, или это может занять несколько дней. После того, как они дают вам подписанный сертификат, скопируйте его ( в том числе -----BEGIN CERTIFICATE-----и -----END CERTIFICATE-----строки) в файл с именем server.crt, в соответствующий каталог, приведенный выше для вашего веб - сервера и установить его только для чтения:

# chmod 444 server.crt

Настройте свой веб-сервер для использования закрытого ключа и сертификата

Если вы используете брандмауэр, вам нужно будет включить входящий трафик TCP на порт 443.

Для Apache

Отредактируйте /etc/httpd/conf/httpd.confи раскомментируйте эти строки:

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf

Обратите внимание, что если вы используете виртуальные хосты, внесенные выше изменения /etc/httpd/conf/httpd.confбудут использовать один и тот же сертификат на всех хостах. Чтобы дать каждому хосту свой собственный сертификат, чтобы браузеры не жаловались на сертификат, не совпадающий с именем домена, вам необходимо отредактировать каждый из их файлов конфигурации, указав /etc/httpd/conf/vhosts/его собственный сертификат и закрытый ключ:

  • Изменить <VirtualHost *:80>на <VirtualHost *:80 *:443>.
  • В VirtualHostразделе добавьте следующее:

    SSLEngine on
    SSLCertificateFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.crt"
    SSLCertificateKeyFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.key"
    

Перезапустите Apache:

# systemctl restart httpd

Для Nginx

Отредактируйте /etc/nginx/nginx.confи расположите внизу, раскомментируйте HTTPS serverраздел и измените строки следующим образом:

ssl_certificate      server.crt;
ssl_certificate_key  server.key;
root                /usr/share/nginx/html;

Обратите внимание, что если вы используете виртуальные хосты, внесенные выше изменения /etc/nginx/nginx.confотправят все хосты в это место. Чтобы дать каждому хосту свой собственный сертификат, вам нужно отредактировать каждый из их файлов конфигурации, /etc/nginx/sites-enabled/чтобы иметь дополнительный блок сервера, чтобы указать его собственный сертификат и закрытый ключ:

server {
    listen 443 ssl;
    server_name YOUR-DOMAIN-NAME.com;

    ssl_certificate      YOUR-DOMAIN-NAME.com.crt;
    ssl_certificate_key  YOUR-DOMAIN-NAME.com.key;

    ssl_session_cache   shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        root /usr/share/nginx/YOUR-DOMAIN-NAME.com;
        index  index.html index.htm;
    }
}

Перезапустите Nginx:

# systemctl restart nginx


Как установить PHP 7.3 на веб-сервере Arch Linux

Как установить PHP 7.3 на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер с доступом Apache или Nginx Sudo. Команды требуют

Настройка Mumble Server в Arch Linux

Настройка Mumble Server в Arch Linux

В этом руководстве объясняется, как настроить сервер Mumble (Murmur) в Arch Linux. Все, что сделано в этом уроке, сделано от имени пользователя root. Установка

Установка Arch Linux на сервере Vultr

Установка Arch Linux на сервере Vultr

Vultr предоставляет вам удивительные функциональные возможности, позволяющие вам использовать собственное изображение в дополнение к их отличным шаблонам, которые позволяют вам запускать

Установите Arch Linux со снимком Btrfs

Установите Arch Linux со снимком Btrfs

Предисловие Arch Linux - это дистрибутив общего назначения, известный своими передовыми технологиями и гибкой конфигурацией. С снимками Btrfs мы можем взять

Настройка сервера Counter-Strike: Global Offensive (CSGO) в Arch Linux

Настройка сервера Counter-Strike: Global Offensive (CSGO) в Arch Linux

Из этого туториала Вы узнаете, как настроить сервер Counter-Strike: Global Offensive в Arch Linux. В этом руководстве предполагается, что вы вошли со стандартным использованием

Как установить PostgreSQL 11.1 на Arch Linux

Как установить PostgreSQL 11.1 на Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Доступ в Sudo. Команды, необходимые для запуска с правами root, начинаются с префикса #, и один

Как установить Nginx 1.14 на Arch Linux

Как установить Nginx 1.14 на Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Доступ в Sudo. Команды, необходимые для запуска от имени пользователя root, начинаются с префикса #. Th

Установка 2019 Arch Linux на сервере Vultr

Установка 2019 Arch Linux на сервере Vultr

Введение Arch Linux имеет меньшие, но все же сильные, следующие более популярные дистрибутивы. Его философия совершенно другая, с преимуществами и

Использование Makepkg в Arch Linux

Использование Makepkg в Arch Linux

Если вы используете makepkg напрямую, это несколько загрязняет вашу систему. Группа пакетов base-devel должна быть установлена. Таким образом, по умолчанию зависимости нужны только

Настройка сервера Team Fortress 2 в Arch Linux

Настройка сервера Team Fortress 2 в Arch Linux

В этом руководстве объясняется, как настроить сервер Team Fortress 2 в Arch Linux. Я предполагаю, что вы вошли в систему с учетной записью пользователя без полномочий root с доступом sudo

Как установить Apache 2.4 на Arch Linux

Как установить Apache 2.4 на Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux. Смотрите это руководство для получения дополнительной информации. Доступ в судо. Команды, необходимые для запуска от имени пользователя root

Настройка Spigot Server в Arch Linux

Настройка Spigot Server в Arch Linux

В этом руководстве объясняется, как настроить сервер Minecraft с помощью Spigot в Arch Linux. В этом руководстве предполагается, что вы обычный пользователь (не root) и имеете

Как установить Python 3.7 на веб-сервере Arch Linux

Как установить Python 3.7 на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo: требуются команды

Как установить MongoDB 4.0 на Arch Linux

Как установить MongoDB 4.0 на Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью) Доступ к Sudo: Команды, необходимые для запуска с правами root, начинаются с префикса #, а один

Как установить MariaDB 10.3 или MySQL 8.0 в Arch Linux

Как установить MariaDB 10.3 или MySQL 8.0 в Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Доступ в Sudo: Команды, необходимые для запуска с правами root, начинаются с префикса #, а один

Сборка пакетов на Arch Linux (включая AUR)

Сборка пакетов на Arch Linux (включая AUR)

На Arch Linux официальными репозиториями являются: core, extra и community. Эти пакеты уже скомпилированы, и они устанавливаются через pacman. Для го

Как установить Perl 5.28 на веб-сервер Arch Linux

Как установить Perl 5.28 на веб-сервер Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo: требуются команды

Использование Devtools в Arch Linux

Использование Devtools в Arch Linux

Пакет Devtools изначально был создан для доверенных пользователей, чтобы правильно создавать пакеты для официальных репозиториев. Тем не менее, он может быть использован обычным пользователем

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше