我建立了一个可以正常工作的FreeSwitch盒,可以使用ws连接在桌面上进行内部调用。稍后,我将框配置为将SSL与Letsencrypt颁发的证书一起使用。 SSL证书已通过https://www.sslshopper.com/ssl-checker.htm验证一切正常,并且Chrome中的https://连接显示了良好的锁定标志。
然后,我将代码从ws更改为wss(请参见下文;公共IP地址被屏蔽了。),但是在Chrome中出现了“ net :: ERR_CERT_COMMON_NAME_INVALID”错误。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sipjs-webphone</title>
<script src="./sip-0.15.1.min.js"></script>
<script>
var config = { uri: '[email protected]',
transportOptions: { wsServers: ['wss://1xx.xxx.xxx.xxx:7443'] },
authorizationUser: '1000', password: '1234' };
var ua = new SIP.UA(config);
ua.on("connected", function() {
console.log("Connected!");
});
</script>
</head>
<body>
</body>
</html>
顺便说一句,我已经尝试更改为以下两个地方:
1)用Letsencrypt的有效证书/密钥附加或替换/etc/freeswitch/tls/wss.pem,不要高兴。
echo '' >> /usr/local/freeswitch/certs/wss.pem && cat cert.pem >> /usr/local/freeswitch/certs/wss.pem && cat privkey.pem >> /usr/local/freeswitch/certs/wss.pem && cat chain.pem >> /usr/local/freeswitch/certs/wss.pem
2)在/ usr / local / freeswitch / certs中创建了wss.pem(如果通过“ apt install freeswitch”安装而不是从源代码中安装,则该目录不存在),但仍然没有乐趣。
最佳答案
您可以创建从letencrypt证书到的符号链接
/etc/freeswitch/tls/wss.key和/etc/freeswitch/tls/wss.crt
如果wss.key和wss.crt存在,则FreeSwitch不使用wss.pem文件。
如果使用默认密钥从源代码构建freeswitch,然后将/ etc / freeswitch文件夹构建到您的位置。
有关信息。从软件包安装的FreeSwitch使用/ etc / freeswitch,而不是/ usr / local / freeswitch