Embarcadero Community Edition V11.3添加HTTPS权限问题及替代方案咨询
Embarcadero V11.3 局域网HTTPS部署替代方案
针对你遇到的Let's Encrypt PEM证书权限问题,提供以下几种可行的替代方法:
以管理员身份运行IDE
右键点击Embarcadero IDE图标,选择「以管理员身份运行」,再重新创建HTTPS应用并指定证书路径。部分系统权限限制下,IDE本身没有足够权限访问证书目录,提升权限后可解决读取问题。复制证书实体文件而非使用符号链接
Let's Encrypt生成的fullchain.pem等是符号链接,权限问题常出在链接本身。找到符号链接指向的实际证书文件(可右键查看链接属性获取路径),将其复制到项目目录或其他普通权限目录下,再在IDE向导中指定复制后的文件路径。转换证书为PFX格式
Embarcadero对PFX格式兼容性更好,用OpenSSL将PEM证书和密钥合并为PFX文件,命令如下:openssl pkcs12 -export -out mycert.pfx -inkey privkey.pem -in fullchain.pem执行时会要求设置导出密码,完成后在IDE向导中选择该PFX文件,填写设置的密码即可,无需再指定单独的密钥和根证书文件。
代码手动加载证书
跳过IDE向导的证书设置,在代码中手动配置HTTPS上下文(以Indy服务器为例):- 在项目中添加
IdSSLIOHandlerSocketOpenSSL组件; - 在服务器启动事件中,设置SSL选项:
SSLIOHandler.SSLOptions.CertFile := '路径\fullchain.pem'; SSLIOHandler.SSLOptions.KeyFile := '路径\privkey.pem'; HTTPServer.IOHandler := SSLIOHandler;
也可将证书内容嵌入到项目资源文件中,通过资源读取证书内容,进一步避开文件权限问题。
- 在项目中添加
内容的提问来源于stack exchange,提问作者svcPack
相关产品推荐
相关产品推荐

