Пост

Установка PKI-системы EJBCA на Centos 7

EJBCA — это OpenSource ПО для создания Certification Authority уровня предприятия. EJBCA используется для создания центра сертификации сертификатов инфраструктуры открытого ключа (PKI)

Подготовка

Устанавливаем софт

1
$ sudo yum install -y nano tar unzip java-1.8.0-openjdk-devel ant psmisc mariadb bc patch

Установка СУБД MariaDB

Устанавливаем и запускаем MariaDB, проверяем статус

1
2
3
$ sudo yum install -y mariadb-server
$ sudo systemctl enable --now mariadb
$ systemctl status mariadb

Первоначальная настройка MariaDB, устанавливаем пароль для пользователя root

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n]
Set root password? [Y/n]
New password: %password
%
Re-enter new password: %password%
Password updated successfully!
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
Thanks for using MariaDB!

Создаем базу, нового пользователя БД, устанавливаем пароль пользователя

1
2
3
4
$ sudo mysql -u root -p
mysql> CREATE DATABASE ejbcatest CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON ejbcatest.* TO 'ejbca'@'localhost' IDENTIFIED BY 'ejbca';
mysql> exit

Установка PKI-системы EJBCS

Создадим нового пользователя ejbca, от которого будет работать система EJBCA

1
$ sudo useradd -m -U -r -d /opt/ejbca ejbca

Задаем пароль пользователю

1
2
3
$ passwd ejbca
New password:
Retype new password:

Добавляем пользователя ejbca в группу wheel, что бы у него появились права суперпользователя (sudo)

1
$ sudo usermod -aG wheel ejbca

Переключаемся на нашего пользователя, переходим в домашний каталог

1
2
$ sudo su - ejbca
$ cd

Скачиваем дистрибутив и распаковываем его в домашний каталог текущего пользователя (/opt/ejbca)

1
2
$ wget https://netcologne.dl.sourceforge.net/project/ejbca/ejbca6/ejbca_6_15_2_6/ejbca_ce_6_15_2_6.zip
$ unzip ejbca_ce_6_15_2_6.zip

Если создавали другие БД и пользователя, правим логин/пароль в установочном скрипте

1
2
3
4
5
6
7
$ nano /opt/ejbca/ejbca_ce_6_15_2_6/bin/extra/ejbca-setup.sh

По-умолчанию:
host: localhost
db: ejbcatest
dbuser: ejbca
dbuserpass: ejbca

Запускаем установку EJBCA

1
$ ./ejbca_ce_6_15_2_6/bin/extra/ejbca-setup.sh

Запуск скрипта надо выполнять от текущего пользователя, не root Скрипт ejbca-setup.sh надо обязательно запускать из каталога, в который распаковывали EJBCA.

В процессе установки отвечаем на вопросы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
This installs the EJBCA PKI
found RedHat/CentOS
EJBCA will be installed as OS user 'ejbca'

please install dependencies with:
yum install tar unzip java-1.8.0-openjdk-devel ant psmisc mariadb bc patch

Please select "Yes" if you did so, but not before
1) Yes
2) No
#? 1

This will destroy your complete EJBCA installation in database ejbcatest
Do you want this?
1) Yes
2) No
#? 1

LAST CHANCE TO STOP THIS
Do you really want to destroy your EJBCA installation in database ejbcatest?
1) Yes
2) No
#? 1

[...]

You can now install the superadmin.p12 keystore, from /opt/ejbca/ejbca_ce_6_15_2_6/p12, in your web browser, using the password xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, and access EJBCA at https://localhost:8443/ejbca

Настраиваем Firewall

Открываем порты

1
2
3
4
$ sudo firewall-cmd --add-port=8443/tcp --permanent
$ sudo firewall-cmd --add-port=8442/tcp --permanent
$ sudo firewall-cmd --add-port=8080/tcp --permanent
$ sudo firewall-cmd --reload

Команды для запуска / остановки сервиса EJBCA

Команды выполняются от пользователя ejbca

1
2
3
4
5
6
7
8
9
10
11
Start EJBCA:
$ cd ~
$ nohup wildfly/bin/standalone.sh -b 0.0.0.0 > /dev/null 2> /dev/null &

Stop EJBCA:
$ cd ~
$ ./wildfly/bin/jboss-cli.sh --connect :shutdown

Reload EJBCA:
$ cd ~
$ ./wildfly/bin/jboss-cli.sh --connect :reload

EJBCA как системный сервис в Linux

Создаем Systemd Unit ejbca.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ sudo nano /etc/systemd/system/ejbca.service

[Unit]
Description=EJBCA Server Daemon
After=network-online.target

[Service]
Type=simple
User=ejbca
Group=ejbca
UMask=007
WorkingDirectory=/opt/ejbca
ExecStart=/opt/ejbca/wildfly/bin/standalone.sh -b 0.0.0.0
ExecReload=/opt/ejbca/wildfly/bin/jboss-cli.sh --connect :reload
ExecStop=/opt/ejbca/wildfly/bin/jboss-cli.sh --connect :shutdown
Restart=on-failure
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target

Если EJBCA был запущен, останавливаем его (от пользователя ejbca)

1
$ cd ~ && ./wildfly/bin/jboss-cli.sh --connect :shutdown

После создания Systemd Unit, необходимо перезагрузить процесс самого Systemd, для подхвата изменений. Затем запускаем сервис и добавляем его в автозагрузку. Проверяем статус

1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now ejbca
$ systemctl status ejbca

Полезная информация

После установка EJBCA система выдает информацию о расположении сертификата superadmin.p12 и пароля к нему:

1
/opt/ejbca/ejbca_ce_6_15_2_6/p12/superadmin.p12

Его надо скачать и импортировать в бразуер, например Firefox:

Настройки > Приватность и защита > Просмотр сертификатов > Ваши сертификаты > Импортировать

так же пароль сертификата superadmin.p12 можно узнать, выполнив команду

1
$ grep "superadmin.password" /opt/ejbca/ejbca-custom/conf/web.properties

Админка расположена по адресу:

1
https://localhost:8443/ejbca/adminweb/
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.