Поступил вопрос от пользователя как поставить сертификат ЕШДИ c расширением .cer в доверенные корневые сертификаты? Если кто не знает, то это супер сертификат (Корневой сертификат Единого шлюза доступа к Интернету), который стоит посередине между вами и интернетом в сети государственных органов Казахстана. Писать о том плохо это или хорошо не буду, я думаю понятно почему.

Так вот мне казалось, что ответ будет довольно простым и в стиле вот ссылочка на оф сайт, где собственно всё расписано. А не тут-то было, ссылка, то есть, только вот инструкция только для Windows. Ох как же это знакомо, мы что-то сделаем, а вся последующая головная боль это уже проблемы пользователя.

Ну и раз не смогли это сделать специалисты ГТС то распишу я, может кому-то пригодится.

Windows

Собственно, вот сама инструкция от них.

Но если вам вдруг не подошла их инструкция то вот моя.

Обычный метод

  1. Скачиваем сертификат с сайта https://sts.kz/eshdi/
  2. Открываем сертификат и нажимаем установить enter image description here
  3. Выбираем расположение (если нужно для сервисов, то лучше ставить на компьютер)
  4. Нажимаем несколько раз далее и готово

Скрипт

Я тут написал скрипт, который поставит либо удалит сертификат за вас. Итак, что он умеет:

  1. Скачивает сертификат с сайта (url может меняться, проверьте правильность на самом сайте sts.kz)
  2. В зависимости от того что вы выбрали ставит либо удаляет сертификат

При запуске скрипта через Powershell будет запрос, где каждая цифра означает:

  1. Ставит сертификат только для текущего пользователя
  2. Удаляет сертификат у текущего пользователя
  3. Ставит сертификат только для компьютера и стало быть для всех пользователей, программ, сервисов и т.д.
  4. Удаляет сертификат с компьютера
  5. Удаляет сертификат с компьютера и у пользователя

На мой взгляд это отличное решение особенно если вам нужно поставить этот сертификат на время, а после быстро его удалить. Если скрипт реально пригодился не забудьте активировать звёздочку на github.

RHEL

Вот тут уже я как раз и не нашел инструкции, и это печаль. Не понимаю, что такого сложного было в том, чтобы написать инструкцию и для Linux.

Обычный метод

  1. Скачиваем сертификат
    sudo yum -y install wget
    sudo wget https://sts.kz/wp-content/uploads/2021/05/Unified_State_Internet_Access_Gateway.cer -o /etc/pki/ca-trust/source/anchors/Unified_State_Internet_Access_Gateway.crt
    
  2. Обновляем список доверенных корневых сертификатов
    sudo update-ca-trust
    
  3. Если хочется удостоверится что сертификат стоит, то можно выполнить команду
    trust list | grep "Unified State Internet Access Gateway"
    
     label: Unified State Internet Access Gateway
    

Скрипт

Также написал скрипт, который я проверял на CentOS и Ubuntu. Суть та же, либо добавляет, либо удаляет сертификат. Как им пользоваться написано в описании проекта на github.

Ubuntu

Обычный метод

  1. Скачиваем сертификат
    sudo apt -y install wget
    sudo wget --output-document /usr/local/share/ca-certificates/Unified_State_Internet_Access_Gateway.crt https://sts.kz/wp-content/uploads/2021/05/Unified_State_Internet_Access_Gateway.cer
    
  2. Обновляем список доверенных корневых сертификатов
    sudo update-ca-certificates
    
  3. Если хочется удостоверится что сертификат стоит, то можно выполнить команду
    trust list | grep "Unified State Internet Access Gateway"
    
     label: Unified State Internet Access Gateway
    

Скрипт

Также написал скрипт, который я проверял на CentOS и Ubuntu. Суть та же, либо добавляет, либо удаляет сертификат. Как им пользоваться написано в описании проекта на github.

Замечание

Многие сервисы не работают с сертификатами установленными в системе и для таких сервисов придётся искать мануалы как и куда добавлять сертификат. Работает данный метод или нет можно просто выполнив команду curl на сайт, на котором подменяется сертификат.