最近一直在研究这个问题,因为项目中使用rtc编写的服务端,因为之前一直没有搞定https证书问题,是通过iis进行转发来暂时解决问题。昨天晚上终于把这个问题彻底的解决了,通过三方组件StreamSec解决的。
大致步骤是这样:
- 安装StreamSec,和普通组件一样,加入lib路径,安装dpk包;
- 打开Demos\Delphi 10_1 Berlin\TLSDemoCert,编译该项目,然后用该工具生成测试证书;
- 将rtc目录下的LibPlugins目录加入lib路径;
- 新建工程,拖入rtc的httpserver组件,设置端口为443,添加一个应答事件,引用rtcSSecTest单元(就是rtc目录下LibPlugins下的),在启动rtc http服务在代码前加入以下代码:AddServerPFXFile('证书名.pfx', '密钥');RtcHttpServer1.CryptPlugin := GetServerCryptPlugin;用来加载证书;
- 启动服务,然后浏览器访问https://localhost试试,如果显示证书提示,说明StreamSec安装和绑定rtc成功。这里浏览器提示证书无效,这是正常的,因为自己生成的证书是不受承认的,需要去几家指定的证书颁发机构申请才可以。
- 去申请一个免费的dvssl域名证书或者购买收费的,下载颁发的证书,将pfx证书文件复制到程序目录下即可使用了。
部分证书可能需要进行一些处理,比如提示“所有认证被禁用”或“使用了不支持的证书协议”,可以悄悄联系我,我帮你尝试处理一下。
注:StreamSec是收费的,请到官网购买。