Настраиваем Apache. Защита от F5.

Нажав клавишу F5 в окне браузера и удерживая ее в течении нескольких минут вы можете устроить легкую DDOS атаку на сайт. Функциональная клавиша F5 дает команду браузеру перезагрузить страницу.

Если вы ее нажали и удерживаете длительное время, то ваш компьютер пытается загрузить ее (страницу) много и много раз, чем создает нагрузку на сервер в виде множественных запросов. А так как возможности любого сервера не безграничны, то от переизбытка «чувств» запросов он может перестать работать.
Зависнет сервер или нет зависит от технических характеристик и настроек самого сервера, сайта и используемой CMS. В этой статье я опишу как правильно настроить вэб-сервер Apache2 чтобы даже самый скромный сервер VDS с 512 МБ памяти справлялся с большим количеством запросов, в том числе вызванных клавишей F5.

 

Подготовка к настройке сервера

Определим какой модуль MPM использует Apache2. Для CentOS это выглядит так:

# httpd -V | grep MPM

Получаем ответ:

 
Server MPM:     Prefork
 -D APACHE_MPM_DIR="server/mpm/prefork"

Отлично, у нас Server MPM: Prefork

Настройка Apache, что бы не было проблем с жором памяти

В CentOS надо отредактировать файл /etc/httpd/conf/httpd.conf.
Который по-умолчанию может иметь следующее содержание:

    StartServers          8
    MinSpareServers       5
    MaxSpareServers      20
    ServerLimit         256
    MaxClients          200
    MaxRequestsPerChild 4000

Краткое описание параметров модуля Apache MPM Prefork

StartServers — число дочерних процессов, создаваемых при запуске сервера.
MinSpareServers — минимальное число неиспользуемых (запасных) дочерних процессов сервера, ожидающих потенциальные запросы.
MaxSpareServers — максимальное число запасных процессов, ожидающих потенциальные запросы. Если это число будет превышено, лишние процессы будут убиты.
MaxClients — самый важный параметр модуля MPM prefork, устанавливает верхний предел количества одновременно активных процессов. Именно от него зависит потребление памяти. Его значение перекрывает значение предыдущих параметров.
ServerLimit обычно равен MaxClients.
MaxRequestsPerChild — как часто сервер перерабатывает процессы, убивая старые и начиная (запуская) новые. Полезен при утечках памяти Apache и его библиотек.
KeepAlive — обеспечивает долгоживущие сессии HTTP, позволяющие отправлять несколько запросов через одно и то же соединение. Полезно включить, если страницы содержат много изображений. Но если используете NGINX как проксисервер, то оставьте значение OFF.

Рекомендую прочесть:  CentOS: проверка состояния жестких дисков и RAID контроллера на серверах HP

Самый важный параметр = MaxClients, он как раз и говорит о количестве одновременных процессов вебсервера Apache.

Как узнать значение MaxClients

Определить его значение не сложно. Расчет значения приведу для сервера с размером оперативной памяти 512 МБ. Решаем, что отдаем для ресурсов Apache 50% оперативной памяти, то есть в нашем случае 256 МБ.
Определяем сколько памяти отжирает один процесс:

# ps -ylC httpd | awk '{x += $8;y += 1} END {print "Average Proccess Size (MB): "x/((y-1)*1024)}'

Получаем следующие значения:

 
Average Proccess Size (MB): 21.5185

Получается, что в среднем один процесс Apache потребляет 21 МБ. Соответственно в отведенном объеме 256 МБ мы можем запустить 12 процессов.
Исправим файл конфигурации под новое значение:

    StartServers          3
    MinSpareServers       3
    MaxSpareServers       9
    ServerLimit         256
    MaxClients           12
    MaxRequestsPerChild 3000

Остальные параметры поправил исходя из рекомендаций в интернете для сервера с ОЗУ 512 МБ.
После внесения изменений в файл конфигурации не забудьте перезагрузить Appache:

# service httpd restart
Создание SWAP файла Linux

