SSL 证书基本概念扫盲
keytool VS openssl
keytool 和 openssl 是俩个证书管理工具。
keytool 是 java JDK 自带的证书管理工具,使用 keytool 可以生成密钥,创建证书。只要装了 jdk,并正确设置了环境变量,就可以之间通过命令行执行 keytool 命令来管理证书。
openssl 则是一个开源的安全套接字层密码库,功能比 keytool 更加丰富。
X.509 VS PKCS
PKCS 全称 Public-Key Cryptography Standards
,即公钥标准,PKCS 已经发布了15个标准。
- PKCS#12 包含了公钥和私钥的二进制格式的证书形式,以
.pfx
作为证书文件后缀。
X.509 则是一个通用的证书标准,规定了证书应该包含哪些内容,X.509 通常有俩种编码方式,一种是二进制编码,另一种是 Base64 编码。
- X.509#DER 二进制格式证书,常用后缀
.cer
.crt
- X.509#PEM 文本格式证书,常用后缀
.pem
证书文件格式
文件后缀 | 文件类型 | 说明 |
---|---|---|
.DER或.CER | 二进制格式 | 只含有证书信息,不包含私钥。 |
*.CRT | 二进制格式或文本格式 | 只含有证书信息,不包含私钥。 |
*.PEM | 文本格式 | 一般存放证书或私钥,或同时包含证书和私钥。.PEM文件如果只包含私钥,一般用.KEY文件代替。 |
.PFX或.P12 | 二进制格式 | 同时包含证书和私钥,且一般有密码保护。 |
证书格式之间是可以互相转化的。用到的时候查对应的 openssl 或 keytool 命令就好了。
您可以使用记事本直接打开证书文件。如果显示的是规则的数字字母(如下所示内容),那么该证书文件是文本格式。
—–BEGIN CERTIFICATE—–
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
—–END CERTIFICATE—–
- 如果存在
——BEGIN CERTIFICATE——
,则说明这是一个证书文件。 - 如果存在
—–BEGIN RSA PRIVATE KEY—–
,则说明这是一个私钥文件。
常见Web服务软件
常见的 Web 服务软件,通常都基于 OpenSSL 和 Java 两种基础密码库。
-
Tomcat、Weblogic、JBoss 等 Web 服务软件,一般使用 Java 提供的密码库。通过 Java Development Kit(JDK)工具包中的 Keytool 工具,生成 Java Keystore(JKS)、keystore 格式的证书文件。
.keystore
和.jks
都是 java 用来存放密钥的文件。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。 -
Apache、Nginx 等 Web 服务软件,一般使用 OpenSSL 工具提供的密码库,生成 PEM、KEY、CRT 等格式的证书文件。
-
IBM 的 Web 服务产品,如 Websphere、IBM Http Server(IHS)等,一般使用 IBM 产品自带的 iKeyman 工具,生成 KDB 格式的证书文件。
-
微软 Windows Server 中的 Internet Information Services(IIS)服务,使用 Windows 自带的证书库生成 PFX 格式的证书文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2019-01-30 代理模式