今天在专家的帮助下,成功的让uniGUI支持https了。
首先,去申请个**的证书。我同事去阿里申请的,申请回是一个zip文件,里面有两个文件,一个扩展是per,一个key
然后,把这两个证书文件放到uniGUI应用的根目录下。因为我用的uniGUI独立的EXE文件应用,所以要这样。如果你用的ISAPI,那要安装到IIS中。
接下来,改造uniGUI代码:
SSL.SSLOptions.RootCertFile := '你的.pem'; SSL.SSLOptions.CertFile := '你的.pem'; SSL.SSLOptions.KeyFile := '你的.key'; SSL.SSLOptions.Method := TIdSSLVersion.sslvTLSv1_2; SSL.SSLOptions.SSLVersions := [sslvTLSv1_2]; SSL.SSLOptions.Mode := TIdSSLMode.sslmUnassigned; SSL.SSLOptions.VerifyMode := []; SSL.SSLOptions.VerifyDepth := 0; SSL.SSLPort := 8077; //这里设置为0,用https默认端口 443. //self.SSL.SSLPassword := ''; self.SSL.Enabled := true;
把上面代码写到procedure TuniServerModule.UniGUIServerModuleCreate事件中。
找到ssl两个dll文件,复制到uniGUI应用所在的目录,跟证书一样。这两个文件uniGUI带了,在uniGUI的安装目录可以找到,如:C:\Program Files (x86)\FMSoft\Framework\uniGUI\SSL\dll。
注意:这里分32位与64位的版本,应该与你的应用相同。
现在编译并运行应用,你就可以在浏览器中用https访问应用了!
如果用了HyperServer来部署应用,还需要配置一下HyperServer。
在服务端找到hyperServer所在目录,会找到hyper_server_ssl.cfg文件,打开他,参考上面的代码,设置即可。
再好象没什么需要设置的了。