Создание SWAP файла

  1. Создаем файл необходимого размера для swap области, где /home/swap-tmp — это имя и путь файла, а count=1024K его размер, в данном случае — 1024 Мб):
    dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K

    На экране получим:

    [user@localhost user]#sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K
    1048576+0 записей считано
    1048576+0 записей написано
    скопировано 1073741824 байта (1,1 GB), 137,509 c, 7,8 MB/c
  2. Далее производим запись в начало файла системную информацию, которая будет используется ядром системы для работы с файлом подкачки:
    mkswap /home/swap-tmp

    После окончания операции на экране появится:

    [user@localhost user]# sudo mkswap /home/swap-tmp
    Устанавливается пространство для свопинга версии 1, размер = 1073737 кБ
    без метки, UUID=54c60583-e61a-483a-a15c-2f1be966db85
  3. Следующим шагом активируем только что созданный SWAP файл:
    swapon /home/swap-tmp

    Для просмотра результата просматриваем все объекты, которые используются для размещения виртуальной памяти:

    cat /proc/swaps
  4. После перезагрузки системы SWAP файл необходимо активировать снова или добавить строчка для автоматической загрузки в файл fstab.Редактировать файл fstab можно самостоятельно или командой, которая добавляет в конец файла fstab строку /home/swap-tmp swap swap defaults 0 0:
    echo "/home/swap-tmp swap swap defaults 0 0" | sudo tee -a /etc/fstab

    Тоже самое действие но добовление через UUID, который присваивается в пункте 2:

    # echo «UUID=54c60583-e61a-483a-a15c-2f1be966db85 swap swap defaults 0 0» | sudo tee -a /etc/fstab

Удаление SWAP файла

  1. Просматриваем все объекты, которые используются для размещения виртуальной памяти
    # cat /proc/swaps

    Выбираем ненужный.

  2. Деактивируем, для примера, созданный выше SWAP файл:
    # sudo swapoff /home/swap-tmp
  3. Удаляем SWAP файл:
    # sudo rm /home/swap-tmp

Если Вы раньше добавляли строчку в fstab, для автоматической загрузки SWAP файла при старте операционной системы, то следует ее удалить. Выводим файл /etc/fstab для редактирования на экран:

# sudo gedit /etc/fstab

В нем удаляем строчку монтирования SWAP файла.

Редактирование размера SWAP файла

Действия по редактирование объема SWAP файла сводятся к удалению уже созданного файла SWAP и созданию нового файла требуемого размера. То есть нужно сначало сделать пункт 3, а после пункт 2.

Создание и удаление SWAP файла
  1. Создаем файл необходимого размера для swap области, где /home/swap-tmp — это имя и путь файла, а count=1024K его размерв, в данном случае — 1024 Мб):
    # sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K

    [user@localhost user]#sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K

    1048576+0 записей считано
    1048576+0 записей написано
    скопировано 1073741824 байта (1,1 GB), 137,509 c, 7,8 MB/c
  2. Далее производим запись в начало файла системную информацию, которая будет используется ядром системы для работы с файлом подкачки:
    # sudo mkswap /home/swap-tmp

    После окончания операции на экране появится:

    [user@localhost user]# sudo mkswap /home/swap-tmp
    Устанавливается пространство для свопинга версии 1, размер = 1073737 кБ
    без метки, UUID=54c60583-e61a-483a-a15c-2f1be966db85
  3. Следующим шагом активируем только что созданный SWAP файл:
    # sudo swapon /home/swap-tmp

    Для просмотра результата просматриваем все объекты, которые используются для размещения виртуальной памяти:

    # cat /proc/swaps
  4. После перезагрузки системы SWAP файл необходимо активировать снова или добавить строчка для автоматической загрузки в файл fstab.Редактировать файл fstab можно самостоятельно или командой, которая добавляет в конец файла fstab строку /home/swap-tmp swap swap defaults 0 0:
    # echo «/home/swap-tmp swap swap defaults 0 0» | sudo tee -a /etc/fstab

    Тоже самое действие но добовление через UUID, который присваивается в пункте 2:

    # echo «UUID=54c60583-e61a-483a-a15c-2f1be966db85 swap swap defaults 0 0» | sudo tee -a /etc/fstab
3. Удаление SWAP файла
  1. Просматриваем все объекты, которые используются для размещения виртуальной памяти
    # cat /proc/swaps

    Выбираем ненужный.

  2. Деактивируем, для примера, созданный выше SWAP файл:
    # sudo swapoff /home/swap-tmp
  3. Удаляем SWAP файл:
    # sudo rm /home/swap-tmp

Если Вы раньше добавляли строчку в fstab, для автоматической загрузки SWAP файла при старте операционной системы, то следует ее удалить. Выводим файл /etc/fstab для редактирования на экран:

# sudo gedit /etc/fstab

В нем удаляем строчку монтирования SWAP файла.

4. Редактирование размера SWAP файла

Действия по редактирование объема SWAP файла сводятся к удалению уже созданного файла SWAP и созданию нового файла требуемого размера. То есть нужно сначала сделать пункт 3, а после пункт 2.

Источник

Восстановление данных с флешки/SD

Программа HDD Raw copy Tool. Для создания посекторной копии флешки/карты памяти — http://hddguru.com/software/HDD-Raw-Copy-Tool/

Программа TestDisk & PhotoRec. Для восстановления удаленных (потерянных) данных — http://www.cgsecurity.org/wiki/TestDisk_Download

Если программа выше не нашла ваши файлы попробуйте просканировать смонтированный образ этой бесплатной программой Recuva (ссылка на загрузку справа вверху страницы) — http://www.filehippo.com/download_recuva

Программа Virtual CloneDrive. Для монтирования образа .img — http://www.slysoft.com/en/download.html

Получение бесплатного SSL Сертификата от Certbot

Apache на CentOS / RHEL 7

устанавливать

Certbot упакован в EPEL (дополнительные пакеты для корпоративного Linux). Чтобы использовать Certbot, вы должны сначала включить репозиторий EPEL . В RHEL или Oracle Linux вы также должны включить дополнительный канал.

После этого вы можете установить Certbot, выполнив:

$ sudo yum install python2-certbot-apache

Плагины DNS Certbot также доступны для вашей системы, которые могут использоваться для автоматизации получения подстановочного сертификата с сервера ACMEv2 от Let’s Encrypt. Чтобы использовать один из этих плагинов, вы должны настроить DNS для домена, для которого вы хотите получить сертификат, с поставщиком DNS, для которого у Certbot есть плагин. Список этих плагинов и дополнительную информацию об их использовании можно найти здесь . Чтобы установить один из этих плагинов, запустите команду установки выше, но замените python2-certbot-apache именем плагина DNS, который вы хотите установить.

Начать

Certbot имеет довольно прочный бета-версию Apache-плагина, который поддерживается на многих платформах и автоматизирует установку сертификата.

$ sudo certbot --apache

Запуск этой команды получит сертификат для вас, и Certbot автоматически отредактирует вашу конфигурацию Apache для ее обслуживания. Если вы чувствуете себя более консервативно и хотите внести изменения в свою конфигурацию Apache вручную, вы можете использовать подкоманду certonly :

$ sudo certbot --apache certonly

Если вы хотите получить подстановочный сертификат, используя новый сервер ACMEv2 от Let’s Encrypt, вам также понадобится использовать один из плагинов DNS Certbot . Чтобы сделать это, убедитесь, что плагин для вашего провайдера DNS установлен с помощью приведенных выше инструкций и выполните команду, как показано ниже:

$ sudo certbot -a dns-plugin -i apache -d "* .example.com" -d example.com --server https://acme-v02.api.letsencrypt.org/directory

Вам нужно будет заменить dns-plugin именем плагина DNS, который вы хотите использовать. Вам также может потребоваться предоставить дополнительные флаги, такие как путь к вашим учетным данным API, как описано в документации для подключенного модуля DNS.

Команда вызова сертификата для nginx

$ sudo  certbot certonly —nginx

Чтобы узнать больше о том, как использовать Certbot, прочтите нашу документацию .

Автоматическое обновление

Certbot может быть настроен на автоматическое обновление сертификатов до истечения срока их действия. Так как сертификаты Let’s Encrypt длятся в течение 90 дней, рекомендуется воспользоваться этой функцией. Вы можете протестировать автоматическое обновление сертификатов, выполнив следующую команду:

$ sudo certbot renew --dry-run

Если это работает правильно, вы можете организовать автоматическое обновление, добавив задание cron или таймер systemd, который запускает следующее:

$ sudo certbot renew

Входим в планировщик

crontab -e

Я сделал обновление каждый месяц 16 числа в 00:00

0 0 16 * * certbot renew #Обновление SSL

Источник

Как настроить openfire на Centos 7

Openfire производим установку и настройку на системе CentOS 7.

Качаем openfire и устанавливаем

wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.2.3-1.x86_64.rpm
yum install ~/openfire-4.2.3-1.x86_64.rpm

Ставим mysql
yum install mariadb mariadb-server libldb.i686 krb5-workstation

Добавляем в автозагрузку и запускаем mysql и openfire


systemctl enable mariadb.service
systemctl start mariadb.service
systemctl enable openfire.service
systemctl start openfire.service

Создаем базу данных

mysql
> CREATE DАТАBASE openfire;
> GRANT ALL on openfire.* to 'openfire'@localhost IDENTIFIED BY 'your password';
> FLUSH PRIVILEGES;

меняем кодировку на utf8

> use openfire;
> alter database character set utf8;
> alter database collate utf8_general_ci;

Во время установки, когда будете выбирать драйвер MySQL укажите URL к базе вида:
jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

Если openfire уже установлен, то переконвертируйте базу в utf8, затем файле конфигурации openfire.xml допишите после jdbc:mysql://localhost:3306/openfire

?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

Здесь нужно ОБЯЗАТЕЛЬНО! заменить & на & иначе вместо входа в админку увидите страницу установки openfire.

Открываем в браузере http://my_ip:9090/my_ip меняем на ip адрес сервера

Установка PPTP VPN-сервера на CentOs 7 для ленивых.

В заголовке данной статьи почётное место занимает словосочетание «… для ленивых». Спешу заверить читателя в том, что эти слова не носят оскорбительный характер.
Напротив, если Вы открыли и читаете данную статью, то лень — не Ваша подруга )

Как многие мои предыдущие статьи, желание написать данную статью родилось в моей голове спонтанно. Как говорили до нас и будут говорить после нас : «Желания должны исполняться» )
Сегодня я напишу о том, как надо поднимать сервер PPTP VPN под управлением CentOS 7.
«Этот баян» многократно описан и переписан на страницах рунета » — наверняка подумает в этом месте читатель и окажется прав )
Почему-то мне захотелось преподнести этот «баян» в своём представлении.

Как известно, семейство операционных систем Linux не отличается своей дружелюбностью к пользователю. Каждому столкнувшемуся с ними приходилось многократно править конфигурационные файлы системы в поисках работоспособности того или иного приложения. Со временем процесс бесконечной правки файлов Linux превращается в надоедливую рутину.

Для себя процесс правки конфигов Linux на удалённых серверах я облегчила установкой на локальном компьютере программы Bitvise SSH Client. Программа позволяет редактировать файлы, находящиеся на удалённой машине, в редакторе Notepad++. При этом не возникает никаких проблем с кодировками, нет необходимости многократно стучать по клавиатуре в консольном текстовом редакторе Linux, имеется возможность копи-пастить информацию кнопками мыши и сохранять её на удалённом компе.
При всех своих достоинствах, программа Bitvise SSH Client не спасет от ошибок начинающих линуксоидов: всегда что-то пойдёт «не так». Процесс поиска ошибки занимает порой довольно продолжительный период времени. К примеру, вчера на полу-часовую установку PPTP VPN под управлением CentOS 7 я потратила весь день (
Несмотря на то, что упомянутый процесс многократно описан системными администраторами в своих блогах, по-настоящему стоящих статей не так уж и много. К тому-же в процессе установки VPN-сервера возникают вопросы, ответы на которые получить не у кого. Учитывая тот факт, что данный сайт носит статус «форума», отныне и навсегда каждый желающий сможет получить ответ ЗДЕСЬ !

— Немного самонадеянно — пробежала мысль в моём правом полушарии
— Ну и пусть — оппонировало левое )
— Мне это нравится — подытожил мозг, но пора уже переходить к сути статьи ))

Прежде, чем начать установку PPTP VPN-сервера на CentOS 7, необходимо установить репозиторий и установить сетевые утилиты.

# yum install -y epel-release
# yum install -y mc
# yum install -y net-tools

Указанная выше установка файлового менеджера Midnight Commander никак не связана с процессом установки сервера PPTP VPN и не является обязательной.

Далее необходимо отключить Selinux.
Система принудительного контроля Selinux отключается правкой конфигурационного файла /etc/sysconfig/selinux

Код:
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled

Выше я упомянула, что вчерашний процесс установки сервера VPN занял у меня весь день. В течение дня я редактировала этот файл многократно: локально в Notepad++, удалённо в mcedit. К вечеру под влиянием настройки Linux во мне стали просыпаться экстрасенсорные возможности )
С самого начала статьи я обещала способ «для ленивых», поэтому сегодня — никаких «ковыряний» в конфигах не будет !
Сегодня — способ для ленивых ))
Я призываю читателя статьи отключить SeLinux, а также продолжить установку PPTP VPN сервера при помощи нескольких консольных команд. Команды можно «тупо копировать» при помощи манипулятора «мышь» из этой статьи, вставлять в консоль Bitvise SSH Client и нажимать клавишу «ENTER» на клавиатуре. К концу статьи на вашей CentOS 7 гарантированно, с наименьшими умственными, эмоциональными и физическими затратами будет стоять PPTP VPN сервер )
Отключаем SeLinux:

# sed -i ‘s/\(^SELINUX=\).*/\SELINUX=disabled/’ /etc/sysconfig/selinux
# sed -i ‘s/\(^SELINUX=\).*/\SELINUX=disabled/’ /etc/selinux/config

После перезагрузки проверьте статус SELinux командой «sestatus», Вы должны увидеть следующий вывод:

SELinux status: disabled

Переходим к установке PPTP VPN сервера и добавлении его в автозагрузку:

# yum install -y ppp pptp pptpd pptp-setup
# chkconfig pptpd on

Далее настройка конфигов из консоли (копируем, вставляем и жмём «Enter») :
Файл /etc/pptpd.conf

cp /etc/pptpd.conf /etc/pptpd.conf.bak
cat >/etc/pptpd.conf<<EOF
option /etc/ppp/options.pptpd
logwtmp
localip 10.0.10.1
remoteip 10.0.10.2-254
EOF

Файл /etc/ppp/options.pptpd
Редактирование данного файла преследует собою цель — указание DNS серверов.
В примере ниже гугловские
ms-dns 8.8.8.8
ms-dns 8.8.4.4
можно заменить на свои.

Файл /etc/ppp/chap-secrets
Редактирование данного файла преследует собою цель — указание логина и пароля для подключения к PPTP VPN серверу.
В примере ниже «root» и «toor» можно заменить на свои.

cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
cat >/etc/ppp/chap-secrets<<EOF
root pptpd toor *
EOF

Файл /etc/sysctl.conf
Редактирование данного файла преследует собою цель — изменение значения «0» на «1» net.ipv4.ip_forward = 1.

Перечитываем конфигурацию.

sysctl -p

На этом установка и настройка VPN PPTP сервера закончена.

Осталось только «разобраться» с файерволлом.
Удаляем firewalld,

# systemctl stop firewalld
# systemctl disable firewalld

вместо него ставим IPTABLES:

# yum install iptables-services iptables

Включим автозапуск iptables:

# systemctl enable iptables
chmod +x /etc/rc.d/rc.local

Теперь процесс настройки IPTABLES подошёл к ответственному моменту — настройке конфигурации таблиц.
В рамках данной статьи, с целью не набивать себе «шишек» и не наживать лишних хлопот, я рекомендую отредактировать конфигурационный файл /etc/sysconfig/iptables в текстовом редакторе. Да, да, вопреки заявленному в начале статьи принципу отказа от использования текстовых редакторов, рекомендую сделать одно-единственное исключение ))

Код:
mcedit /etc/sysconfig/iptables

Истинные поклонники консоли вместо текстового редактора могут воспользоваться консольными командами:

echo «iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE» >> /etc/rc.d/rc.local
iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE

Это конец, сохраняем и перезапускаем всё: файерволл и сервер PPTP VPN.

service iptables save
service iptables restart
systemctl start pptpd

Проверяем,запущен ли pptp-сервер;

# ps ax | grep pptpd

Проверяем, слушается ли наш порт:

# netstat -an | grep -i listen

Дополнительная команда для проверки статуса pptpd:

# systemctl status pptpd
ТЕКСТОВЫЕ СООБЩЕНИЯ В ASTERISK МЕЖДУ SIP- КЛИЕНТАМИ

