Създаване на самоподписаният SSL сертификат за Apache в Ubuntu

Като сървъри в сигурни центрове за данни в Европа. Open облак VPS / VDS сървър на бърз SSD за 1 минута!

Най-добър уеб хостинг:
- ще предпазят данните от неоторизиран достъп в защитена Европейския център за данни
- ще плати най-малко в Bitcoin.
- Той ще постави вашата дистрибуция

- защита от DDoS-атаки
- безплатно архивиране
- Uptime 99,9999%
- DPC - TIER III
- ISP - етап I

Подкрепа в руските 24/7/365 работи с юридически и физически лица. Сега трябва 24 ядро ​​и 72 Gb RAM. Моля ви!

Нашите конкурентни цени доказват, че най-евтиният хостинг, че не знаеш!

За броени минути, изберете конфигурация, заплати и CMS на VPS е готова.
Връщане на парите - за 30 дни!

Банкови карти, електронни валута през QIWI терминали, Webmoney, PayPal, Novoplat и други.

Задайте въпрос 24/7/365 поддръжка

Намерете отговорите в нашата база данни, както и да отговарят на препоръките на

TLS (Transport Layer Security) и SSL предшественик (Secure Socket Layers) - е криптографски протоколи се използват за защита на данните в интернет.

Тази технология позволява да се защити обмена на данни между сървъра и клиента и да се предотврати прихващането на или неоторизиран достъп до предаваната информация. В допълнение, тези доклади осигуряват система за сертификат, който помага на потребителите да проверяват автентичността на обектите, към които те си отиват.

Това ръководство ще ви помогне да създадете самостоятелно подписан сертификат за SSL-Apache уеб сървър в Ubuntu 16.04.

Забележка. Self-подписан сертификат няма да бъде в състояние да потвърди идентичността на сървъра, тъй като не е подписан от надежден сертифициращ орган (CA); Въпреки това този сертификат ще ви позволи да криптирате взаимодействието с уеб клиенти. Self-подписан сертификат за потребители, които няма име на домейн. Когато се препоръчва наличието на домейн, за да кандидатства за сертификат, подписан от един от най-надеждните КО. Можете също така да получите безплатен сертификат от доверен сервиз Нека Encrypt.

изисквания

  • Non-корен потребител с достъп до Sudo (инструкции за създаването на такъв потребител - в тази статия).
  • Предварително инсталирани Apache уеб сървър. Можете да инсталирате пакета с лампа, която има компонент е Apache (за това да следвате следните инструкции); да се инсталира само Apache, изпълнява само инструкциите за инсталиране на уеб сървъра, пропуснете останалите раздели.

1: Създаване на SSL сертификат

За да работите TLS / SSL използва комбинация от публичния сертификат и личен ключ. Частният ключ се съхранява на сървъра и не се разкрива. SSL сертификат се използва от отворен и достъпен за всички потребители, които искат съдържание.

За да създадете самостоятелно подписан сертификат и ключ, изпълнете следната команда:

Sudo OpenSSL REQ -x509 -nodes -days 365 -newkey RSA: 2048 -keyout /etc/ssl/private/apache-selfsigned.key напускане /etc/ssl/certs/apache-selfsigned.crt

Екипът ще зададе редица въпроси. Помислете екипа повече компоненти:

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

Име на държавата (2-буквен код) [AU]: САЩ
Членка или име на провинция (пълно име) [Някои-членка]: Ню Йорк
Име на местността (например град) []: Ню Йорк Сити
Наименование на организацията (например, фирма) [Internet Widgits Pty Ltd]: Bouncy Castles, Inc.
Организационна единица Наименование (например, раздел) []: Министерство на водни пързалки
Общо име (например сървър FQDN или вашето име) []: server_IP_address
E-mail адрес []: admin@your_domain.com

ключ и сертификата файлове ще бъдат поставени в директорията / и т.н. / SSL.

