HTML5/WebRTComm.js==>;WSS上的彩信:SSLException:收到致命警报:协议\u版本
考虑到浏览器不再支持基于不安全源的语音/视频的新要求(这让我们开发人员不得不重做/撤消/回退,因为在分布式环境中没有任何测试环境解决方案是可行的),我已尝试切换到https和wss,并已使用以下配置MMS连接器。我正在运行一个包含两个tomcat实例的聚合应用程序: 1-Apache Tomcat v8.0在本地主机上运行,用于嵌入WebRTComm框架的应用程序(WebRTComm.js和jain-sip.js等)。https在浏览器和应用程序代码中运行良好。 2-Mobicent Apache Tomcat v7.0在本地主机上为sipservlet提供信令和其他需要的会话前需求。WSS正在服务器上造成故障,握手没有返回。 这是Mobicent Apache Tomcat v7.0中的连接器HTML5/WebRTComm.js==>;WSS上的彩信:SSLException:收到致命警报:协议\u版本,webrtc,Webrtc,考虑到浏览器不再支持基于不安全源的语音/视频的新要求(这让我们开发人员不得不重做/撤消/回退,因为在分布式环境中没有任何测试环境解决方案是可行的),我已尝试切换到https和wss,并已使用以下配置MMS连接器。我正在运行一个包含两个tomcat实例的聚合应用程序: 1-Apache Tomcat v8.0在本地主机上运行,用于嵌入WebRTComm框架的应用程序(WebRTComm.js和jain-sip.js等)。https在浏览器和应用程序代码中运行良好。 2-Mobicent Apach
URIEncoding="UTF-8"
acceptCount="200"
clientAuth="false"
compressableMimeType="text/html,text/xml,text/plain"
compression="off"
compressionMinSize="2048"
connectionUploadTimeout="120000"
disableUploadTimeout="true"
enableLookups="false"
keystoreFile=":\Developement\.....\ServerKeyStore\server.jks" // wonder why relative path(conf/ServerTrustStore\truststore.jks) is resolved but throw FileNoFoundExc in particular case.Any idea?
keystorePass="xxxxxx"
keyAlias="clientselfsigned"
maxKeepAliveRequests="200"
maxThreads="250"
maxSpareThreads="75"
minSpareThreads="25"
maxHttpHeaderSize="8192"
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="https"
secure="true"
sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1,SSLv3,SSLv2Hello"
sslProtocol="TLS"
truststorePass="xxxxxx"
truststoreType="jks"
truststorefile="D:\Developement\.....\ServerKeyStore\server.jks" // wonder why relative path(conf/ServerTrustStore\truststore.jks) is resolved but throw FileNoFoundExc in particular case.Any idea?
/>
这是Apache Tomcat v8.0中用于web应用程序的连接器:
URIEncoding="UTF-8"
acceptCount="200"
clientAuth="false"
compressableMimeType="text/html,text/xml,text/plain"
compression="off"
connectionUploadTimeout="120000"
disableUploadTimeout="true"
enableLookups="false"
keystoreFile="D:\Developement\....\ServerTrustStore\truststore.jks"
keystorePass="xxxxx"
keyAlias="clientselfsigned"
maxKeepAliveRequests="200"
maxThreads="250"
maxSpareThreads="75"
minSpareThreads="25"
maxHttpHeaderSize="8192"
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="https"
secure="true"
sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1,SSLv3,SSLv2Hello"
sslProtocol="TLS"
truststorePass="xxxxxx"
truststoreType="jks"
truststorefile="D:\Developement\....\ServerTrustStore\truststore.jks"
/>
两者都使用以下配置了my sip stack和eclipse午餐配置(运行/调试):
。
我还创建了必要的密钥库和clien信任库,如上所示。
我尝试了TLSv1.2、TLSv1.1、TLSv1的变体,发现客户端(jain sip.js)和MMS都支持TLSv1.2。见ClientHello,TLSv1.2和
ServerHello, TLSv1.2 as below:
%% Initialized: [Session-13, SSL_NULL_WITH_NULL_NULL]
%% Negotiating: [Session-13, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384]
*** ServerHello, TLSv1.2
选择了TLS_ECDHE_RSA_和_AES_256_CBC_SHA384。因此,当我单击client.hml=>>TelScaleRTMController.js(onClickConnectButtonViewEventHandler)=>>this.webRTCommClient.open(this.webRTCommClientConfiguration);=>java,TLS握手成功,因为我可以访问我的RegistrarSIPServlet.doRegister(): 就是在这里,事情变得糟糕:只要它执行SipServletResponse.send();,它说:
NioSelector-WSS-172.62.2.10/5082, RECV TLSv1.2 ALERT: fatal, protocol_version
NioSelector-WSS-172.62.2.10/5082, fatal: engine already closed. Rethrowing javax.net.ssl.SSLException: Received fatal alert: protocol_version
NioSelector-WSS-172.62.2.10/5082, fatal: engine already closed. Rethrowing javax.net.ssl.SSLException: Received fatal alert: protocol_version
javax.net.ssl.SSLException: Received fatal alert: protocol_version
Caused by: java.lang.NullPointerException
at gov.nist.javax.sip.stack.SSLStateMachine.unwrap(SSLStateMachine.java:263)
at gov.nist.javax.sip.stack.SSLStateMachine.unwrap(SSLStateMachine.java:198)
at gov.nist.javax.sip.stack.NioTlsWebSocketMessageChannel.addBytes(NioTlsWebSocketMessageChannel.java:215)
at gov.nist.javax.sip.stack.NioTcpMessageChannel.readChannel(NioTcpMessageChannel.java:117)
..…注册器生成和接收的sip消息为:
发送SIP消息:注册SIP:pbx.server.com SIP/2.0
呼叫ID:1451477183409
CSeq:1寄存器
发件人:sip:admin@pbx.server.com;标签=1451477183429
致:sip:admin@pbx.server.com
Via:SIP/2.0/WSS XNCrSBbscUch.invalid;分支=z9hG4bK-333430-45dd017fdcbb8f884bf0a78789902ae7;rport
最大转发次数:70
用户代理:RoooterUAv1.0[admin-MOHAMMAD-125-1]-0
有效期:3600 允许:邀请、确认、再见、取消、更新、信息、订阅、通知、参考、消息、选项
联系人:sip:admin@XNCrSBbscUch.invalid;传输=wss
内容长度:0 正如您所看到的,现在没有生成SDP,这就是我们停止的地方。 客户端等待超时 还有一点,我已经限制到我的PBX的同一个域,在我的dar中:
INVITE=("project","DAR:From","ORIGINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com"),("project","DAR:From","TERMINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com")
MESSAGE=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
PUBLISH=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
NOTIFY=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
REGISTER=("project","DAR:From","ORIGINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com",("project","DAR:From","TERMINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com")
REFER=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
SUBSCRIBE=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
OPTIONS=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
我将非常感谢您在理解问题和解决方案方面的想法。谢谢 对不起,忘记打招呼了:大家好!!!!!您正在运行哪个版本的MSS?我正在使用MSS-3.0.0-SNAPSHOT-apache-tomcat-7.0.50。是否可以使用更高版本的MSS重试?确定。我会很快反馈。我的客户呢。websocket-b2bua(2014年下载并高度修改)中的任何必要配置,以与tls1.2特别是TelScaleRTMController.js、WebRTComm.js和jain-sip.js一起工作?很抱歉忘记问候:大家好!!!!!您正在运行哪个版本的MSS?我正在使用MSS-3.0.0-SNAPSHOT-apache-tomcat-7.0.50。是否可以使用更高版本的MSS重试?确定。我将很快反馈。我的客户端如何。websocket-b2bua(2014年下载并经过高度修改)中是否有必要的配置,以便与tls1.2特别是TelScaleRTMController.js、WebRTComm.js和jain-sip.js一起使用?
INVITE=("project","DAR:From","ORIGINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com"),("project","DAR:From","TERMINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com")
MESSAGE=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
PUBLISH=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
NOTIFY=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
REGISTER=("project","DAR:From","ORIGINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com",("project","DAR:From","TERMINATING","","NO_ROUTE","0","REGEX=From:.sip:.@pbx.domain.com")
REFER=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
SUBSCRIBE=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")
OPTIONS=("project","DAR:From","ORIGINATING","","NO_ROUTE","0")