如何在本地网络上为独立的Datasnap Rest Server创建/安装SSL证书

Mar*_*els 2 delphi ssl-certificate datasnap

我是SSL和证书采购的新手,这是我尝试使用https/ssl创建的第一个datasnap服务器.

我有一个独立的Datasnap服务器(XE4),我想创建或获取我可以使用它的SSL,以便我的其余通信加密.

只有与运行此服务器的计算机关联的IP地址.

  • 我如何获得合适的SSL?
  • 我可以购买可以使用IP地址的证书吗?
  • 最终我想使用端口转发将来自互联网的休息查询提供给我本地托管的服务器.这对认证过程有何影响?

谢谢,马克

Jon*_*ham 6

首先从GoDaddy或RapidSSL等提供商处购买SSL证书.购买时,请指定证书将代表的域名.显然,您可以通过配置域的DNS条目将域名指向您希望的任何IP地址.我从来没有配置证书指向实际的IP地址,但我想这是可能的.鉴于您希望服务器接受来自互联网的请求,我会使用域名,以便您可以根据需要更改IP地址.

购买SSL证书时,您需要提供在服务器计算机上生成的证书签名请求(CSR),并指定要使用SSL证书的域名.您可以使用DigiCert util(www.digicert.com/util)等实用程序来创建CSR.

一旦购买了SSL证书,提供商就会提示您下载中间证书文件(或者只是复制电子邮件中的文本,因为它是纯文本文件).此文件特定于您选择的域名.您还需要从SSL提供程序下载根证书,这是SSL提供商特有的,但不是您的域名.您需要的第三个文件是私钥文件.您需要使用DigiCert实用程序再次生成此项.您可以通过将中间证书导入实用程序,然后单击"导出"以创建私钥 - 选择"密钥"格式来完成此操作.

现在你有3个文件,例如(文件名可以是你想要的任何东西):

intermediatecert.crt
rootcert.crt
privatekey.key

对于Delphi DataSnap,您需要使用TDSCertFiles组件,并使用"CertFiles"属性将其链接到您的TDSHTTPService组件.在TDSCertFiles组件中,设置以下属性:

CertFile:中间证书文件的路径,例如C:\ SSL\intermediatecert.crt
KeyFile:私钥文件的路径,例如C:\ SSL\privatekey.key
RootCertFile:提供者根证书文件的路径,例如C:\ SSL\rootcert .CRT

我不知道XE4,但在XE2中有一个TDSCertFiles组件的错误,这意味着在运行时设置上述3个属性没有任何效果 - 它只使用在设计时设置的值 - 请参阅:http:/ /qc.embarcadero.com/wc/qcmain.aspx?d=107516

最后,因为DataSnap使用Indy和Indy使用OpenSSL实现SSL,所以您需要将OpenSSL库文件放在与DataSnap服务器EXE相同的文件夹中,或者至少在服务器的PATH上.您需要的2个文件是libeay32.dll和ssleay32.dll,您可以在这里下载:http://indy.fulgan.com/SSL/openssl-1.0.1e-i386-win32.zip

希望有所帮助.