Настройка HTTPS в Apache
Создание ключа и ssl-сертификата
Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.
Для создания ключа и сертификата вводим команду:
openssl req -new -x509 -days 30 -keyout server.key -out server.pem
На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.
На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter, соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.
После ответа на все вопросы в директории должны появиться два новых файла — (ключ) и (сертификат).
Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? Поэтому снимаем пароль с ключа:
cp server.key{,.orig} openssl rsa -in server.key.orig -out server.key rm server.key.orig
Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:
sudo cp server.pem etcsslcerts sudo cp server.key etcsslprivate sudo chmod 0600 etcsslprivateserver.key
Настройка Apache
Для начала необходимо активировать :
sudo a2enmod ssl
А затем включить настройки HTTPS сайта по умолчанию:
sudo a2ensite default-ssl
Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется (или ).
В этом файле рекомендуется после директивы
SSLEngine on
добавить строчку
SSLProtocol all -SSLv2
чтобы запретить использование устаревшего протокола SSLv2.
Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.
# Публичный сертификат сервера SSLCertificateFile /etc/ssl/certs/server.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/ssl/private/server.key
Теперь просто перезагрузите Apache:
sudo service apache2 restart
И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.
Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.
Перенаправление HTTP запросов на HTTPS
Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью . Если он не включён — включаем:
sudo a2enmod alias sudo service apache2 restart
Затем изменяем файл , отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву
Redirect / https://example.com/
При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.
Шаг 4: базовые команды Apache
Для работы с веб-сервером Apache вам необходимо знать базовые команды.
Команда для остановки веб-сервера:
$ sudo systemctl stop apache2
Команда для запуска веб-сервера (после остановки):
$ sudo systemctl start apache2
Команда для перезапуска (остановки и запуска):
$ sudo systemctl restart apache2
Если вы внесли какие-то изменения в конфигурацию, то вы зачастую можете перезапустить Apache без разрыва соединений. Для этого используйте команду:
$ sudo systemctl reload apache2
По умолчанию Apache настроен на автоматический запуск после начала работы сервера. Но эту настройку можно изменить при помощи команды:
$ sudo systemctl disable apache2
Если же вы все-таки хотите, чтобы Apache запускался вместе с сервером, введите:
$ sudo systemctl enable apache2
Теперь Apache снова будет автоматически запускаться после загрузки сервера.
Apache2
Чтобы удалить Apache2 Ubuntu, рекомендуется воспользоваться следующей последовательностью команд:
- Подключить рут при помощи ввода в консоли кода «whereis apache2».
- Вбить «/etc/init.d/apache2 stop» (если не работает, то попробовать ввести «service apache2 stop»). Тем самым юзер остановит запущенный процесс.
- Для уничтожения связанных процессов можно воспользоваться командой «aptitude search apache2 | egrep ^i».
- Теперь можно приступать к процедуре деинсталляции: для уничтожения всех связанных пакетов и файлов достаточно вбить ключ «apt-get purge apache2 apache2-utils apache2.2-bin apache2-common».
Шаг 1 — Установка PHP версий 7.0 и 7.2 с помощью PHP-FPM
Выполнив предварительные требования, вы можете установить PHP версий 7.0 и 7.2, а также PHP-FPM и некоторые дополнительные расширения. Для этого предварительно необходимо добавить в систему репозиторий .
Запустите команду для установки :
Пакет предоставляет утилиту командной строки , которую мы используем для добавления репозитория PPA (архив персональных пакетов).
Добавьте в систему репозиторий . Репозиторий PPA содержит более актуальные версии PHP, чем официальные репозитории Ubuntu, а также позволяет устанавливать несколько версий PHP в одной системе:
Обновите репозиторий:
Установите , , , и с помощью следующих команд:
- — это метапакет, используемый для запуска приложений PHP.
- предоставляет интерпретатор Fast Process Manager, который работает как демон и принимает запросы Fast/CGI.
- связывает PHP с базой данных MySQL.
- предоставляет модуль PHP для веб-сервера Apache.
- содержит mod_fcgid, запускающий несколько экземпляров программы CGI для обработки одновременных запросов.
Повторите процедуру для PHP версии 7.2. Установите , , и :
После установки обеих версий PHP запустите службу :
Затем проверьте статус службы :
Вывод должен выглядеть так:
Повторите процедуру и запустите службу :
Проверьте статус службы :
Вывод должен выглядеть так:
В заключение необходимо активировать несколько модулей, чтобы служба Apache2 могла работать с несколькими версиями PHP:
-
используется для выполнения скриптов CGI на основе типа носителя или метода запроса.
-
— это высокопроизводительная альтернатива , запускающая достаточное количество экземпляров программы CGI для одновременной обработки запросов.
-
позволяет создавать схемы разных деталей файловой системы хоста в дереве документов и для целей переадресации URL.
-
позволяет Apache перенаправлять запросы PHP-FPM.
Перезапустите службу Apache, чтобы применить изменения:
Мы установили на сервере две версии PHP. Теперь создадим структуру директорий для каждого сайта, который будем развертывать.
Удаление пакетов Debian
Самый простой способ удалить программу Debian, которая вам больше не нужна — это воспользоваться пакетным менеджером apt. Просто используйте команду apt remove:
$ sudo apt-get remove имя_программы
Или можно удалить все пакеты, которые касаются этой программы, например:
$ sudo apt-get remove имя_программы*
Например, удалим установленный по умолчанию почтовый клиент evolution. Если бы мы использовали звездочку, то были бы удаленны все пакеты, имя которых начинается на evolution, например, evolution-data и evolution-plugins.
Но при таком способе удаления в системе могут оставаться конфигурационные файлы программы, а также дополнительные пакеты. Чтобы удалить конфигурационные файлы можно использовать опцию —purge или команду purge:
А чтобы выполнить удаление пакетов debian, которые больше не нужны после установки используйте опцию —auto-remove, она аналогична запуску apt с командой autoremove:
Или просто:
Последняя команда выполняет полное удаление пакета из системы. Но чтобы удалить пакет вам нужно сначала знать его имя. Имя пакета можно узнать с помощью утилиты dpkg. Сначала ищем какие-либо файлы программы по ее названию, например, тот же evolution:
Дальше смотрим имя пакета, которому принадлежит выбранный файл:
А дальше, уже на основе полученной информации вы можете удалить лишний пакет. Рассмотрим как удалить пакет Debian с помощью dpkg, для этого есть опция -r или —remove. Но тут вам придется указать все зависимости:
У dpkg есть свой аналог команды purge, это опция -p или —purge, которая позволяет удалить пакет Debian полностью и не оставлять никаких конфигурационных файлов в системе:
Если пакет не удаляется потому что был поврежден или была повреждена база пакетов, а вы считаете что удаление именно этого пакета может спасти ситуацию, то используйте опцию —force-remove-reinstreq:
Также можно использовать опцию —force-depends, чтобы не удалять пакеты, которые зависят от удаляемого:
Иногда, во время удаления пакетов, некоторые зависимости остаются в системе, например, рекомендованные пакеты. Их тоже можно удалить чтобы освободить место и не держать лишнего на компьютере. Для этого используется программа deborphan. Для начала вам нужно будет ее установить:
Затем для поиска всех пакетов, которые можно удалить наберите:
Дальше вы можете удалить каждый пакет из списка вручную с помощью apt-get или dpkg. Если вы уже знаете, что все пакеты, которые будут удалены не нужны, то можно объединить команду deborphan с xargs и автоматически их все сразу удалить:
Имя каждого пакета будет подставлено в конец строки.
Чем хорош Убунту?
Убунту имеет существенные различия с Windows. В перечень особенностей операционной системы следует отнести:
- Различия в интерфейсе. Начинающему пользователю Линукса будет довольно сложно перестроится на Виндовс. Так, в рассматриваемой ОС кнопка запуска ПК, сведения о системе, Internet, переключатели громкости и языка, расположены на верхней горизонтальной панели инструментов.
- Слева сбоку расположено особое меню, в котором фиксируется перечень загруженных программ. Даже стандартный desktop, несмотря на внешнюю схожесть с «виндовским», имеет определенные особенности, которые могут сбить с толку.
- Более высокий уровень безопасности. Сюда следует отнести невозможность сноса важных элементов ОС без пароля, малое количество вирусов (устанавливать антивирусное ПО не требуется, но все равно рекомендуется проводить проверку системы минимум 1-2 раза в месяц).
- Благодаря интуитивности интерфейса к нему можно легко привыкнуть после первого месяца эксплуатации. В операционной системе практически все бесплатно, к тому же существует достаточное количество «клонов» приложений Виндовс.
- Разработчики «вшили» в Линукс центр для загрузки ПО – своеобразный аналог панели управления Windows.
- Работает в разы быстрее, чем Windows. Это относится как к работоспособности системы в целом (скоростной запуск программ и игр, включение/выключение ПК и т.д.), так и к скорости работы Интернета.
- Возможность установки программ, написанных для Windows, при помощи утилит Wine и PlayOnLinux. Также можно запросто форматировать софт из Линукса на Виндовс.
- Отсутствие необходимости постоянного обновления драйверов: система все сделает сама благодаря встроенной функции автоматического обновления из всевозможных источников.
- Практически безграничные возможности для персонализации ПК: наличие огромного числа настроек, достаточных для того, чтобы даже самый взыскательный пользователь смог настроить ОС «под себя».
Недостатками Убунту можно назвать:
- Малое число поддерживаемых игр и сложность их установки (никто не сможет дать 100% гарантии того, что после всех усилий официально неподдерживаемые игры будут корректно отображаться и работать на ПК с Линуксом) – вряд ли заядлый геймер смирится с подобным фактом.
- В целом система относится к категории «на любителя». В основном ее выбирают юзеры с высоким уровнем осознанности, которые понимают, чего они хотят добиться в процессе использования ПК. Это как iPhone и Android: «каждый выбирает по себе». Большинству по-прежнему по душе Windows: попробовать что-то новое решится далеко не каждый.
Выпуск самоподписанного сертификата
После установки Apache в операционной системе уже должен быть установлен openssl как зависимость к дистрибутиву. Поэтому можно сразу приступить к генерации сертификата.
Первоначально нужно перейти в директорию хранилища сертификатов с помощью команды:
cd /etc/ssl/certs
После чего требуется ввести команду генерации сертификата, где вместо <SERVER> нужно подставить имя компьютера, на котором планируется размещен Apache:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout <SERVER>.key -out <SERVER>.crt
Во время выполнения команды будет задано несколько вопросов. Для «Common Name (e.g. server FQDN or Your bane)» нужно также указать имя сервера. Остальные поля заполняются произвольно (кроме «Country name» — здесь можно оставить по умолчанию).
Удаление репозитория
Способ деинсталляции и инсталляции программ на Убунту радикально отличается от аналогичного процесса в Виндовс. На рассматриваемую ОС весь софт устанавливаются только из защищенных источников, то есть репозиториев, которые в самом общем виде представляют собой пакеты программ. Такие файлы имеют определенный формат и могут быть распакованы и установлены на компьютер при помощи специального пакетного менеджера. Каждый из подобных репозиториев содержит определенное количество веток, которые подразделяются на 2 большие группы:
- версию дистрибутива (в зависимости от указанной версии применяется определенное ПО);
- вторая группа веток, которая зависит от типа рассматриваемого программного обеспечения.
В Ubuntu существует всего четыре варианта ПО:
- Main – основная ветвь для официально поддерживаемых программ, так называемое «каноничное» ПО;
- Restricted – поддерживаемые программы без лицензии GPL;
- Universe – ПО, распространяемое участниками сообщества Убунту;
- Multiverse – ветвь для специального проприентарного ПО.
Именно такая структура наблюдается у большинства поддерживаемых репозиториев. При этом нужно понимать, что «левые» ppa-файлы могут заключать в себе совершенно иную структуру (например, единую ветвь main).
Помимо указанной классификации репозиториев, можно выделить еще репозиторий исходного кода (для сборки проги на ПК «в ручном режиме») и содержащий бинарные файлы (готовый пакет приложений).
Чтобы удалить репозиторий Ubuntu при помощи «gnome-terminal», можно воспользоваться специальной командой, включающей в себя оператор «remove», а именно «sudo apt-add-repository —repository «deb http://ppa.launchpad.net/shutter/ppa/ubuntu wily main»».
Также можно попробовать закомментировать deb строчку в «/etc/apt/sources.list», либо же в одном из доступных fles каталога «/etc/apt/sources.list.d/*».
Для уничтожения ppa-репозитория можно воспользоваться аналогичной командой sudo «add-apt-repository —remove ppa:репоз-ий/ppa». Но чтобы избавиться от остаточных файлов, потребуется вбить ключ «sudo ppa-purge ppa:репоз-ий/ppa». После произведения всех необходимых настроек обязательно нужно будет обновить перечень пакетов с целью последующей загрузки метаданных новых «ppa». Только так «pta» сможет работать с указанными репозиториями. Таким образом, необходимо дополнительно вбить в терминале ключ «sudo apt-get update».
Уничтожение ненужных ядер
Чтобы безопасно удалить из Ubuntu старые ядра, которые были автоматически установлены в систему, потребуется следовать инструкции:
- Вбить в терминале команду «sudo apt autoremove –purge».
- Ввести текущий пароль юзера с расширенными правами Sudo.
Можно также настроить авто-удаление ненужных старых ядер, что позволит улучить работоспособность системы без необходимости вмешательств со стороны пользователя. Для осуществления данной операции достаточно следовать инструкции:
- В Убунту до 16.04 версии нужно вбить ключ «sudo dpkg-reconfigure unattended-upgrades». На более новых ОС выполнять данное действие не потребуется.
- После нажатия на клавишу «Enter» надо произвести редактирование файла конфигурации при помощи кода «gksudo gedit /etc/apt/apt.conf.d/50unattended-upgrades». Но перед этим следует загрузить и поставить утилиту «gksu». Для установки «gksu» воспользоваться командой «sudo apt install gksu».
- Вручную изменить значение «Unattended-Upgrade:Remove-Unused-Dependencies» с позиции «»false»» на «“true»» и тапнуть на «Enter».
Если перед юзером стоит задача почистить ядра, установленные вручную при помощи Kernel PPA или «собственными силами», то пригодится скрипт «purge-old-kernels»:
- Установить специальный пакет под названием «byobu» путем ввода в терминале команды «sudo apt install byobu».
- Можно периодически использовать ключевую комбинацию «sudo purge-old-kernels» для уничтожения устаревших «kernels».
Также можно попробовать освободить пространство при помощи DPKG:
- Инициировать команду «uname –r», чтобы получить сведения об используемом ядре (уничтожать это ядро не нужно).
- Ввести ключ «dpkg_-l_|_tail_-n_+6_|_grep_-E_’linux-image-+’_|_grep_–F_ $(uname_-r)», где вместо «_» поставить пробелы.
- Почистить все лишние ядра, которые имеют особый статус («ii»), при помощи команды «sudo_dpkg –purge_linux-image-4.4.0-18-generic» (вместо «_» использовать пробел).
- При возникновении ошибки достаточно вбить ключ «udo dpkg —purge PACKAGE», после чего уничтожить пакеты данных старых ядер при помощи ключа «sudo_dpkg_—purge_linux-image-4.4.0-18-header_linux-image-4.4.0-18» (вместо «_» использовать пробелы).
- Вбить ключ «sudo apt -f install» для исправления зависимостей: готово.
Работа в Убунту
В рассматриваемой операционной системе есть свои правила работы. Так, чтобы удалить файл Ubuntu, просто выделить его и нажать на «Delete» не получится. Для уничтожения ненужных объектов потребуется воспользоваться специальной командой «rm» (аббревиатура от английского слова «remove»). При этом нужно проявить особую внимательность, чтобы случайно не стереть связанные файлы и каталоги данных: загвоздка в том, что восстановить уничтоженное ранее невозможно. «Корзина» здесь не предусмотрена. Так что следует выполнить следующие манипуляции:
- Открыть терминал, щелкнув по соответствующему элементу левой боковой панели инструментов. Также можно запустить терминал следующим способом: зайти в меню «Приложения», тапнуть на опцию «Стандартные» и выбрать соответствующий штатный инструмент эмулятора под названием «Gnome terminal». Более того, инициировать запуск эмулятора можно при помощи зажатия определенной комбинации клавиш – Alt + F После совершения данного действия юзер увидит на экране прототип виндовской «Командной строки» – ввести в пустом поле ключ «gnome-terminal» без кавычек. Также для вызова консоли можно зажать сочетание Ctrl + Alt + F1 (или F6), а для возврата в графический режим просмотра достаточно удерживать комбинацию Ctrl + Alt + F7.
- В окошке терминала ввести вручную путь к папке, в которой находится удаляемый файл, в следующем формате: «cd /home/user_name/Рабочий\ стол/shell/drl» (вбивать код без кавычек). Тапнуть на «Enter». Тем самым пользователь передаст консоли адрес расположения файла.
- В окошке консоли появится надпись «/Рабочий стол/shell/dir1$». Ввести код для удаления файла «rm -f» без кавычек и тапнуть на «Enter».
- Указать имя деинсталлируемого файла и его расширение в формате «test.txt» и кликнуть на «Enter»: после совершения указанной манипуляции объект будет полностью ликвидирован из системы без возможности восстановления.
Чтобы удалить пустую папку (каталог) в Ubuntu, достаточно в окошке консоли вбить ключ «rm -d dirname», причем вместо параметра «dirname» указать наименование каталога. Для ликвидации заполненных папок (с данными внутри них) необходимо вбить в консоли рекурсивный параметр «-r»: «rm -r dirname».
Если же задачей владельца ПК или ноутбука является очистка сразу нескольких каталогов, то достаточно воспользоваться ключом «-rm» и вбить названия папок через пробел. В результате получится функция типа «rm -r dirname1 dirname2 dirname3». Также можно использовать знак « *» и значения, соответствующие нескольким файловым каталогам.
Удаление программ в Ubuntu также производится при помощи командной строки, т.е. из уже известного окошка терминала «gnome-trminal».
Для того чтобы удалить приложение Ubuntu, достаточно:
- Вызвать окошко «gnome-trminal» любым из описанных выше способов, например, зажав сочетание Ctrl + Alt + T.
- Вбить ключ «sudo apt-get remove program_name» без кавычек, вместо параметра «program_name» указать имя деинсталлируемого приложения. Нажать на «Enter».
- На дисплее отобразится надпись «password for su». Необходимо ввести свой пароль: запустится процесс очистки ПО, который займет пару минут.
- Если нужно уничтожить вместе с программой все остаточные файлы, то придется ввести дополнительные параметр «purge». Соответственно, функция в данном случае выглядит следующим образом: «sudo apt-get –purge remove program_name».
- Программа будет полностью удалена с компьютера.
https://youtube.com/watch?v=xCvS73-MoQw
Копирование числовых ячеек из 1С в Excel Промо
Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.
Настройка
Для применения изменений в настройках необходимо перезапустить демон Apache:
sudo service apache2 restart
/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites-enabled `-- *.conf
Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды или . Пример подключения модуля:
sudo a2enmod <mod-name>
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды или . Пример подключения файла со своими настройками:
sudo a2enconf <config-name>
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды или . Пример подключения виртуального хоста:
sudo a2ensite <site-name>
Кодировка по умолчанию
Для указания кодировки по умолчанию следует использовать директиву в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
AddDefaultCharset UTF-8
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
<VirtualHost *:80> #Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 <Directory /var/www/host1.server1> #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All </Directory> </VirtualHost>
Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.
После создания файла настроек допишите в /etc/hosts имя вашего хоста:
127.0.0.1 host1.server1
Для включения созданного виртуального хоста используется утилита :
sudo a2ensite host1.server1
Отключается хост аналогично утилитой :
sudo a2dissite host1.server1
mod_userdir
Модуль позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html
mkdir ~public_html
Чтобы включить , выполните:
sudo a2enmod userdir
и добавьте необходимого пользователя в группу www-data:
sudo adduser $USER www-data
после чего перезагрузите Apache:
sudo service apache2 restart
Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.
CGI
Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль командой
sudo a2enmod cgi
По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно,
указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле
/etc/apache2/conf-enabled/serve-cgi-bin.conf.
Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста