You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为SSF配置加密连接时如何正确生成certificate.crt文件

SSF服务端自定义证书生成正确方案

核心问题出在证书后缀与编码格式的认知偏差:SSF所需的certificate.crt为PEM编码格式,并非DER二进制格式,无需做编码转换,直接重命名即可解决文件不匹配问题,之前转DER的操作是证书报错的直接原因。

前置准备

提前创建SSF要求的证书目录结构:

./certs/
├─ dh4096.pem
├─ private.key
├─ certificate.crt
└─ trusted/
   └─ ca.crt

以下操作已在OpenSSL 1.1.1l版本验证通过。

完整操作步骤

1. 生成Diffie-Hellman参数

执行以下命令生成DH参数文件:

openssl dhparam -outform PEM -out dh4096.pem 4096

生成完成后将dh4096.pem移入./certs/目录。

2. 创建证书扩展配置文件

在工作目录新建extfile.txt,写入如下配置:

[ v3_req_p ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment

3. 生成自签名CA根证书

执行命令直接生成带主题信息的CA证书,跳过交互式输入:

openssl req -x509 -nodes -newkey rsa:4096 -keyout ca.key -out ca.crt -days 3650 -subj '/CN=www.mydom.com/O=My Company Name LTD./C=US'

生成完成后将ca.crt移入./certs/trusted/目录,ca.key为CA根私钥,请单独妥善保管,不要放入服务端运行目录。

4. 生成服务端私钥与证书签名请求

执行命令生成服务端私钥和CSR请求文件:

openssl req -newkey rsa:4096 -nodes -keyout private.key -out certificate.csr -subj '/CN=www.mydom.com/O=My Company Name LTD./C=US'

生成完成后将private.key移入./certs/目录。

5. 用CA签发服务端证书

执行签名命令生成PEM格式的服务端证书:

openssl x509 -extfile extfile.txt -extensions v3_req_p -req -sha1 -days 3650 -CA ca.crt -CAkey ca.key -CAcreateserial -in certificate.csr -out certificate.pem

6. 处理证书后缀匹配

禁止执行DER格式转换命令,直接将生成的certificate.pem重命名为certificate.crt:

# Linux/macOS系统执行
mv certificate.pem certificate.crt

Windows系统直接在资源管理器中修改文件名即可,重命名完成后将certificate.crt移入./certs/目录。

报错原因说明

之前执行openssl x509 -outform der转换命令,会把文本格式的PEM证书转为二进制格式的DER证书,而SSF的证书加载逻辑默认解析PEM编码内容,仅通过后缀识别需要加载的文件,不强制要求后缀名必须为.pem。强行转换为DER格式后,SSF无法解析二进制证书内容,就会抛出证书加载错误。

验证说明

所有文件按要求放置到位后,直接启动SSF服务端即可正常运行,不会再出现证书相关报错。客户端连接时仅需将ca.crt放入客户端自身的./certs/trusted/目录即可,无需拷贝服务端私钥和服务端证书文件。

内容的提问来源于stack exchange,提问作者secf00tprint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:03:32