Linux服务器如何安装CFCA SSL证书?Nginx、Apache与Tomcat部署教程

更新时间:2026-01-05 来源:TopSSL技术团队

Linux服务器如何安装CFCA SSL证书?

CFCA SSL证书部署到 Linux 服务器时,核心流程与其他 CA 签发的 SSL 证书基本一致:先生成私钥和 CSR,完成域名及组织验证后获取服务器证书和中间证书链,再根据服务器软件完成配置。

需要特别注意的是,​普通 CFCA SSL 证书与国密 SSL 证书不是同一种部署场景​。普通公网 HTTPS 可以按照 RSA/ECC + TLS 的常规方式配置;如果业务明确要求 SM2/SM3 等国密算法,则还需要使用支持国密协议和算法的服务器软件、密码库或国密网关,不能只替换一张 SSL 证书。


部署CFCA SSL证书前需要准备什么?

开始安装之前,需要准备以下文件:

文件用途
私钥文件.key与证书对应,用于 TLS 身份认证
CSR文件.csr提交给 CA 申请证书
服务器证书.crt/.pemCFCA 签发的站点证书
中间证书用于构建完整的信任链

其中最重要的是私钥。

私钥是在生成 CSR 时产生的,CA 不会向你提供服务器私钥。

因此,在申请证书时应妥善保存生成 CSR 时对应的私钥。后续安装证书时,如果证书与私钥不匹配,HTTPS 将无法正常工作。


如何生成CFCA SSL证书的私钥和CSR?

如果申请的是普通 RSA SSL 证书,可以使用 OpenSSL 生成 2048 位 RSA 私钥:

openssl genrsa -out example.com.key 2048

然后生成 CSR:

openssl req -new \
  -key example.com.key \
  -out example.com.csr

执行命令后,OpenSSL 会要求填写相关信息。

对于公网 SSL 证书来说,最重要的是 ​Common Name(CN)和 SAN 中的域名信息​。现代证书主要依赖 SAN 判断证书是否覆盖当前访问域名,因此申请时需要确认域名填写准确。

例如网站访问地址是:

www.example.com

那么证书至少应该覆盖:

www.example.com

如果同时需要保护:

example.com
www.example.com
api.example.com

则应在申请证书时选择能够覆盖这些域名的证书类型。


CFCA SSL证书申请完成后有哪些文件?

完成域名验证以及相应的组织审核后,CA 或证书服务商会提供证书下载文件。

常见文件可能包括:

example.com.crt
ca-bundle.crt

不同证书产品提供的文件名称和格式可能不同,也可能直接提供 PEM 格式的证书文件。

需要注意的是:

不要根据文件扩展名判断文件用途。

.crt.cer.pem 本身只是文件封装方式的常见表现,实际应查看文件内容。

可以使用:

openssl x509 -in example.com.crt -noout -subject -issuer -dates

检查证书信息。

如果证书格式不正确,可以先确认文件内容是否以类似下面的内容开头:

-----BEGIN CERTIFICATE-----

Nginx如何安装CFCA SSL证书?

Nginx 是 Linux 环境中非常常见的 HTTPS 服务。

假设证书文件放在:

/etc/nginx/ssl/

目录中:

/etc/nginx/ssl/example.com.crt
/etc/nginx/ssl/example.com.key

配置服务器证书

Nginx HTTPS 配置可以写成:

server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate /etc/nginx/ssl/example.com-fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;

    root /var/www/html;
}

这里需要特别注意:

ssl_certificate 应配置服务器证书以及必要的中间证书链,而不是只放站点证书。

如果 CFCA 提供的是服务器证书和中间证书两个文件,可以按照 CA 提供的证书链顺序合并:

cat example.com.crt ca-bundle.crt > example.com-fullchain.pem

然后:

ssl_certificate /etc/nginx/ssl/example.com-fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;

实际证书链顺序应以 CFCA 或证书服务商提供的证书链为准,不建议自行随意调整。

检查Nginx配置

修改配置后先不要直接重启:

nginx -t

如果显示:

syntax is ok
test is successful

再重新加载:

systemctl reload nginx

相比直接 restart,生产环境更推荐先测试配置,再使用 reload,减少不必要的业务中断。


Apache如何安装CFCA SSL证书?

Apache 的具体配置文件位置会根据 Linux 发行版有所不同。

例如:

/etc/httpd/conf.d/ssl.conf

或者:

/etc/apache2/sites-available/example-ssl.conf

HTTPS 虚拟主机可以配置为:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com

    SSLEngine on

    SSLCertificateFile /etc/ssl/example.com-fullchain.pem
    SSLCertificateKeyFile /etc/ssl/example.com.key

    DocumentRoot /var/www/html
</VirtualHost>

对于 Apache 新版本,更建议直接使用包含完整证书链的证书文件,而不是依赖旧版本配置中的:

SSLCertificateChainFile

如果服务器版本较老,则应结合当前 Apache 版本的 mod_ssl 配置方式进行处理。

修改完成后,可以先检查配置:

apachectl configtest

如果返回:

Syntax OK

再重新加载 Apache:

systemctl reload httpd

Debian/Ubuntu 系统则可能使用:

systemctl reload apache2

Tomcat如何部署CFCA SSL证书?

Tomcat 与 Nginx、Apache 的区别在于,它经常使用 Java KeyStore 或 PKCS#12 格式保存私钥和证书。

现在没有必要为了 Tomcat 强制转换成 JKS。

