在本教程中,您将学习如何在 4D Server 上安装 SSL 证书。4D 使用两个 PEM 文件来保护其内置 web 服务器的安全,即 cert.pem(您的证书)和 key.pem(您的私钥),它们被放置在项目文件夹旁边,之后您需要在 4D 设置中启用 HTTPS。
在 4D Server 上生成 CSR 代码
CSR(证书签名请求)是一段包含您联系信息的编码文本,证书颁发机构需要它来验证并颁发您的 SSL 证书。您有两种方式:
- 使用我们的CSR 生成器自动创建 CSR。它非常简单,不需要任何技术知识。
- 按照我们的分步教程,了解如何在 4D Server 上生成 CSR。
用文本编辑器打开您的 CSR 文件,并将其内容复制到 SSL 订购流程中相应的框中。将 CSR 提交给证书颁发机构,一旦 CA 验证通过并颁发您的证书,请继续下面的安装步骤。
在 4D Server 上安装 SSL 证书
4D 使用其自己的文件来处理 TLS,而不是配置指令。您需要以 PEM 文件的形式在固定位置提供证书和密钥,添加任何中间证书,然后在设置中启用 HTTPS。
步骤 1:准备您的 PEM 文件
证书颁发机构通过电子邮件发送您的证书后,下载 ZIP 压缩文件并解压。4D 只接受 PEM 格式(纯文本 x509)的证书。文件名是固定的:
- cert.pem:您的域名证书。如果您的 CA 发送了 .crt 文件,请用文本编辑器打开它,并将内容保存到一个名为 cert.pem 的纯文本文件中。文件名必须完全是 cert.pem。
- key.pem:您与 CSR 一起生成的私钥。文件名必须完全是 key.pem。
PEM 证书是由页眉和页脚行括起来的纯文本,如下所示:
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRA...
...your encoded certificate...
-----END CERTIFICATE-----
文件应放在哪里。如果 4D 或 4D Server 处于本地模式,请将 cert.pem 和 key.pem 放置在项目文件夹(保存数据库结构的文件夹)旁边。对于处于远程模式的 4D 客户端,请将它们放置在远程计算机上的客户端数据库文件夹中。如果您在代码中构建路径,Get 4D folder 命令会返回当前活动的 4D 文件夹,以便您找到正确的目录。
步骤 2:添加中间证书和根证书
浏览器需要完整的证书链,因此 CA 证书包(中间证书,有时还有根证书)必须与您的证书一起提供。在 4D 上,您有两种方式提供它:
- 单独的 PEM 文件(推荐)。将每个中间证书(和根证书)保存为独立的 .pem 文件,并放在与 cert.pem 相同的文件夹中。额外的文件可以使用任何名称,只要扩展名是 .pem 即可。4D 会读取该文件夹中的每个 .pem 文件并组装证书链。
- 一个合并文件。或者,您也可以将您的证书和每个中间证书(按顺序,叶证书在前)粘贴到一个单一的 cert.pem 文件中,保持每一行 BEGIN/END 完整无损。
保持文件夹整洁。4D 会加载在项目文件夹旁找到的每个 .pem 文件。请删除之前证书遗留的任何 .pem 文件,因为过期或不匹配的文件可能会使 web 服务器拒绝 HTTPS 连接。
较早版本的 4D。在采用当前 PEM 文件夹模型之前的版本要求存在一个 TLS 组件:Windows 上的 4DSLI.DLL(位于 4D 或 4D Server 可执行文件旁边)或 macOS 上的 4DSLI.bundle(位于 4D 软件包的 Native Components 子文件夹中)。当前版本的 4D 在内部处理 TLS,因此您不再需要手动添加此组件。如果您运行的是较旧版本,请在启用 HTTPS 之前确认该组件已经就位。
步骤 3:在 4D 设置中启用 HTTPS
文件准备好后,为 4D web 服务器启用 HTTPS:
- 打开设置(在当前版本的 4D 中,位于设计或结构菜单中;在较早版本中,此对话框称为数据库设置)。
- 选择Web部分。
- 打开配置页面,并勾选启用 HTTPS。除非您的设置需要其他端口,否则将 HTTPS 端口保留为默认值 443。
- 点击确定保存。
默认情况下,4D 接受的最低协议是 TLS 1.2。如果您的安全策略要求,您可以使用 minTLSVersion web 服务器属性将此下限提高到 TLS 1.3,只有在必须支持较旧客户端的情况下才应降低此设置。请将最低协议保持在 TLS 1.2 或更高版本。
步骤 4:重启 web 服务器并验证
停止并启动 4D web 服务器,以便加载证书文件。在首次启动 HTTPS 时,如果尚不存在 dhparams.pem 文件,4D 会生成一个(2048 位),并将其放置在 cert.pem 和 key.pem 旁边。这个过程可能需要一两分钟,请等待其完成。
使用 https:// 打开您的站点并确认锁形图标出现。安装完成后,使用我们的SSL Checker扫描证书,检查是否存在证书链或配置问题,它会立即返回关于证书及其服务方式的报告。缺失中间证书是最常见的问题,检测工具能立即发现它。
可选,启用 HSTS。一旦 HTTPS 稳定运行,您可以告知浏览器始终使用安全版本。在设置中打开Web部分,进入选项 (II)页面,并勾选启用 HSTS。只有在确认 HTTPS 稳定后才启用此选项,因为一旦该策略被浏览器缓存,就很难撤销。
常见问题
只能是 PEM。证书和密钥必须是名为 cert.pem 和 key.pem 的纯文本 PEM 文件。如果您的证书颁发机构发送了 .crt 或 .cer 文件,请用文本编辑器打开它,并将内容保存到一个名为 cert.pem 的文件中。文本必须保留其 —–BEGIN CERTIFICATE—– 和 —–END CERTIFICATE—– 行。
对于本地模式下的 4D 或 4D Server,请将 cert.pem 和 key.pem 放置在项目文件夹(包含数据库结构的文件夹)旁边。对于远程模式下的 4D 客户端,请将它们放置在远程计算机上的客户端数据库文件夹中。任何中间证书或根证书都应作为单独的 .pem 文件放在同一文件夹中。
将每个中间证书和根证书保存为独立的 .pem 文件,并放在与 cert.pem 相同的文件夹中。额外的文件可以使用任何名称,只要扩展名是 .pem 即可,4D 会从找到的每个 .pem 文件组装证书链。请删除旧证书遗留的任何 .pem 文件,因为过期文件可能会使 web 服务器拒绝 HTTPS 连接。
打开设置(在较早版本中称为数据库设置),选择Web部分,打开配置页面,并勾选启用 HTTPS。默认的 HTTPS 端口是 443。保存后,重启 4D web 服务器以便加载证书文件。
如果 4D 没有找到 dhparams.pem 文件,它会在您首次启动 HTTPS 时生成一个(2048 位),并将其保存在 cert.pem 和 key.pem 旁边。这个生成过程可能需要一两分钟。请让它完成,之后的启动会很快。
常见原因是缺失中间证书、cert.pem 和 key.pem 不匹配,或者文件夹中遗留了过期的 .pem 文件。请确认证书链完整、密钥与证书匹配,并且文件夹中只存在当前的证书文件,然后重启 web 服务器。运行我们的SSL Checker,可以准确查看证书链中缺失的部分。