Ако използвате OpenSSL трябва да създадете клавишите със Diffie-Hellman, които са необходими за подкрепа на PFS (перфектен прав тайна).

Sudo OpenSSL dhparam напускане /etc/ssl/certs/dhparam.pem 2048

Този процес ще отнеме няколко минути. DH ключове ще бъдат поставени в /etc/ssl/certs/dhparam.pem.

2: Apache конфигурация за SSL поддръжка

Така че, на този етап от сертификата и ключови файлове се създават и съхраняват в директорията / и т.н. / SSL. Сега трябва да се редактира конфигурацията Apache:

ключово място и сертификат

Първо трябва да се създаде конфигурация фрагмент Apache, който дефинира няколко настройки SSL; Тук можете да изберете метод SSL криптиране и включва допълнителни функции за сигурност. Параметрите, определени тук по-късно могат да се използват от всеки виртуален хост за SSL поддръжка.

Създаване на нова Apache фрагмент директория и т.н. / apache2 / конф-достъпно.

Препоръчително е да се посочи в своята цел на името на файла (например, SSL-params.conf):

Sudo нано /etc/apache2/conf-available/ssl-params.conf

За да се гарантира SSL настройка, моля обърнете се към препоръките на Реми Ван Elst по Cipherli.st сайт. Този сайт е предназначен за разпространение на прости и надеждни настройките за шифроване на популярния софтуер. Още опции за Apache може да намерите тук.

Забележка. Този списък с настройки, подходящи за по-новите клиенти. За да се получи настройки за други клиенти, отидете Да, дай ми ciphersuite, която работи с наследство / стар софтуер.

Копирайте всички предложени варианти.

Можете също така трябва да се добави параметър SSLOpenSSLConfCmd DHParameters, да се създаде подкрепа Diffie-Hellman.

Запазване и затворете файла.

Задаване на стандартен виртуален хост Apache

Сега трябва да се създаде стандарт виртуален хост Apache (/etc/apache2/sites-available/default-ssl.conf) в подкрепа на SSL.

Забележка. Ако използвате друг виртуален хост, зададени от свое име вместо на /etc/apache2/sites-available/default-ssl.conf.

Преди да започнете да конфигурирате, да направите резервно копие на файла домакин.

Sudo CP /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

Sudo нано /etc/apache2/sites-available/default-ssl.conf



ServerAdmin уебмастъра @ Localhost
DocumentRoot / Var / WWW / HTML
ErrorLog $ / error.log
CustomLog $ / access.log комбиниран
SSLEngine на
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

SSLOptions + StdEnvVars


SSLOptions + StdEnvVars

# BrowserMatch "MSIE [2-6]" \
# Nokeepalive SSL-нечист изключване \
# Понижаване-1,0 сила на реакция-1,0

Полученият файл ще има следния вид:



ServerAdmin [email protected]
ServerName server_domain_or_IP
DocumentRoot / Var / WWW / HTML
ErrorLog $ / error.log
CustomLog $ / access.log комбиниран
SSLEngine на
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

SSLOptions + StdEnvVars


SSLOptions + StdEnvVars

BrowserMatch "MSIE [2-6]" \
nokeepalive SSL-нечист изключване \
понижаване-1,0 сила на реакция-1,0

Запазване и затворете файла.

В този момент, сървърът поддържа HTTP, HTTPS и. За по-добра защита на сървъра, се препоръчва да деактивирате некриптиран HTTP трафик.

Sudo нано /etc/apache2/sites-available/000-default.conf

Запазване и затворете файла.

3: Конфигуриране на защитната стена

Ако активирате неотчитане на защитната стена (според инструкцията за първоначалната настройка), на този етап, тя трябва да бъде конфигуриран да подкрепят SSL трафик. За щастие, при инсталиране на Apache влиза в неотчитане на някои от техните профили.

Sudo неотчитане списъка с приложения
Налични приложения:
Apache
Apache Пълното
Apache Secure
OpenSSH

Sudo неотчитане статус

Ако е разрешено само HTTP трафик, настройките ще имат следния вид:

Статус: активен
За действие От
-- ------ ----
OpenSSH ДОПУСКА Anywhere
Apache ДОПУСКА Anywhere
OpenSSH (V6) позволяват Навсякъде (V6)
Скоро (V6) позволяват Навсякъде (V6)

За да добавите поддръжка за HTTPS трафик, трябва да се включва и изключва от Full Apache Apache профил профил.

Sudo неотчитане позволи "Apache Пълен"
Sudo неотчитане изтриване позволи "Apache"

Проверете текущото състояние на защитната стена:

Sudo неотчитане статус
Статус: активен
За действие От
-- ------ ----
OpenSSH ДОПУСКА Anywhere
Apache Пълен ДОПУСКА Anywhere
OpenSSH (V6) позволяват Навсякъде (V6)
Apache Пълното (v6) позволяват Anywhere (v6)

4: Обновяване на конфигурацията Apache

Така че сега конфигуриране на уеб сървър и защитна стена коригира. Можете да включите SSL и конфигуриран да поддържа виртуален хост на сертификата и след това рестартирайте уеб сървъра.

Активиране на SSL за модула Apache, за mod_ssl и mod_headers модул, който се изисква за SSL фрагмент:

Sudo a2enmod SSL
Sudo a2enmod заглавията

Завъртете, изготвен от един виртуален хост:

Sudo a2ensite подразбиране-SSL

Така че, сега на сайта и всички необходими модули са включени. Проверете синтаксиса за грешки:

Sudo apache2ctl configtest

Ако няма грешки, командата ще се върне:

AH00558: apache2: Не може да се определи надеждно пълното домейн име на сървъра, като се използват 127.0.1.1. Разположен на директивата ServerName "в световен мащаб, за да потисне това съобщение
Синтаксис OK

В първия ред на изхода съобщава, че директивата за ServerName не е зададен в световен мащаб. За да разрешите проблема с това, да редактирате директивата ServerName в /etc/apache2/apache2.conf, посочете името на домейна или IP сървър (това не е задължително, този сигнал да се премахнат по желание).

Ако се установи, синтактични грешки, поправете ги. След това рестартирайте уеб сървър:

Sudo systemctl рестартиране apache2

5: Тестване

Сега ние трябва да се уверим, че трафикът между клиента и сървъра е кодирано. В браузъра си на следния линк:

Тъй като сертификатът е подписан от себе си, браузърът ще докладва ненадеждността:

Връзката ви не е частна
Атаки може да опитат да откраднат информацията ви
(например пароли, съобщения или кредитни карти). NET :: ERR_CERT_AUTHORITY_INVALID

Това е нормално поведение на програмата в такава ситуация, защото браузърът не може да идентифицира хост. Въпреки това, в този случай, е необходимо само криптиране на трафика към над един самоподписан сертификат се справя, защото предупреждение браузър може да се пренебрегне. За да направите това, щракнете върху бутона Разширени и щракнете върху предложената връзка.

След това ще можете да имате достъп до вашия сайт.

6: Постоянни пренасочване

Ако всички настройки на сървъра работят правилно, задаване на постоянно пренасочване вместо временно.

Отваряне на Apache виртуален хост файл:

Sudo нано /etc/apache2/sites-available/000-default.conf

Намиране на вече добавен директива Пренасочване и да зададете постоянна.

Запазване и затворете файла. Проверете синтаксиса:

Sudo apache2ctl configtest

Sudo systemctl рестартиране apache2

заключение

Сега, сървърът Apache може да криптира предава данни, които ще защитят сървъри комуникира с клиентите си и да се предотврати прихващането на нарушители на движението.

Разбира се, при разработването на сайта се насърчават да подпише със SSL сертификат, който да надежден сертифициращ органи, като по този начин се избягва появата на плашещи сигнали.