Skip to content

Ошибка выполнения операции *The SSL connection could not be established, see inner exception.

ssl-connection

Для предотвращения ошибки предусмотрены следующие решения:

1. Использование сертификата, выданного доверенным удостоверяющим центром.

Если вы имеете доверенный сертификат:

  • Поместите сертификат в папку ssl.

Папка расположена по пути: /opt/wsks-6.0.9_443/ssl

где wsks-6.0.9_443 версия_порт развернутого WEB-Сервер-КС.

  • Узнайте на чем работает WEB-Сервер-КС.

Возможные варианты: Apache, Nginx или Angie.

----------------------------------------------------------
 Процессы http сервера Apache, порт 5492
----------------------------------------------------------

    PID    PPID USERNAME %CPU% %MEM% CMD_apache
     33       1 root       0.0   0.0 /usr/sbin/apache2 -f /etc/apache2/conf.ks/apache2.conf -k start
    202      33 www-data   0.0   0.0 /usr/sbin/apache2 -f /etc/apache2/conf.ks/apache2.conf -k start
    203      33 www-data   0.0   0.0 /usr/sbin/apache2 -f /etc/apache2/conf.ks/apache2.conf -k start
----------------------------------------------------------
 Процессы http сервера Nginx, порт 443
----------------------------------------------------------

    PID    PPID USERNAME %CPU% %MEM% CMD_nginx
     29       1 root       0.0   0.0 nginx: master process /usr/sbin/nginx -c /e                                                                                                                    tc/nginx/conf.ks/nginx.conf
   4613      29 www-data   0.0   0.0 nginx: worker process
   4614      29 www-data   0.0   0.0 nginx: worker process
   4615      29 www-data   0.0   0.0 nginx: worker process
   4616      29 www-data   0.0   0.0 nginx: worker process
   4617      29 www-data   0.0   0.0 nginx: worker process
   4618      29 www-data   0.0   0.0 nginx: worker process
   4619      29 www-data   0.0   0.0 nginx: worker process
   4620      29 www-data   0.0   0.0 nginx: worker process
----------------------------------------------------------
 Процессы http сервера Angie, порт 5447
----------------------------------------------------------

     30       1 root       0.0   0.0 Angie: master process /usr/sbin/angie -c /e                      tc/angie/conf.ks/angie.conf
     31      30 www-data   0.0   0.0 Angie: worker process
     32      30 www-data   0.0   0.0 Angie: worker process
     33      30 www-data   0.0   0.0 Angie: worker process
     34      30 www-data   0.0   0.0 Angie: worker process
     35      30 www-data   0.0   0.0 Angie: worker process
     36      30 www-data   0.0   0.0 Angie: worker process
     37      30 www-data   0.0   0.0 Angie: worker process
     38      30 www-data   0.0   0.0 Angie: worker process
  • Остановите WEB-Сервер-КС.
bash /opt/wsks-6.0.9_443/ctl/ws_stop.sh

Подправьте файл конфигурации:

  • Apache

  • Nginx, Angie

  • Отредактируйте конфигурационный файл Apache.

nano /opt/wsks-6.0.9_443/conf.ks/vhost_ks.conf

Внесите следующие изменения в файл конфигурации vhost_ks.conf:

  1. Вместо ключа wsks-19.08_demo.key и сертификата wsks-19.08_demo.crt укажите свой.
  2. Если издатель ca.crt отсутствует, то закомментируйте строку так:

#SSLCACertificateFile /etc/apache2/ssl/ca.crt

vhost_ks.conf
  SSLEngine on
 
  SSLCertificateKeyFile /etc/apache2/ssl/wsks-19.08_demo.key
  SSLCertificateKeyFile /etc/apache2/ssl/ваше_имя.key
  SSLCertificateFile    /etc/apache2/ssl/wsks-19.08_demo.crt
  SSLCertificateFile    /etc/apache2/ssl/ваше_имя.crt
  SSLCACertificateFile /etc/apache2/ssl/ca.crt
  SSLCACertificateFile /etc/apache2/ssl/ваше_имя.crt
  
  #SSLCertificateChainFile<---->/etc/httpd/ssl/chain.crt
  # Опция, если нужно пускать только тех, у кого есть клиентский сертификат (2-хсторонний SSL) и т.д.
  
  SSLVerifyClient none
  # none: сертификат клиента вообще не требуется
  # optional: клиент может предъявить действующий сертификат
  # require: клиент должен предъявить действующий сертификат
  # optional_no_ca: клиент может предоставить действительный сертификат, но он не должен быть (успешно) поддающимся проверке
  • Отредактируйте конфигурационный файл Nginx, Angie.
