CentOS
Установка SSL сертификата на Apache CentOS
Инструкция по установке SSL сертификата на Apache на сервере CentOS.
Создание запроса на сертификат (CSR) для Apache.
Подключение к хостингу по SSH
Перешли в папку с Apache
cd /etc/httpd/conf/
Создание закрытого (приватного) ключа
openssl genrsa -des3 -out private.key 2048
«Enter pass phrase for private.key» - вводим пароль для защиты
«Verifying — Enter pass phrase for private.key» - повторяем пароль
less private.key - посмотрим на готовый ключ.
Q - нажмем для выхода.
Создание запроса на сертификат (CSR)
openssl req -new -key private.key -out domain-name.csr
«Enter pass phrase for private.key» - вводим пароль
Заполняем следующие поля:
Country Name: двухсимвольный код страны согласно ISO-3166. «RU» для России.
State or Province Name: название области или региона без сокращений;
Locality Name: название города или населенного пункта;
Organization Name: название организации в латинском эквиваленте;
Organizational Unit Name: название подразделения, для которого заказывается сертификат (необязательное поле);
Common Name: полностью определенное (FQDN) доменное имя;
Email Address: контактный e-mail адрес (необязательное поле);
A challenge password: не заполняется;
An optional company name: альтернативное имя компании (не заполняется).
Посмотрим на созданный файл
openssl req -noout -text -in domain-name.csr
less domain-name.csr - откроем для копирования данных
Заказали SSL сертификат у RU-Center.
При заказе вставили созданный код с файла domain-name.csr
Подтвердили по email и по тел.
Проверка длилась 2 дня. В первый день подтвердили email, а на след. день по телефону.
Скачали сертификаты с личного кабинета RU-Center
Подключение к хостингу по SSH
Перешли в папку с Apache
cd /etc/httpd/conf/
Все промежуточные сертификаты поочередно вставили в файл intermediate.crt
Загрузили файл domain-name.crt
открыли на редактирование файл httpd.conf
Дописали пару строк к нужному домену:
SSLEngine on
SSLCertificateKeyFile /etc/httpd/conf/private.key
SSLCertificateFile /etc/httpd/conf/domain-name.crt
SSLCACertificateFile /etc/httpd/conf/intermediate.crt
Сохранили изменения и перезапустили Apache
/etc/init.d/httpd stop
/etc/init.d/httpd start
Нужно ввести пароль, что создавали при создании файла private.key
Готово. Сертификат установлен.
Инструкции в pdf:
создание CSR для Apache
Установка SSL сертификата для Apache
cron
cron — демон (планировщик задач в UNIX-подобных операционных системах).
Используется для выполнения заданий в определенное время, или через определенные промежутки времени.
Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.
Для редактирования заданий используется утилита crontab.
Место хранения файлов:
/var/spool/cron/<user or crontab>
Добавление файла расписания:
crontab имя_файла_расписания
Вывести содержимое текущего файла расписания:
crontab -l
Удаление текущего файла расписания:
crontab -r
Для редактирования файла crontab вашего пользователя используется команда[2]:
crontab -e
Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя:
crontab -u username
Внимание: -u можно воспользоваться только запуская crontab от лица суперпользователя.
Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы '*' или '/'.
* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)
Пример файла:
# как обычно, с символа '#' начинаются комментарии
# в качестве командного интерпретатора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
[email protected]
# добавить в PATH домашний каталог пользователя
PATH=/bin:/usr/bin:/home/paul/bin
#### Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца в 14 часов 15 минут
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john
23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
0 0 1 1 * echo "С новым годом!"
15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
0-59 * * * * echo "Выполняется ежеминутно"
0-59/2 * * * * echo "Выполняется по четным минутам"
1-59/2 * * * * echo "Выполняется по нечетным минутам"
# каждые 5 минут
*/5 * * * * echo "Прошло пять минут"
# каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник , 2 -> вторник и т.д.
0 1 1-7 * * [ "$(date '+\%u')" -eq 7 ] && echo "Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00"
#Запуск по ссылке каждый день
@daily wget -q --spider http://artana.ru >/dev/null 2>&1
#Запуск по ссылке каждые 2 минуты
*/02 * * * * wget -q --spider http://artana.ru >/dev/null 2>&1
#Запуск по ссылке в 7 утра и 10 минут
10 7 * * * curl -s http://artana.ru >/dev/null 2>&1
Linux команды
В данной статье будут команды для сервера Linux CentOS, что использую в жизни.
Поиск содержимого в файлах:
grep -r -n 'text' /path
Поиск файла:
find / -name "index.html"
Поиск файла в текущей папке:
find . -name "index.html"
Время и синхронизация, если надо:
date
ntpdate 3.centos.pool.ntp.org
Запуск Midnight Commander:
mc
Если нет, то команда для установки:
yum install mc
Утилита для скачивания файлов и сайтов:
wget -q https://URL
Пример с сайта djangoproject
wget -r -k -l 5 -p -E -nc -np https://docs.djangoproject.com/en/1.5/
-r - ходим по ссылкам (рекурсивное скачивание)
-k - преобразовываем ссылки к локальному виду
-p - скачивание ресурсов необходимых для отображения html-страницы (стили, картинки и т.д.)
-l - глубина скачивания, 0 - бесконечная вложенность ссылок
-nc - не перезаписывать существующие файлы
-np - не подниматься выше начального адреса при рекурсивной загрузке
cURL — служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL:
curl -k https://URL
dig — просмотр DNS записей домена
Если не работает, то открыть файл на редактирование /etc/resolv.conf и вставить код:
search dsitelecom.com
nameserver 8.8.8.8
nameserver 8.8.4.4
Список популярных команд
man # читать руководство по всему
chmod # изменить права к файлу или папке
chown # изменить владельца и/или группу
top # выводит список работающих в системе процессов
htop # продвинутая top
ps -la # Для получения основных сведений о процессах, запущенных текущем пользователем
ps -ela # Для всех пользователей
ps -a # Базовая информация для текущего пользователя
netcat # позволяет передавать/принимать данные через TCP/UDP соединения
telnet # это сетевой протокол, который используется для соединения удаленных компьютеров в сетях TCP/IP
telnet hostname port
sudo netstat -ntulp # покажет все сервисы и прослушиваемые ими порты и ip адреса
nohup, kill
vi, mcedit # редакторы
watch
screen
df -h # Смотреть свободное место на диске
P.S. Список команд будет расширяться по мере необходимости.
Решение ошибки: Starting httpd: (98)Address already in use
При попытке запуска Apache выдает ошибку:
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
При проверке ничего не выдает:
netstat -lnp | grep '0.0.0.0:80'
Решение ошибки:
killall -9 httpd
/etc/init.d/httpd start
Готово.
Linux команды для сервера
Команды управления для Apache
/etc/init.d/httpd start - запуск
/etc/init.d/httpd stop - стоп
/etc/init.d/httpd status - состояние
/etc/init.d/httpd restart - перезапуск
Команды управления для MySQL
/etc/init.d/mysqld start - запуск
/etc/init.d/mysqld stop - стоп
/etc/init.d/mysqld status - состояние
/etc/init.d/mysqld restart - перезапуск