Добавление собственного SSL-сертификата для домена
1. Подключение домена к ПО
Актуально, если домен еще не подключен.
Переходим в раздел "Настройки"->"Общие". В строке "Доменное имя" нажимаем "Указать домен". В открывшемся окне включаем переключатель и вводим имя домена.
1.5 Отключаем уже имеющиеся сертификаты.
Проверьте, что в строке "TLS" у вас активная строка "Использовать Let's Encrypt". Если написано что-то другое, то нужно нажать "Изменить" и в открывшемся окне отключить галочку в графе "Выпустить TLS сертификат"
Добавление сертификата.
Проверка наличия старого сертификата
Заходим на сервер ПО. Проверяем, что для текущего домена нет секрета с сертификатом:
$ kubectl -n stopphish get secrets
NAME TYPE DATA AGE
stopphish-license Opaque 2 11d
stopphish-registry-pullsecret kubernetes.io/dockerconfigjson 1 11d
stph.local-tls kubernetes.io/tls 2 8m56s
В полученом списке не должно быть секретов с именем <your_domain>-tls
. Если такой есть (в примере выше это stph.local-tls
), его нужно удалить:
$ kubectl -n stopphish delete secret stph.local-tls
secret "stph.local-tls" deleted
Добавляем собственный сертификат
Загружаем на сервер собственные сетрификаты. В данном примере они загружены директорию пользователя (~/
).
Создаем секрет с сертификатом для нашего домена. Формат имени <your_domain>-tls
. В нашем примере это stph.local-tls
.
$ kubectl -n stopphish create secret tls stph.local-tls \
--cert=~/server.crt \
--key=~/server.key
secret/stph.local-tls created
Вклюяаем TLS через Базу Данных
Находим имя пода с базой данных:
$ kubectl -n stopphish get pod
NAME READY STATUS RESTARTS AGE
api-5dbf6896d5-vwqp6 1/1 Running 0 16m
api-campaigns-64dfd6cc49-wzq5p 1/1 Running 27 (70m ago) 11d
api-hosting-7c96ccf6f4-vdfds 1/1 Running 9 (72m ago) 11d
api-ldap-86f84c9975-lx59d 1/1 Running 7 (72m ago) 8d
api-lms-7ddbf85fb9-prqkp 1/1 Running 3 (70m ago) 18h
api-mailer-85c78f4777-zwdq6 1/1 Running 23 (71m ago) 11d
api-website-scraper-74476d6987-x88xj 1/1 Running 5 (72m ago) 6d19h
frontend-7b98d89cd8-j4kgz 1/1 Running 9 (72m ago) 11d
lms-frontend-5bf6c5cd4f-lwk4x 1/1 Running 1 (72m ago) 18h
nats-98fb57859-z85c9 1/1 Running 9 (72m ago) 11d
postgres-74468b87f6-l82jz 1/1 Running 9 (72m ago) 11d
redis-c78f8d7bd-hxpzq 1/1 Running 9 (72m ago) 11d
Нам нужен под название которого начинается с postgres-
(в примере выше это postgres-74468b87f6-l82jz
).
Выполняем запрос для создания записи:
$ kubectl -n stopphish exec postgres-74468b87f6-l82jz -- psql --user=stopphish stopphish -c 'UPDATE settings SET value=\'true\' WHERE namespace = \'core\' AND key =\'tls\';'
UPDATE 1
Это включит "TLS" без запуска процесса выпуска сертификата Let's Encrypt.
Если по какойи либо причине запрос выше выдал ошибку, можно выполнить следующую команду:
$ kubectl -n stopphish exec postgres-74468b87f6-l82jz -- psql --user=stopphish stopphish -c 'INSERT INTO settings (namespace, key, value) VALUES (\'core\', \'tls\', \'true\') ON CONFLICT (namespace, key) DO UPDATE SET value = EXCLUDED.value;'
INSERT 0 1
Перезагружаем сервис API для применения изменений:
Находим имя пода с API:
$ kubectl -n stopphish get pod
NAME READY STATUS RESTARTS AGE
api-5dbf6896d5-vwqp6 1/1 Running 0 16m
api-campaigns-64dfd6cc49-wzq5p 1/1 Running 27 (70m ago) 11d
api-hosting-7c96ccf6f4-vdfds 1/1 Running 9 (72m ago) 11d
api-ldap-86f84c9975-lx59d 1/1 Running 7 (72m ago) 8d
api-lms-7ddbf85fb9-prqkp 1/1 Running 3 (70m ago) 18h
api-mailer-85c78f4777-zwdq6 1/1 Running 23 (71m ago) 11d
api-website-scraper-74476d6987-x88xj 1/1 Running 5 (72m ago) 6d19h
frontend-7b98d89cd8-j4kgz 1/1 Running 9 (72m ago) 11d
lms-frontend-5bf6c5cd4f-lwk4x 1/1 Running 1 (72m ago) 18h
nats-98fb57859-z85c9 1/1 Running 9 (72m ago) 11d
postgres-74468b87f6-l82jz 1/1 Running 9 (72m ago) 11d
redis-c78f8d7bd-hxpzq 1/1 Running 9 (72m ago) 11d
Нам нужен pod в названии которого есть только api-**********-*****
. В примере выше это api-5dbf6896d5-vwqp6
.
Удаляем этот под командой
kubectl -n stopphish delete pod api-5dbf6896d5-vwqp6
pod "api-5dbf6896d5-vwqp6" deleted
Ждем 30 сек - минуту и проеряем что новый под запущен:
$ kubectl -n stopphish get pod
NAME READY STATUS RESTARTS AGE
api-5dbf6896d5-pgdnv 1/1 Running 0 36s
...
...
...
После этого можно проверять что сертифика подключен к вебинтерфейсу.