2

我是 SSL 和证书采购的新手,这是我尝试使用 https/ssl 制作的第一个数据快照服务器。

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

除了与运行此服务器的计算机相关联的 IP 地址外,什么都没有。

  • 如何获得合适的 SSL?
  • 我可以购买可以使用 IP 地址的证书吗?
  • 最终我想使用端口转发将其余查询从互联网传递到我的本地托管服务器。这对证书过程有何影响?

谢谢,马克

4

2 回答 2

6

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

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

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

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

middlecert.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

希望有帮助。

于 2013-07-22T23:39:19.723 回答
2

如果您不想购买商业 SSL 证书,您可以使用 Windows Server 证书颁发机构或 OpenSSL 轻松创建自己的证书。从命令行使用 OpenSSL 可能会让人望而生畏,XCA ( http://xca.sourceforge.net/ ) 是一个很好的 GUI 包装器,可以轻松地使用 OpenSSL 进行证书管理。

您可以创建自签名证书,或创建适当的证书链 - 创建您的 CA,然后使用它来生成服务器证书。记住证书中的通用名 (CN) 必须与机器全限定名或 IP 匹配(但最好分配一个 fqdn,并使用一些名称 <-> IP 映射,如果您不这样做,hosts 文件就足够了'没有DNS)。证书必须具有正确的属性,但我不知道 Datasnap 是否正确检查它们。

如果您不精通 certificares,我建议您阅读一些关于它们及其管理的教程。

于 2013-12-16T11:44:40.947 回答