3.13.1.1.6. Пример работы с сертификатами

 
Ниже приведен пример настройки Astra.HMI.WebViewer и Apache2 для возможности использования безопасных соединений с веб-приложением.
Используются приватный ключ "selfsigned.key", сертификат "selfsigned.crt".
Информация про форматы сертификатов доступна в разделе Формат сертификатов безопасности.
 
1. Необходимо перенести сертификат и ключ в защищенную директорию. Для этого перейдите в каталог с ними и выполните команды:
sudo mkdir -p /etc/apache2/ssl
sudo mv selfsigned.crt selfsigned.key /etc/apache2/ssl/
sudo chmod 600 /etc/apache2/ssl/*
 
2. В файле настроек "astra.hmi.webviewer.xml" добавьте запись и перезагрузите Astra.HMI.WebViewer:
<WebSocket Address="192.168.56.104" Port="8080" SslPort="4430" PrivateKeyPath="/etc/apache2/ssl/selfsigned.key" CertificatePath="/etc/apache2/ssl/selfsigned.crt"/>
 
3. Установите модуль Apache2 для работы c безопасными соединениями, выполнив команду:
sudo a2enmod ssl
 
4. Перезагрузите Apache2, выполнив команду:
sudo systemctl reload apache2
 
5. Создайте конфигурационный файл для сайта, выполнив команду:
sudo nano /etc/apache2/sites-available/000-default-ssl.conf
6. В открывшемся файле добавьте следующее содержимое и сохраните файл:
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName <имя_сервера>
    ServerAlias <IP-адрес>
    AstraMode off
 
    DocumentRoot /var/www/html/build
 
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/selfsigned.crt
    SSLCertificateKeyFile /etc/apache2/ssl/selfsigned.key
 
    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
 
7. Включите сайт и перезагрузите Apache2, выполнив команды:
sudo a2ensite 000-default-ssl
sudo systemctl reload apache2
 
8. Для того, чтобы сайт открывался в WebContent на Linux, необходимо добавить его в доверенные NSS (Network Security Services), который используется браузером Mozilla Firefox в AstraLinux. Для этого скопируйте сертификат (selfsigned.crt) в удобное место, выполнив команду:
cp /etc/apache2/ssl/selfsigned.crt ~/selfsigned.crt
9. Установите утилиту для добавления сертификата в NSS, выполнив команду:
sudo apt install libnss3-tools -y
 
10. Необходимо найти папку профиля Firefox, для этого выполните команду:
ls ~/.mozilla/firefox/
 
Необходимо найти каталог в формате xxxxxxxx.default-release
 
11. Добавьте сертификат, выполнив команду:
certutil -d sql:$HOME/.mozilla/firefox/xxxxxxxx.default-release -A -t "C,," -n "MySelfSignedCert" -i ~/selfsigned.crt
Расшифровка флагов:
-d sql:$HOME/.mozilla/firefox/xxxxxxxx.default-release — путь к базе NSS
-A — добавить сертификат
-t "C,," — доверенный сертификат CA (Certificate Authority)
-n "MySelfSignedCert" — имя сертификата в базе
-i ~/selfsigned.crt — путь к файлу сертификата
 
12. Проверьте, добавлен ли сертификат, выполнив команду:
certutil -d sql:$HOME/.mozilla/firefox/xxxxxxxx.default-release -L
 
13. Открываем браузер и переходим:
https://<DNS-имя> (если DNS настроен).
https://<IP-адрес> (по IP-адресу).