Mar*_*els 2 delphi ssl-certificate datasnap
我是SSL和证书采购的新手,这是我尝试使用https/ssl创建的第一个datasnap服务器.
我有一个独立的Datasnap服务器(XE4),我想创建或获取我可以使用它的SSL,以便我的其余通信加密.
只有与运行此服务器的计算机关联的IP地址.
谢谢,马克
首先从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
希望有所帮助.