证书格式

X509 文件扩展名
首先我们要理解文件的扩展名代表什么。DER、PEM、CRT和CER这些扩展名经常令人困惑。很多人错误地认为这些扩展名可以互相代替。尽管的确有时候有些扩展名是可以互换的,但是最好你能确定证书是如何编码的,进而正确地标识它们。正确地标识证书有助于证书的管理。

编码 (也用于扩展名)
.DER = 扩展名DER用于二进制DER编码的证书。这些证书也可以用CER或者CRT作为扩展名。比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”。 
.PEM = 扩展名PEM用于ASCII(Base64)编码的各种X.509 v3 证书。文件开始由一行"—– BEGIN …“开始。 

常用的扩展名
.CRT = 扩展名CRT用于证书。证书可以是DER编码,也可以是PEM编码。扩展名CER和CRT几乎是同义词。这种情况在各种unix/linux系统中很常见。 
CER = CRT证书的微软型式。可以用微软的工具把CRT文件转换为CER文件(CRT和CER必须是相同编码的,DER或者PEM)。扩展名为CER的文件可以被IE识别并作为命令调用微软的cryptoAPI(具体点就是rudll32.exe cryptext.dll, CyrptExtOpenCER),进而弹出一个对话框来导入并/或查看证书内容。 
.KEY = 扩展名KEY用于PCSK#8的公钥和私钥。这些公钥和私钥可以是DER编码或者PEM编码。 

CRT文件和CER文件只有在使用相同编码的时候才可以安全地相互替代。


jks是JAVA的keytools证书工具支持的证书私钥格式。

pfx是微软支持的私钥格式。

cer是证书的公钥。

如果是你私人要备份证书的话记得一定要备份成jks或者pfx格式,否则恢复不了。

简单来说,cer就是你们家邮箱的地址,你可以把这个地址给很多人让他们往里面发信。pfx或jks就是你家邮箱的钥匙,别人有了这个就可以冒充你去你家邮箱看信,你丢了这个也没法开邮箱了。

### SSL 证书格式详解 SSL 证书格式主要基于 X.509 标准,这是一种用于公钥证书的标准格式[^3]。X.509 证书可以以不同的形式存储和编码,常见的格式包括 DER、PEM、PKCS#7 和 PKCS#12。以下是这些格式的详细说明: #### 1. DER 格式 DER(Distinguished Encoding Rules)是一种二进制格式,通常用于存储单个证书文件。这种格式的特点是它是一个连续的二进制流,因此不适合直接阅读或编辑。DER 文件通常使用以下扩展名: - `.cer` - `.der` #### 2. PEM 格式 PEM(Privacy-Enhanced Mail)是一种基于 Base64 的文本编码格式,适合人类阅读和传输。PEM 文件通常是通过将 DER 编码的证书转换为 Base64 字符串生成的,并且会在开头和结尾添加特定的标识符。PEM 文件常见的扩展名包括: - `.pem` - `.crt` - `.cer` 示例 PEM 文件内容: ```text -----BEGIN CERTIFICATE----- MIICxzCCAaOgAwIBAgIUCtEo... -----END CERTIFICATE----- ``` #### 3. PKCS#7 格式 PKCS#7 是一种容器格式,可以包含多个证书证书链。它既可以是二进制格式,也可以是 PEM 格式的 Base64 编码。PKCS#7 文件通常用于电子邮件加密和签名。常见扩展名包括: - `.p7b` - `.p7c` #### 4. PKCS#12 格式 PKCS#12 是一种用于存储私钥、证书和其他加密材料的容器格式。它通常被用来导出和导入完整的证书链及私钥。PKCS#12 文件通常是加密的,并需要密码才能访问内容。常见扩展名包括: - `.p12` - `.pfx` --- ### 如何检查 SSL 证书格式 检查 SSL 证书格式可以通过以下几种方法实现: #### 方法一:使用 `openssl` 工具 `openssl` 是一个强大的命令行工具,可以用来查看和转换 SSL 证书格式。 1. **检查 PEM 格式证书**: 使用以下命令可以查看 PEM 格式证书内容: ```bash openssl x509 -in certificate.crt -text -noout ``` 2. **检查 DER 格式证书**: 如果证书DER 格式,可以使用以下命令将其转换为 PEM 格式并查看内容: ```bash openssl x509 -inform der -in certificate.cer -out certificate.pem openssl x509 -in certificate.pem -text -noout ``` 3. **检查 PKCS#12 文件的内容**: 要查看 PKCS#12 文件中的证书和私钥,可以使用以下命令: ```bash openssl pkcs12 -in certificate.p12 -info ``` #### 方法二:使用浏览器 大多数现代浏览器(如 Chrome、Firefox 和 Edge)都可以查看网站的 SSL 证书。具体步骤如下: 1. 访问 HTTPS 网站。 2. 点击地址栏中的锁图标。 3. 查看证书详情,包括其格式、颁发者和有效期等信息。 #### 方法三:编程方式检查 如果需要在程序中检查 SSL 证书格式,可以使用 Python 的 `ssl` 和 `cryptography` 模块。例如,加载 PEM 格式证书: ```python from cryptography import x509 from cryptography.hazmat.primitives import serialization with open("certificate.crt", "rb") as cert_file: cert_data = cert_file.read() # 加载 PEM 格式证书 cert = x509.load_pem_x509_certificate(cert_data) print(cert.subject) ``` 对于 DER 格式证书,可以使用 `x509.load_der_x509_certificate` 方法加载。 --- ### 注意事项 - 不同格式证书可能需要不同的处理方式。例如,PEM 格式证书可以直接用文本编辑器打开,而 DER 格式证书则需要专门的工具来解析。 - 在某些情况下,可能需要将证书从一种格式转换为另一种格式。这可以通过 `openssl` 工具轻松完成。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值