文档中心
HTTPS璇佷功鐨勬牸寮忚瑙d粠PEM鍒癉ER锛屼竴鏂囪鎳傛暟瀛楄瘉涔︾殑瀛樺偍鏂瑰紡
时间 : 2025-09-27 16:14:39浏览量 : 3
什么是HTTPS证书?

在开始讨论HTTPS证书的格式之前,我们先打个比方:HTTPS证书就像是网站的"身份证"。当你在浏览器地址栏看到那个小锁图标时,就意味着这个网站使用了HTTPS协议,并且拥有有效的"身份证"——数字证书。这个证书不仅证明网站的身份,还确保了你的数据在传输过程中是加密的。
常见HTTPS证书格式一览
1. PEM格式(最常用)
PEM(Privacy Enhanced Mail)是最常见的证书格式之一,虽然名字里有"邮件",但实际上它早已不限于邮件用途了。
特点:
- 使用Base64编码
- 以文本形式存储
- 以`--BEGIN CERTIFICATE--`开头,`--END CERTIFICATE--`结尾
- 文件扩展名通常是`.pem`, `.crt`, `.cer`或`.key`
示例:
```
--BEGIN CERTIFICATE--
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
1Wrjsok6Vjk4b4Y96QC3nBpo+Fz7sHr5Xl9t8eR5U=
--END CERTIFICATE--
实际应用场景:
- Apache服务器通常使用PEM格式的证书和私钥
- Nginx也可以直接使用PEM格式的证书
2. DER格式(二进制形式)
DER(Distinguished Encoding Rules)是另一种常见的证书格式。
- 二进制形式存储(不可读)
- Windows系统常用此格式
- 文件扩展名通常是`.der`或`.cer`
如何转换?
你可以使用OpenSSL工具在PEM和DER之间转换:
```bash
PEM转DER
openssl x509 -in certificate.pem -outform der -out certificate.der
DER转PEM
openssl x509 -inform der -in certificate.der -out certificate.pem
3. PKCS7/P7B格式
PKCS
7(Public Key Cryptography Standards #7)是一种用于签名和加密数据的标准。
- 可以包含整个证书链(而不仅仅是单个证书)
- Windows系统和Tomcat常用此格式
- 文件扩展名通常是`.p7b`或`.p7c`
示例转换命令:
PEM转PKCS#7
openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b
PKCS#7转PEM (提取所有证书)
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
4. PKCS12/PFX格式
PKCS
12(Personal Information Exchange)是一种归档文件格式。
- 可以包含私钥、公钥和整个证书链(一个文件包含所有内容)
- 通常受密码保护(因为包含了私钥)
- Windows IIS常用此格式导出/导入证书和私钥对
- 文件扩展名通常是`.pfx`或`.p12`
PEM+私钥转PKCS12 (需要提供私钥文件和密码)
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt
PKCS12转PEM (提取所有内容)
openssl pkcs12 -in certificate.pfx -nodes -out all_in_one.pem
PKCS12仅提取私钥 (需要提供导入密码)
openssl pkcs12 -in certificate.pfx -nocerts -nodes | openssl rsa > privateKey.key
PKCS12仅提取证书 (不包括私钥)
openssl pkcs12 -in certificate.pfx -clcerts | openssl x509 > cert.crt
HTTPS证书的内部结构
无论采用哪种外部存储格式,HTTPS/X.509数字证书内部都遵循相同的结构标准。让我们看看一个典型的数字证书包含哪些关键信息:
1. 版本号(Version):标识X.509标准的版本(如v3)
2. 序列号(Serial Number):
* CA分配给每个证书的唯一标识符
* 例如:"38:84:9A:23:..."这样的十六进制字符串
3. 签名算法(Signature Algorithm):
* CA用来签署此证书的算法
* 如"sha256WithRSAEncryption"
4. 颁发者(Issuer):
* CA的可识别名称(DN)
* "CN=DigiCert SHA2 High Assurance Server CA, OU=www.digicert.com, O=DigiCert Inc, C=US"
5. 有效期(Validity Period):
* Not Before: "2025年1月1日00:00:00 GMT"
* Not After: "2025年1月1日23:59:59 GMT"
6. 主体(Subject):
* 该网站的可识别名称(DN)
* "CN=example.com, O=Example Inc, L=San Francisco, ST=California, C=US"
7. 主体公钥信息(Subject Public Key Info):
* Public Key Algorithm: "rsaEncryption"
* RSA Public Key: (2048位模数和指数)
8. 扩展信息(Extensions):
* Subject Alternative Name (SAN): ["example.com", "www.example.com"]
* Key Usage: Digital Signature, Key Encipherment
* Extended Key Usage: TLS Web Server Authentication
* CRL Distribution Points
* Authority Information Access
HTTPS工作流程中的关键角色
为了更深入理解这些不同形式的HTTPS/SSL/TLS数字凭证如何协同工作来保护我们的Web通信安全,让我们看看一个典型的HTTPS握手过程:
1. 客户端Hello:
浏览器访问https://example.com时发送支持的加密套件列表。
2. 服务器Hello响应:
服务器选择最佳加密套件并返回其数字凭证(通常以DER编码传输)。
3. 客户端验证凭证链:
浏览器检查服务器返回的数字凭证是否可信。这个过程包括:
①检查是否由可信CA签发
②验证签名有效性
③检查有效期
④验证主机名匹配
⑤检查是否被吊销
4. 密钥交换与加密通信建立
在这个过程中,不同形式的数字凭证会在不同环节发挥作用。例如:
* DER编码常用于网络传输
* PEM常用于服务器配置
* PKCS12常用于Windows系统间迁移完整凭据
HTTPS常见问题排查技巧
在实际工作中处理HTTPS相关问题时,了解这些不同形式的数字凭证及其相互转换方法非常有用。以下是一些实用技巧:
Q1:如何快速查看PEM/CRT/CER/DER等文件的详细信息?
openssl x509 -in cert.crt/textnoout
PEM格式直接查看
openssl x509 inform der in certder noout
DER编码需指定输入类型
keytool printcert file cert.crt
Java keytool工具查看
certmgr.msc
Windows内置管理控制台查看安装后的凭据详情
Q2:"ERR_CERT_AUTHORITY_INVALID"错误可能原因?
这种浏览器警告表明存在信任链问题。可能原因包括:
* CA根证不在客户端信任库中 →需安装相应根证到操作系统或浏览器信任库。
* CA中间证缺失 →需确保服务器配置中包含完整链式结构。
* AIA扩展缺失或不正确 →某些客户端依赖在线获取中间证。
* OCSP/CRL吊销检查失败 →网络限制导致无法验证状态。
* CN/SAN不匹配 →域名与证书记录不符导致校验失败。
Q3:"ERR_CERT_DATE_INVALID"时间校验失败怎么办?
这种情况表明存在时间同步问题:
①确保服务器时间准确(NTP服务同步)。
②确保证书在有效期内("Not Before"/"Not After")。
③某些移动设备若日期设置错误也会触发此类警告。
HTTPS发展趋势与未来展望
随着网络安全威胁不断演变,HTTPS技术也在持续发展:
1.生命周期缩短:主流CA已将标准DV SSL/TLS凭据有效期从27个月缩短至398天甚至90天以内以提高安全性并促进自动化管理流程普及化发展.
2.自动化部署:ACME协议(Lets Encrypt等免费CA采用)支持通过API自动申请续期部署大大降低了运维门槛使得全站HTTPS成为现实可能.
3.新型算法支持:后量子密码学(PQC)、Ed25519椭圆曲线等新一代算法逐步被纳入标准以应对未来算力威胁同时提升性能表现.
4.增强验证需求:EV扩展验证型凭据虽然视觉指标被主流浏览器移除但其严格审核流程仍受金融政务等高安全需求场景青睐.
5.透明化日志:CT(Certificate Transparency)框架要求所有公开信任CA记录签发日志到公共账本以便监测异常签发行为增强整体生态系统透明度与问责机制建设.
无论技术如何演进发展理解这些基础性知识都将帮助我们更好地设计实施安全可靠地Web服务体系架构为数字化转型保驾护航!
TAG:https证书的格式,https证书在哪存放,https证书详解,https 证书的作用,https证书文件