Як використовувати HTTPS на веб-сервері Arch Linux

Передумови

  • Сервер Vultr з сучасною версією Arch Linux (див. цю статтю ).
  • Запущений веб-сервер, Apache або Nginx
  • Доступ до Sudo
    • Команди, які потрібно виконувати як користувач root, мають префікс #, а ті, які можна виконувати як звичайний користувач, — $. Рекомендований спосіб запускати команди від імені 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

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

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

Вступ Arch Linux має менші, але все ще сильні, ніж більш популярні дистрибутиви. Його філософія зовсім інша, з перевагами

Встановлення Arch Linux на сервері Vultr

Встановлення Arch Linux на сервері Vultr

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

Використання Devtools в Arch Linux

Використання Devtools в Arch Linux

Пакет Devtools спочатку був створений для довірених користувачів, щоб належним чином створювати пакети для офіційних сховищ. Однак його може використовувати і звичайний користувач

Використання Makepkg на Arch Linux

Використання Makepkg на Arch Linux

Якщо ви використовуєте makepkg безпосередньо, це дещо забруднює вашу систему. Необхідно встановити групу пакетів базового розробки. Таким чином, за замовчуванням потрібні лише залежності

Як встановити PostgreSQL 11.1 на Arch Linux

Як встановити PostgreSQL 11.1 на Arch Linux

Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю). Доступ до Sudo. Команди, які потрібно виконувати як root, мають префікс # і один

Як використовувати HTTPS на веб-сервері Arch Linux

Як використовувати HTTPS на веб-сервері Arch Linux

Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю). Запущений веб-сервер, Apache або Nginx Sudo Необхідні команди доступу t

Встановіть Arch Linux з Btrfs Snapshotting

Встановіть Arch Linux з Btrfs Snapshotting

Передмова Arch Linux — це дистрибутив загального призначення, добре відомий своєю передовою технологією та гнучкою конфігурацією. За допомогою знімків Btrfs ми можемо взяти

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

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

В Arch Linux офіційні репозиторії: core, extra та community. Ці пакунки вже скомпільовані, і вони встановлені через pacman. Для го

Налаштуйте Spigot Server на Arch Linux

Налаштуйте Spigot Server на Arch Linux

У цьому посібнику пояснюється, як налаштувати сервер Minecraft за допомогою Spigot на Arch Linux. У цьому підручнику передбачається, що ви звичайний користувач (без root) і маєте права

Як встановити Nginx 1.14 на Arch Linux

Як встановити Nginx 1.14 на Arch Linux

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

Як встановити Apache 2.4 на Arch Linux

Як встановити Apache 2.4 на Arch Linux

Передумови Сервер Vultr з сучасною версією Arch Linux. Додаткову інформацію див. у цьому посібнику. Доступ до Sudo. Команди, які потрібно виконувати як root ar

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

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

Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю). Запущений веб-сервер, доступ до Apache або Nginx Sudo: потрібні команди

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

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

Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю). Запущений веб-сервер, доступ до Apache або Nginx Sudo: потрібні команди

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

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

Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю). Запущений веб-сервер, доступ до Apache або Nginx Sudo. Вимагають команди

Налаштуйте сервер Mumble на Arch Linux

Налаштуйте сервер Mumble на Arch Linux

У цьому посібнику пояснюється, як налаштувати сервер Mumble (Murmur) на Arch Linux. Все, що зроблено в цьому підручнику, виконується як користувач root. Установка ан

Налаштуйте сервер Counter-Strike: Global Offensive (CSGO) на Arch Linux

Налаштуйте сервер Counter-Strike: Global Offensive (CSGO) на Arch Linux

У цьому підручнику пояснюється, як налаштувати сервер Counter-Strike: Global Offensive на Arch Linux. У цьому посібнику припускається, що ви ввійшли в систему зі стандартним використанням

Налаштуйте сервер Team Fortress 2 на Arch Linux

Налаштуйте сервер Team Fortress 2 на Arch Linux

У цьому посібнику пояснюється, як налаштувати сервер Team Fortress 2 на Arch Linux. Я припускаю, що ви увійшли з обліковим записом користувача без права root і має доступ до sudo

Як встановити MariaDB 10.3 або MySQL 8.0 на Arch Linux

Як встановити MariaDB 10.3 або MySQL 8.0 на Arch Linux

Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю). Доступ до Sudo: команди, які потрібно запускати як root, мають префікс # і один

Як встановити MongoDB 4.0 на Arch Linux

Як встановити MongoDB 4.0 на Arch Linux

Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю) Доступ до Sudo: команди, які потрібно запускати як root, мають префікс # і один

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

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

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

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

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

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

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

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

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

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

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