Здесь будем учиться настраивать абонентам возможность обмениваться текстовыми
сообщениями. Напомню, что эксперимент проводится на базе asterisk 13.11 и CentOS 7.2, настроенными здесь (http://ambistoma.no-ip.biz/archives/81) .
Итак. Для начала правим файл
nano /etc/asterisk/sip.conf

Здесь ищем, раскомментируем и приводим к виду строки
accept_outofcall_message = yes
outofcall_message_context = messages
auth_message_requests = no
Сохраняем, закрываем. Правим файл
nano /etc/asterisk/extensions.conf

Идем в конец файла и создаем там секцию [messages], в которую пишем
exten => _XXX,1,NoOp(Message receiving dialplan)
exten => _XXX,n,NoOp(To ${MESSAGE(to)})
exten => _XXX,n,NoOp(From ${MESSAGE(from)})
exten => _XXX,n,NoOp(Body ${MESSAGE(body)})
exten => _XXX,n,Set(LOCALTO=${CUT(MESSAGE(to),@,1)})
exten => _XXX,n,MessageSend(${LOCALTO},${MESSAGE(from)})
exten => _XXX,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _XXX,n,GotoIf($[“${MESSAGE_SEND_STATUS}” != “SUCCESS”]?
sendfailedmsg)
exten => _XXX,n,Hangup()
;
; failed send messaging
exten =>
_XXX,n(sendfailedmsg),Set(MESSAGE(body)=”[${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}] Your message to ${EXTEN} has failed. Retry later.”)
exten => _XXX,n,Set(LOCALME=${CUT(MESSAGE(from),<,2)})
exten => _XXX,n,Set(LOCALFROM=${CUT(LOCALME,@,1)})
exten => _XXX,n,MessageSend(${LOCALFROM},AsteriskSMC)
exten => _XXX,n,Hangup()

Сохраняем, закрываем. Теперь нужно зайти в консоль астериска и подгрузить изменения
asterisk -r
sip reload
dialplan reload
exit

Теперь наша АТС умеет передавать текстовые сообщения между внутренними абонентами. На софтофонах X-Lite, про которые я писал в статье указанной в самом начале эта возможность
предустановлена и ничего дополнительно настраивать не надо. А вот на IP-телефонах я пока не сильно представляю, как это должно реализовываться. Прошу обратить внимание – это не СМС.
И если мы подключимся к провайдеру телефонии, то для отправки и получения СМС с мобильных телефонов придется настраивать эту возможность дополнительно.

Источник

Свой Certificate Authority — в OpenSSL

Зачем это нужно?
Представим, у нас есть два сервера, работают они себе, и переодически они хотят, что-то друг у друга спросить по протоколу HTTP/HTTPS
Протокол HTTP не безопасен и логично использовать протокол HTTPS для общения меду серверами.
Для организации такого общения нам нужно 2 SSL сертификата.
Если сервера пренадлежат одной организации, то может быть проще и безопасней подписывать сертификаты самостоятельно, а не покупать

Создаем наш CA

Первая команда создаёт корневой ключ
openssl genrsa -out rootCA.key 2048

Для меня ключ 2048 bit достаточен, если вам хочется, вы можете использовать ключ 4096 bit.
Вторая команда создаёт корневой сертификат.
openssl req -x509 -sha256 -new -key rootCA.key -days 10000 -out rootCA.crt

Отвечать на вопросы тут можно как душе угодно.
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

10000 дней срок его годности, примерно столько живет сертификат, которым google требует подписывать андроид приложения для Google
Если вы паникер, подписывайте на год или два.
Все! Теперь мы можем создавать сертификаты для наших серверов и устанавливать корневой сертификат на наши клиентские машины.
Создаем сертификат подписаный нашим СА

Генерируем ключ.
openssl genrsa -out server101.mycloud.key 2048 -sha256

Создаем запрос на сертификат.
openssl req -new -key server101.mycloud.key -out server101.mycloud.csr -sha256

Тут важно указать имя сервера: домен или IP (например домен server101.mycloud)
Common Name (eg, YOUR name) []: server101.mycloud
и подписать запрос на сертификат нашим корневым сертификатом.
openssl x509 -req -sha256 -in server101.mycloud.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server101.mycloud.crt -days 5000

Теперь на клиенты нужно установить корневой сертификат rootCA.crt
rootCA.crt — можно давать друзьям, устанавливать, копировать не сервера, выкладывать в публичный доступ, rootCA.key — следует держать в тайне

Информация взята с https://habr.com/post/192446/

Ссылки по теме

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему