Как да използвате 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. За th

Настройте Spigot сървър на Arch Linux

Настройте Spigot сървър на Arch Linux

Този урок обяснява как да настроите сървър на Minecraft с помощта на Spigot на Arch Linux. Този урок предполага, че сте нормален потребител (не-root) и hav

Как да инсталирате 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 Server на Arch Linux

Настройте Mumble Server на 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, са с префикс # и един

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

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 машини. Прочетете тази статия, за да научите повече