Подскажите, кто знает, как на сервере обмена сообщениями установить сертификат безопасности и указать его в конфигурационных файлах сервиса сообщений, чтобы использовать wss://
Нравится
Добрый день.
1. получить сертификат. Например, на https://letsencrypt.org/ru/
2. Сформировать сертификат с расширением pfx
openssl pkcs12 -export -nokeys -in certificate.cer -out certificate.pfx
3. Установить Messaging Service.
4. Разместить pfx его в папке Messaging Service.
5. Прописать параметры pfx в конфиге Messaging Service
<server name="ClientWebSocketService" serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp" idleSessionTimeOut="10000" maxCommandLength="4096" security="tls12" > //Заменить tls на tls1.2 <certificate filePath="certificate.pfx" password="111"></certificate> </server>
Добрый день!
Дополню ответ Игоря.
Так же кроме всех этих действий необходимо дополнительно в конфигурационном файле в секции <servers> удалить или “закомментировать” следующий конфигурационный блок:
<server name="ClientWebSocketService"
serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp"
idleSessionTimeOut="10000" maxCommandLength="4096"
maxConnectionNumber="10000">
</server>
А так же после внесения изменений в конфигурационный файл необходимо в системной настройке “Сервер обмена сообщениями“ (код “SysMsgServerNode“) изменить адрес подключения к серверу телефонии с ws:// на wss://.
Также подробная инструкция по настройке защищенного соединения wss размещена на Академии: https://academy.terrasoft.ru/docs/user/drugie_reshenija/konnektory_tele…
Коновалов Игорь, К сожалению, по вашему мануалу не получилось. На http всё работает.
Сертификат сгенерированный таким образом (без ключа) TMS не принимает:
----
2022-06-16 15:37:57,624 [4] ERROR ClientWebSocketService - Failed to parse 'Tls1.2' to SslProtocol!
2022-06-16 15:37:57,624 [4] ERROR DefaultBootstrap - Failed to setup server instance!
----
Свой pfx сертификат, которым подписан сайт в err.log выдаёт:
----
2022-06-16 15:23:55,676 [15] ERROR ClientWebSocketService - Session: ef6bdf3c-7488-45ea-93ae-05cd0d4a59bb/192.168.2.75:49881
Unexpected error
System.IO.IOException: Сбой операции дешифрования, см. внутреннее исключение. ---> System.ComponentModel.Win32Exception: При обработке сертификата произошла неизвестная ошибка
--- Конец трассировки внутреннего стека исключений ---
в System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult)
в SuperSocket.SocketEngine.AsyncStreamSocketSession.OnStreamEndRead(IAsyncResult result)
----
В конфиг файле закомментировал строку без SSL, раскомментировал с ssl как в инструкции:
----
<servers>
<!--
<server name="ClientWebSocketService" serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp"
idleSessionTimeOut="10000" maxRequestLength="4096" maxCommandLength="4096" maxConnectionNumber="10000" SendTimeOut="30000">
</server>-->
<!--Support for WebSocket secure connection. Replace previous and set correct certificate name and password. -->
<server name="ClientWebSocketService" serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp"
idleSessionTimeOut="10000" maxRequestLength="4096" maxCommandLength="4096" security="Tls12">
<certificate filePath="cert-domain.pfx" password=""></certificate>
</server>
----
Явно проблемы в связке сертификата и его скармливанием ТМСу, но что делать не пойму. Если исправить Tls12 на Tls1.2 получаю такую ошибку в err.log:
----
2022-06-16 15:30:08,380 [6] ERROR ClientWebSocketService - Session: 4ba204cb-1f12-4925-933f-547e63fe4ea8/192.168.2.75:49894
Unexpected error
System.IO.IOException: Сбой операции дешифрования, см. внутреннее исключение. ---> System.ComponentModel.Win32Exception: При обработке сертификата произошла неизвестная ошибка
--- Конец трассировки внутреннего стека исключений ---
в System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult)
в SuperSocket.SocketEngine.AsyncStreamSocketSession.OnStreamEndRead(IAsyncResult result)
2022-06-16 15:30:16,231 [4] ERROR ClientWebSocketService - Failed to parse 'Tls1.2' to SslProtocol!
2022-06-16 15:30:16,231 [4] ERROR DefaultBootstrap - Failed to setup server instance!