nano /opt/wsks-6.0.9_443/conf.ks/sslks.conf

Внесите следующие изменения в файл конфигурации sslks.conf:

  1. Вместо ключа wsks-19.08_demo.key и сертификата wsks-19.08_demo.crt укажите свой.
  2. Если издатель ca.crt отсутствует, то закомментируйте строку так:

#ssl_client_certificate /etc/nginx/ssl/ca.crt;

sslks.conf
    ssl_certificate     /etc/nginx/ssl/wsks-19.08_demo.crt
    ssl_certificate     /etc/nginx/ssl/ваше_имя.crt;
    ssl_certificate_key /etc/nginx/ssl/wsks-19.08_demo.key
    ssl_certificate_key /etc/nginx/ssl/ваше_имя.key;
    
    ## Только при наличии издателя
    # ssl_client_certificate /etc/nginx/ssl/ca.crt;
    ssl_client_certificate /etc/nginx/ssl/ваше_имя.crt;


    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_ecdh_curve              secp384r1;
    ssl_session_cache           shared:SSL:10m;
    ssl_session_tickets         off;
    ssl_stapling                on;
    ssl_stapling_verify         on;
  • Запустите web-сервер.
bash /opt/wsks-6.0.9_443/ctl/ws_start.sh
bash /opt/wsks-6.0.9_443/ctl/ws_info.sh

2. Развертывание сервиса без использования HTTP-сервера

1. Установите WEB-Сервер-КС без http-сервера

В данном примере:

  • 443 - это виртуальный порт (этот порт не публикуется),
  • порт 9093 - это порт prometheus (сбор метрик сервисов),
  • локаль - ru_RU.utf8.
/opt/dks-wsks-6.0.9/install.sh -ws "no_http" -p "443" -cs "docker" -pp 9093 -l ru_RU.utf8
/opt/dks-wsks-6.0.9/install.sh -ws "no_http" -p "443" -cs "podman" -pp 9091 -l ru_RU.utf8

2. Установите сервис новостей

Инструкция по установке ->

3. Отключение проверки SSL

Это снижает уровень безопасности соединения. Используйте только в тестовых или изолированных средах!

В случае использования сертификата от ненадежного УЦ в файл конфигурации программного комплекса и сервиса новостей необходимо добавить секцию "SslPolicy".

  "SystemSettings": {
    ...
  },
  "SslPolicy" : {
    "CheckRemoteCertificateHost": false,
    "CheckRemoteCertificateAuthenticity": false
  }

4. Укажите адрес сервиса новостей, работающий по http

Сервис, развернутый с помощью «WEB-Сервер-КС» работает по http и по https. Добавьте секцию NewsService в файл конфигурации и укажите адрес, работающий по http.

  "SystemSettings": {
    ...
  }, 
  "NewsService": {
    "Address": "http://user:user@ip:кестрел_порт/",
    "Timeout": 60
  }

5. Добавить сертификат от ненадежного УЦ в доверенные

Предварительно нужно выгрузить сертификат издателя KSCA3.crt и подготовить сертификат srv.crt.

Пример ниже приведен для сертификата srv.crt выпущенным издателем KSCA3 (для хоста srv.keysystems.ru).

Если у хоста есть servername, то в файле /etc/hosts нужно прописать: 127.0.0.1 srv.keysystems.ru

Посмотреть информацию можно с помощью команды:

curl -I <hostname>

crul-l

1. Узнайте имя контейнера.

docker ps

2. Поместите сертификаты srv.crt и KSCA3.crt в папку /root/.

3. Скопируйте сертификаты в /usr/share/ca-certificates.

docker cp /root/KSCA3.crt wsks-6.0.9_443:/usr/share/ca-certificates
docker cp /root/srv.crt wsks-6.0.9_443:/usr/share/ca-certificates

4. Зайдите в контейнер.

Вся остальная работа будет проходить внутри контейнера.

docker exec -ti wsks-6.0.9_443 /bin/bash

5. Добавьте сертификаты в файл конфигурации.

echo -e KSCA3.crt >> /etc/ca-certificates.conf
echo -e srv.crt >> /etc/ca-certificates.conf

Обновите корневые сертификаты

update-ca-certificates

6. Проверьте состояние сертификата.

Если он в списке наверху, и перед именем сертификата стоит знак !, значит формат сертификата не подходит. Корректно установленный сертификат отображается в конце списка файла.

cat /etc/ca-certificates.conf

7. Проверьте доступность сервиса находясь внутри контейнера.

curl -I <hostname>

8. Выйдите из контейнера.

exit

© 2003—2025 ООО «Кейсистемс». Все права защищены.