Ошибка выполнения операции *The SSL connection could not be established, see inner exception.
Для предотвращения ошибки предусмотрены следующие решения:
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
Подправьте файл конфигурации:
nano /opt/wsks-6.0.9_443/conf.ks/vhost_ks.conf
Внесите следующие изменения в файл конфигурации vhost_ks.conf:
- Вместо ключа
wsks-19.08_demo.key
и сертификатаwsks-19.08_demo.crt
укажите свой. - Если издатель
ca.crt
отсутствует, то закомментируйте строку так:
#SSLCACertificateFile /etc/apache2/ssl/ca.crt
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: клиент может предоставить действительный сертификат, но он не должен быть (успешно) поддающимся проверке
nano /opt/wsks-6.0.9_443/conf.ks/sslks.conf
Внесите следующие изменения в файл конфигурации sslks.conf:
- Вместо ключа
wsks-19.08_demo.key
и сертификатаwsks-19.08_demo.crt
укажите свой. - Если издатель
ca.crt
отсутствует, то закомментируйте строку так:
#ssl_client_certificate /etc/nginx/ssl/ca.crt;
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>
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