如果 Tomcat 和 JDK 版本支持 PKCS#12,可以直接使用:

.p12

或:

.pfx

格式。

将证书和私钥转换为PKCS#12

例如:

openssl pkcs12 -export \
  -inkey example.com.key \
  -in example.com.crt \
  -certfile ca-bundle.crt \
  -out example.com.p12 \
  -name tomcat

系统会要求设置 PKCS#12 文件密码。

然后可以使用:

keytool -list \
  -keystore example.com.p12 \
  -storetype PKCS12

检查文件内容。

Tomcat配置

以支持 HTTPS 的 Tomcat Connector 为例:

<Connector
    port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="/etc/tomcat/ssl/example.com.p12"
    keystoreType="PKCS12"
    keystorePass="你的密码" />

具体参数名称会受到 Tomcat 版本影响,部署前应结合当前版本的 Tomcat 文档确认配置方式。

如果现有环境明确要求 JKS,再通过 keytool 将 PKCS#12 转换成 JKS:

keytool -importkeystore \
  -srckeystore example.com.p12 \
  -srcstoretype PKCS12 \
  -destkeystore example.com.jks \
  -deststoretype JKS

因此,JKS 是一种可选的 Java 密钥库格式,而不是 CFCA SSL 证书必须使用的格式。


Linux服务器如何检查证书和私钥是否匹配?

这是部署过程中非常值得检查的一步。

可以分别计算证书和私钥的公钥信息:

openssl x509 -in example.com.crt -pubkey -noout | \
openssl pkey -pubin -outform DER | sha256sum

然后:

openssl pkey -in example.com.key -pubout | \
openssl pkey -pubin -outform DER | sha256sum

如果两边得到的 SHA-256 值一致,说明证书与私钥对应。

也可以使用:

openssl x509 -in example.com.crt -noout -subject -issuer -dates

查看:

  • Subject
  • Issuer
  • Not Before
  • Not After

等基本信息。


如何检查CFCA证书链是否完整?

部署完成后,可以使用 OpenSSL 连接服务器:

openssl s_client \
  -connect www.example.com:443 \
  -servername www.example.com \
  -showcerts

重点查看服务器返回的证书链。

也可以直接检查:

curl -Iv https://www.example.com

如果浏览器能够访问,但部分客户端出现:

unable to get local issuer certificate

或者:

certificate verify failed

需要重点检查服务器是否发送了正确的中间证书链。


CFCA普通SSL证书与国密SSL证书有什么区别?

这是部署 CFCA 证书时最容易混淆的问题。

普通CFCA SSL证书

普通公网 SSL 证书主要用于:

HTTPS
API
Web网站
互联网业务系统

其部署方式与其他公网 CA 证书基本一致。

例如:

RSA/ECC
    ↓
TLS
    ↓
Nginx / Apache / Tomcat
    ↓
HTTPS

国密SSL证书

国密 SSL 则涉及:

SM2
SM3
SM4

等国密算法和相应的国密 TLS 技术体系。

如果项目明确要求使用国密算法,不能简单地理解成:

“把普通 CFCA 证书换成国密 CFCA 证书就可以了。”

实际还需要确认:

  • Web 服务器是否支持国密 TLS;
  • OpenSSL 或其他密码库是否支持对应国密能力;
  • 客户端是否支持国密协议;
  • 是否使用国密浏览器;
  • 是否通过国密网关、负载均衡设备提供国密 HTTPS;
  • 项目是否存在密评或行业密码应用要求。

因此,普通 CFCA SSL 部署和国密 SSL 部署应该作为两个独立的技术方案处理。


CFCA SSL证书部署常见问题 FAQ

Q:CFCA SSL证书可以直接安装在Nginx吗?

A:可以。只要证书与私钥匹配,并按照 Nginx 要求配置服务器证书和完整的中间证书链即可。

Q:CFCA SSL证书一定要转换成JKS吗?

A:不一定。Nginx、Apache 等 Linux Web 服务可以直接使用 PEM/CRT 等格式;Tomcat 也可以使用 PKCS#12。只有现有 Java 系统明确要求 JKS 时,才需要转换为 JKS。

Q:CFCA证书安装后浏览器仍然提示不安全怎么办?

A:优先检查三个地方:​域名是否匹配、证书是否有效、证书链是否完整​。如果只有部分客户端出现问题,还需要检查客户端的根证书信任情况。可以使用 SSL证书工具 检查证书基本信息,也可以结合 修复SSL证书错误 进一步排查。

Q:普通CFCA SSL证书可以用于国密环境吗?

A:不能仅根据“CFCA”这个品牌判断。普通公网 SSL 证书与国密 SSL 证书属于不同的技术方案。如果项目明确要求 SM2/SM3 等国密算法,需要确认所申请的证书类型、服务器软件、密码库以及客户端是否形成完整的国密技术链路。

Q:Nginx配置CFCA证书时为什么需要fullchain?

A:因为客户端需要通过服务器发送的证书链验证站点证书。只发送服务器证书而缺少必要的中间 CA 证书,部分客户端可能无法建立完整的信任链。

立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 - SSL证书申请与HTTPS安全服务平台 | TopSSL
提供免费与付费SSL证书申请
关注 TopSSL 公众号, RSS订阅SSL资讯与技术支持

TopSSL是一站式SSL证书服务平台,提供免费SSL证书申请、商业SSL证书服务及HTTPS安全解决方案,支持DV、OV、EV、通配符和国密SSL证书服务。2004-2026 © 北京传诚信  版权所有 |  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn