Skip to content
 

数字证书入门:从加密算法到文件格式

更新: 11/20/2025字数: 0 字 时长: 0 分钟

在网络世界里,我们每天都在和“证书”打交道。当你在浏览器地址栏看到那个小锁图标,或者用手机银行 App 进行转账时,背后都有数字证书在默默守护你的信息安全。特别是在中国,银行、政府及关键基础设施领域,国密算法 已经成为安全基石。但证书到底是什么?国密 SM2 又有什么特别?那些.pem, .cer, .pfx文件又有什么区别?

一、加密的基石:对称 vs. 非对称加密

要理解证书,必须先了解两种基础的加密方式。

1. 对称加密

想象一下,你和朋友有一个共同的密码箱,你们都用同一把钥匙来锁上和打开这个箱子。

  • 原理:加密和解密使用同一把密钥
  • 国际常见算法:AES, DES。
  • 国密算法SM1SM4
    • SM1:算法不公开,通过芯片硬件实现,安全性高,用于金融 IC 卡等领域。
    • SM4:算法公开,分组长度和密钥长度均为 128 位,安全高效,已成为无线局域网、TLS 等领域的国家标准,是软件实现的主要国密对称算法
  • 优点速度快,效率高,适合加密大量数据。
  • 缺点密钥分发困难。如何安全地把这把“钥匙”交给对方,本身就是一个难题。

2. 非对称加密

现在想象一下,你有一个特殊的密码箱,它有两把钥匙:一把是公钥,可以给任何人,用来锁上箱子;另一把是私钥,只有你自己持有,用来打开箱子。

  • 原理:使用一对密钥——公钥私钥
    • 公钥:公开给所有人,用于加密数据或验证签名。
    • 私钥:自己严格保密,用于解密数据或创建签名。
  • 国际常见算法:RSA, ECC。
  • 国密算法SM2(基于椭圆曲线密码 ECC)。
  • 优点安全性高,解决了密钥分发问题。
  • 缺点速度慢,计算复杂,不适合加密大量数据。

二、国密算法与 SM2:为什么它是银行的“标配”?

国密算法 是指国家密码管理局认定和发布的一系列国产商用密码算法。它们构成了我国自主可控的安全技术体系。其中,SM2是非对称加密算法的核心。

为什么银行和重要领域要推行国密?

  1. 自主可控,保障安全:使用国际通用算法(如 RSA)存在潜在风险。若算法存在未被发现的后门,或未来被破解(例如量子计算机的威胁),将危及国家金融和安全。国密算法由我国自主研发和评估,实现了技术自主可控。
  2. 性能更优SM2 vs. RSA
    • 更高的安全性/密钥长度比:要达到相同的安全强度,SM2(基于 256 位椭圆曲线)的密钥长度仅为 256 位,而 RSA 需要 2048 位甚至更长。这意味着 SM2 的计算量更小,速度更快,占用的存储空间和网络带宽也更少。
    • 下表是一个直观的对比
特性RSASM2 (ECC)优势
安全基础大数分解难题椭圆曲线离散对数问题数学难题不同,SM2 目前抗量子计算攻击能力相对稍强
同等安全强度2048 位密钥256 位密钥SM2 密钥短得多
计算速度慢(特别是解密/签名)SM2 效率更高
资源消耗SM2 更节省带宽和存储
  1. 完整的算法体系:国密不是一个孤立的算法,而是一个体系:
    • SM2:用于非对称加密、数字签名和密钥交换。
    • SM3杂凑算法(密码哈希),相当于国际上的 MD5 或 SHA-256。用于生成数字指纹,保证数据的完整性。SM3 输出 256 位,抗碰撞性高。
    • SM4:用于对称加密,替代 DES/AES。
    • SM9:基于身份的密码算法,可以简化证书管理。

在银行场景中,一个完整的国密 SSL 连接流程如下:

  1. 客户端与服务器建立连接,协商使用国密套件。
  2. 服务器将其SM2 证书发送给客户端。
  3. 客户端验证证书真伪(使用信任的国密根 CA)。
  4. 客户端使用服务器证书中的SM2 公钥,加密一个随机生成的SM4 对称密钥,发送给服务器。
  5. 服务器用其SM2 私钥解密,得到 SM4 密钥。
  6. 后续所有通信数据,都使用SM4 密钥进行高速加密解密。
  7. 在整个过程中,SM3算法被用于计算证书和数据包的哈希值,确保完整性。

可以看到,SM2、SM3、SM4 协同工作,构成了一个完整、高效、安全的国密传输方案。

三、数字证书:网络世界的“身份证”

既然非对称加密这么好,那我怎么知道一个公钥真的属于它声称的那个人(或网站)呢?这时,就需要一个权威的“公证处”来担保——这就是数字证书

数字证书的核心作用就是:将公钥与持有者的身份信息绑定在一起,并由一个可信的第三方进行签名认证。

这个可信的第三方就是 CA。国密体系下的 CA 被称为 “国密 CA”,它们使用 SM2 算法签发证书。

证书里到底有什么?

一个标准的数字证书(遵循 X.509 标准)包含以下关键信息:

  1. 证书持有者的信息:如域名、公司名称等。
  2. 证书持有者的公钥(可能是 RSA 公钥,也可能是SM2 公钥)。
  3. 证书颁发者(CA)的信息
  4. 证书的有效期:起止日期。
  5. CA 对以上所有信息做的数字签名(使用 RSA 或SM2私钥签名,并用SM3或 SHA256 做哈希)。

国密证书 特指使用SM2 公钥、并由 CA 使用SM2 私钥SM3 杂凑算法进行签发的证书。

四、常见的证书文件格式

证书有不同的文件格式,了解它们有助于你在不同场景下正确使用。

格式扩展名全称描述常见用途
.cer/.crtCertificate通常存放单个 X.509 证书,可以是二进制(DER)或文本格式(PEM)。网站 SSL 证书、中间 CA 证书。国密证书也常用此格式
.pemPrivacy-Enhanced Mail文本格式的证书/密钥容器。以-----BEGIN ...-----开头。可以包含证书、私钥、CA 链等。在服务器中非常常见,因其可读性强。国密 SM2 私钥也可以保存在 PEM 文件中
.keyKey通常用于存放私钥的文件,可以是 PEM 或 DER 格式。服务器的私钥文件(RSA 或 SM2),需要严格保密。
.pfx/.p12Personal Information Exchange二进制格式,包含证书和对应的私钥,并用密码保护。方便备份和传输。在 Windows 服务器中常见,用于证书迁移。国密证书和 SM2 私钥也可打包为此格式
.jksJava KeyStoreJava 特有的密钥库格式,可以存储多个证书和私钥,受密码保护。Tomcat 等 Java 应用服务器。
.derDistinguished Encoding Rules二进制格式的证书。

五、实战指南:什么情况下使用什么样的证书?

现在我们来点实际的,帮你做决策。

场景推荐使用的证书/格式原因与说明
部署一个普通的 HTTPS 网站国际算法证书(RSA),文件格式使用:.crt/.pem + .key兼容性最好,所有浏览器和设备都支持。
部署中国的网上银行、政府网站、或涉及国家安全的系统国密证书(SM2),文件格式使用:.crt/.pem + .key满足国家法律法规和行业规定,实现自主可控,且性能更优。需要浏览器或客户端支持国密算法(如安装国密浏览器扩展)。
代码签名代码签名证书(国际或国密)国密代码签名证书用于对国内重要软件进行签名。
电子邮件加密/签名S/MIME 证书(国际或国密)国密 S/MIME 证书用于政府、企业内部的安全邮件通信。
客户端身份验证客户端证书,格式通常为 .p12用于双向 TLS/SSL 认证。国密双向认证中也使用包含 SM2 密钥的.p12 文件
在 Java Tomcat 中部署国密 HTTPS国密证书SM2 私钥导入到 .jks 文件需要配置 Tomcat 使用国密相关的 JSSE 提供器和密码套件。
国密证书备份或从 Windows 迁移导出为 .pfx 文件包含 SM2 证书和私钥,带密码保护,方便备份迁移。

总结

  • 对称加密快,用于加密数据(国密:SM4);非对称加密安全,用于交换密钥身份验证(国密:SM2)。
  • SM2相比 RSA 具有更高效率、更短密钥、更优性能,是我国商用密码的核心。
  • 国密算法是一个体系SM2(非对称)、SM3(哈希)、SM4(对称) 协同工作。
  • 数字证书是公钥的“身份证”,国密证书特指使用 SM2/SM3 的证书。
  • 选择证书时,若面向通用互联网,可选 RSA 证书;若面向国内金融、政务等合规领域必须选择国密证书

我见青山多妩媚,料青山见我应如是