wss - настройка. ошибка 'bad_certificate'

Discussion in 'Web Call Server 4' started by Алексей, Oct 11, 2016.

  1. Алексей

    Алексей New Member

    Добрый день. Решили использовать wss (порт 8443), для работы ClickToCall (звонок с сайта). Получаем ошибку в логах:

    WSServerHandler - New I/O worker #10 Close channel because: javax.net.ssl.SSLException 'Received fatal alert: bad_certificate'

    Данные сервера: Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-86-generic x86_64)
    Версия Flashphoner: 4.1.1569
    java version: 1.7.0_111
    OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-0ubuntu0.14.04.3)
    OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

    Фаервол отключен. Тестирование (клиент - сервер) производится на одном и том же сервере. Астериск находится в той же локальной сети (фаервола нет).

    Важно: Без шифрования все работает (ws)

    Что было сделано:

    На клиенте:
    в файле flashphoner.xml изменен параметр "use_wss" на "true".

    На сервере:
    Выпущен ssl сертификат (StartCom Ltd.)
    Настроена работа домена через ssl (443 порт)
    Имеем файлы:
    домен.csr
    домен.crt
    домен.key

    Далее выполнено следующее:
    1. keytool -delete -alias selfsigned -keystore /usr/local/FlashphonerWebCallServer/conf/wss.jk
    2. openssl pkcs12 -export -in домен.crt -inkey mydomain.key -out домен.p12 -name "домен"
    3. keytool -importkeystore -srckeystore домен.p12 -srcstoretype PKCS12 -destkeystore /usr/local/FlashphonerWebCallServer/conf/wss.jks
    4. keytool -import -keystore /usr/local/FlashphonerWebCallServer/conf/wss.jks -file домен.crt -alias ca-root
    5. Restart WCS server

    после чего при обращении скриптом Click2Call в серверных логах следующее:

    ==CAT==
    WARN WSServerHandler - New I/O worker #9 Close channel because: javax.net.ssl.SSLException 'Received fatal alert: bad_certificate'
    WARN faultChannelPipeline - New I/O worker #9 An exception was thrown by a user handler while handling an exception event ([id: 0x57a62247, /XX.XXX.XXX.XXX:37213 => /XX.XXX.XXX.XXX:8443] EXCEPTION: javax.net.ssl.SSLException: Received fatal alert: bad_certificate)
    java.lang.NullPointerException
    at com.flashphoner.server.ws.client.WSClients.isEnabled(Unknown Source)
    at com.flashphoner.server.ws.B.exceptionCaught(Unknown Source)
    ==CAT==

    При попытке обратиться к адресу - https://домен:8443 - обрыв соеденения, получаем следующее в логах:

    ==CAT==
    WARN WSServerHandler - New I/O worker #9 Close channel because: org.jboss.netty.handler.codec.http.websocketx.WebSocketHandshakeException 'not a WebSocket handshake request: missing upgrade'
    WARN faultChannelPipeline - New I/O worker #9 An exception was thrown by a user handler while handling an exception event ([id: 0x5c149045, /XX.XXX.XXX.XXX:57225 => /XX.XXX.XXX.XXX:8443] EXCEPTION: org.jboss.netty.handler.codec.http.websocketx.WebSocketHandshakeException: not a WebSocket handshake request: missing upgrade)
    java.lang.NullPointerException
    ==CAT==

    Так же пытались подменить файл wss.jks в директории conf - файлом из поставки (тогда все работает)

    В итоге склоняемся к тому что сертификат импортирован не верно. Хотя при импортировании ошибок в консоли небыло.
    Адрес вида https://домен - отрабатывает корректно (сертификат установлен все хорошо)

    Просим указать на наши ошибочные действия. (Спасибо)
  2. Max

    Max Administrator Staff Member

    Вы на пятом шаге импортировали сертификат домен.crt и указали ему alias ca-root
    В документации немного не так, а именно:
    Т.е. вам нужно скачать ca.crt и intermediate.crt с сайта StarCom и их импортировать на шаге 4 и 5 соответственно.
    Тогда будет корректно.
  3. Max

    Max Administrator Staff Member

  4. Алексей

    Алексей New Member

    Установили сертификаты по вашим рекомендациям. При попытке зайти на url - https://домен:8443/
    Получаем ошибку:

    WARN WSServerHandler - New I/O worker #12 Close channel because: org.jboss.netty.handler.codec.http.websocketx.WebSocketHandshakeException 'not a WebSocket handshake request: missing upgrade'

    При попытке зайти клиентом - ошибок нет, но регистрация не происходит, а в логах последняя строка :

    INFO SoftphoneFactory - New I/O worker #9 newCustomSoftphone login=наш_логин password=наш_пароль domain=XXX.XXX.XXX.XXXoutboundProxy=XXX.XXX.XXX.XXX port=5060 visibleName=From WEB

    INFO WCS3Handler - New I/O worker #9 Connected client: ClientConfig{rtspMedia=false, wsTunnel=false, login='наш_логин', authenticationName='наш_логин', password='наш_пароль', domain='XXX.XXX.XXX.XXX', outboundProxy='XXX.XXX.XXX.XXX', localPort=-1, port=5060, visibleName='From WEB', regRequired=true, applicationName='null', swfUrl='null', useProxy=true, qValue='', pAssociatedUri='null', contactParams='', authDate=Wed Oct 12 12:26:24 MSK 2016, authToken='null', logsFolderName='null', clientVersion='null'}
  5. Алексей

    Алексей New Member

    Смотрим консоль астериска - flashphoner даже не обращается к нему (не пытается регистрироваться). Подозреваем, что ошибка где то раньше происходит.
  6. Алексей

    Алексей New Member

    Все проблема решена. Спасибо.

Share This Page