2025/12/30 12:41:27
网站建设
项目流程
怎么检查网站有没有做跳转,厦门服装企业网站推广,wordpress登录注册界面,asp网站源码 怎么安装一、如何查看证书
1.1 浏览器查看
有现代浏览器#xff08;Chrome、Edge、Firefox、Safari#xff09;均内置证书查看功能#xff0c;核心是通过地址栏的「锁形图标」快速定位证书信息#xff0c;步骤清晰且直观#xff0c;能直接获取证书有效性、颁发者、有效期等关键内…一、如何查看证书1.1 浏览器查看有现代浏览器Chrome、Edge、Firefox、Safari均内置证书查看功能核心是通过地址栏的「锁形图标」快速定位证书信息步骤清晰且直观能直接获取证书有效性、颁发者、有效期等关键内容。下面以Chrome浏览器举例说明打开目标终端网站需以https://开头如https://www.baidu.com点击地址栏左侧的「 锁形图标」若显示红色感叹号说明证书无效需谨慎访问在弹出的小窗口中选择「连接是安全的」→ 点击「证书有效」Edge 直接显示「证书」选项弹出「证书」窗口默认显示「常规」标签页可查看核心信息颁发者签发该证书的 CA 机构如 Lets Encrypt、DigiCert有效期证书生效 / 过期时间若已过期浏览器会提示不安全主体证书绑定的终端网站域名如www.baidu.com需与访问域名一致若需查看更详细信息如公钥算法、证书序列号、指纹切换至「详细信息」标签页可查看所有 X.509 标准字段如公钥长度、扩展密钥用途1.2 命令行工具查看推荐使用OpenSSLWindows/Mac/Linux 通用需提前安装可直接获取终端网站证书的完整 X.509 结构.打开终端Windows 用 PowerShell/CMDMac/Linux 用 Terminal输入以下命令替换example.com为目标终端网站域名# 连接网站443端口HTTPS默认端口显示终端证书及上游CA证书链 openssl s_client -connect example.com:443 -showcerts输出结果中以-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----分隔的第一个证书即为终端网站证书可通过| openssl x509 -text -noout过滤仅显示终端证书的可读文本信息# 仅查看终端网站证书的详细文本推荐 echo | openssl s_client -connect example.com:443 2/dev/null | openssl x509 -text -noout关键输出内容Subject终端网站身份如CNexample.com即证书绑定域名Issuer签发该终端证书的上游 CA 机构Validity证书有效期Not Before生效时间Not After过期时间Public Key Algorithm公钥算法如RSA、ECDSA。1.3 在线检测平台——SSL Labs SSL Test访问地址https://www.ssllabs.com/ssltest/操作步骤输入目标终端网站域名如example.com点击「Submit」等待 1-2 分钟扫描完成在「Certificate Information」模块查看终端证书详情证书类型DV/OV/EV、颁发者、有效期、公钥信息证书链完整性是否缺失中间 CA 证书同时获取服务器安全评分A 至 F及加密套件、协议版本等合规建议。二、证书信息解读下面博客链接中详细解读了终端证书和CA证书的区别和各字段含义以及证书存储格式https://blog.liu-kevin.com/2020/08/04/x-509zheng-shu-nei-rong-xiang-jie/三、证书存储格式首先我们需要先明确两个基础概念这对理解所有格式至关重要ASN.1抽象语法标记 1是一种用于描述数据结构的标准X.509 证书和 RSA 密钥的核心数据结构都是用 ASN.1 定义的。编码将 ASN.1 定义的抽象数据结构转换成二进制字节流的过程常见的有DER可辨别编码规则和BER基本编码规则其中 DER 是 BER 的子集是确定性的同一数据只有一种编码结果也是证书 / 密钥最常用的编码方式。3.1 DER 格式Binary DER Certificate本质直接存储原始的、未经处理的 DER 编码二进制数据ASN.1 → DER 编码 → 二进制字节流。外观二进制文件用文本编辑器打开会显示乱码机器可读但人类不可读。常见扩展名.der、.crt、.cer注意.crt/.cer也可能是 PEM 格式扩展名只是约定不代表格式。核心特点体积小没有额外的编码开销是最紧凑的证书存储格式。确定性同一证书的 DER 编码结果唯一。适用场景嵌入式设备、移动设备对存储和传输带宽敏感的场景。高性能的程序内部证书加载无需解码直接解析二进制。一些传统的硬件加密设备HSM。3.2 PEM 格式ASCII PEM Certificate本质对DER 编码的二进制证书数据进行Base64 编码转成 ASCII 字符再加上固定的头部和尾部标记边界符。转换流程ASN.1 → DER 编码二进制 → Base64 编码ASCII → 加头部 / 尾部 → PEM 文件外观文本文件用编辑器打开可以看到清晰的 Base64 字符和标记人类可读。示例:-----BEGIN CERTIFICATE----- MIICmjCCAYICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV UzEQMA4GA1UEChMHQWNtZSBDbzEOMAwGA1UECxMFVG9reW8xEDAOBgNVBAMTB1Bh bnRpYW4wHhcNMTUwNjE1MTA0MjMzWhcNMzUwNjE1MTA0MjMzWjBNMQswCQYDVQQG EwJVUzEQMA4GA1UEChMHQWNtZSBDbzEOMAwGA1UECxMFVG9reW8xEDAOBgNVBAMT B1BhbnRpYW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1 nmAMqudLO07cGgN5Efprz23n3uH1qGBNPNZRZ2XKKntBHjSfe6IgLmBx6Sviap ztsz3ljMzR7tjL9gcVbUfLw80AtukixlXp1AghUA8ebnF22dBYt7m3dMtZSq6zV9 6MEzWUDxwZAAXXVpmwGDanUGtk6rxdMjHEu6t43klsC/ejLgurcknr8knZj6oRg Rr1nTWKrHbtgxR4qD21dzxrW9Keh85NHw6P3W6TEa2RastNsZRPsmoqVwMbMu5 7iq/BGnw544fAQjQMZFs5sOevpGJBb5oqgCWJ9Ud7u3x4yAGm5M9F56Yb5cikre 4jz/wyBsfAIJ9VNepO4bKV/bT146dwyRAgMBAAEwDQYJKoZIhvcNAQEFBQADgg EBALJ4gHHKeNXyqWepwngUS0fKsmI6Pd7bSEQG5WtvHcPaztrtN7NSR6ckkqFwF PtodW0VNgI3JW4DhPnoJKvSfh01m4w//6vYatgjk6E5JhLU/NBdjpM3qc5a3bi 0iPPeC22ZyNdlIVHbO4bfPFZwNGxw7H0lARwR238VdjeceV KavU4/qqXs4vO2wK8 10L/iy60GEo -----END CERTIFICATE-----常见扩展名.pem、.crt、.cer、.pem.crt用后缀明确格式。核心特点人类可读便于调试、传输如邮件、文本协议和手动编辑。兼容性强几乎所有主流软件Nginx、Apache、OpenSSL、Python 的cryptography库都支持。可包含多个证书虽然通常一个文件存一个但部分程序如 Java支持在一个 PEM 文件中按顺序存储证书链服务器证书→中间 CA 证书→根 CA 证书。适用场景服务器配置Nginx、Apache、Tomcat。开发 / 测试环境中的证书分发和使用。大多数开源工具和脚本如 Python、Shell 脚本。3.3 PKCS#7 格式PKCS#7 Certificate (s)又称 CMS本质基于 PKCS#7Cryptographic Message Syntax密码消息语法RFC 2315/RFC 5652标准的格式它是一个容器格式主要用于封装证书、证书链和数字签名不存储私钥。底层依然是 ASN.1/DER 编码可分为二进制DER和 ASCIIPEM两种表现形式PEM 的头部是-----BEGIN PKCS7-----。常见扩展名.p7b、.p7c、.spcSoftware Publishing Certificate代码签名证书常用。核心特点专门用于存储证书链可以将服务器证书、中间 CA 证书、根 CA 证书一次性封装解决证书链的分发问题。只存证书 / 签名不存私钥这是和 PKCS#12 的核心区别。支持数字签名验证可以封装消息和对应的签名用于验证数据完整性。适用场景Java 密钥库JKSJava 的keytool工具默认支持导入 / 导出 PKCS#7 格式的证书。Windows 系统用于分发证书链尤其是代码签名证书.spc。邮件加密 / 签名S/MIME 协议基于 PKCS#7 实现。四、密钥存储格式详解密钥主要是私钥如 RSA、EC 私钥的存储格式核心是如何封装私钥的 ASN.1/DER 数据并处理安全性如密码保护主要分为 DER、PEM、PKCS#8、PKCS#12PFX。4.1 DER 格式Binary DER Key本质直接存储私钥的 DER 编码二进制数据分为两种子格式传统 OpenSSL 格式SSLeay 格式OpenSSL 早期定义的私钥格式如 RSA 私钥的 ASN.1 结构是 PKCS#1 标准。PKCS#8 格式标准化的私钥存储格式RFC 5208兼容所有非对称加密算法RSA、EC、DSA。外观二进制文件文本编辑器打开是乱码。常见扩展名.key、.der。核心特点体积小机器可读但人类不可读。传统格式PKCS#1只支持 RSA兼容性差PKCS#8 是通用格式兼容性强。适用场景嵌入式设备、高性能程序一般不推荐在生产环境直接使用无密码保护时不安全。4.2 PEM 格式ASCII PEM Key本质对私钥的 DER 编码二进制数据进行 Base64 编码加头部 / 尾部标记还可添加密码保护用对称加密算法加密私钥。传统 RSA 私钥的 PEM 头部-----BEGIN RSA PRIVATE KEY-----对应 PKCS#1 格式。PKCS#8 格式的私钥头部-----BEGIN PRIVATE KEY-----无算法标识通用或-----BEGIN ENCRYPTED PRIVATE KEY-----加密的 PKCS#8。外观文本文件示例PKCS#1 格式的 RSA 私钥-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQDCB63U9gG998k3zZt4h2xq6Z7bR0f8Q95Z8X7t2JZ78s3XJ ...Base64字符... -----END RSA PRIVATE KEY-----常见扩展名.pem、.key。核心特点人类可读便于传输和配置。支持密码保护生成时可设置密码私钥会被加密存储如 AES-256 加密提高安全性。分两种子格式PKCS#1仅 RSA和 PKCS#8通用。适用场景服务器配置Nginx、Apache、开源工具、脚本开发是最常用的私钥格式。4.3 PKCS#8 格式本质PKCS#8 是专门为私钥定义的标准化存储格式RFC 5208解决了传统 PKCS#1 格式只支持 RSA 的问题是现代加密应用的推荐私钥格式。它有两种形式未加密的 PKCS#8PEM 头部BEGIN PRIVATE KEY和加密的 PKCS#8PEM 头部BEGIN ENCRYPTED PRIVATE KEY。可以是 DER二进制或 PEMASCII编码。核心特点算法无关性支持 RSA、EC、DSA 等所有非对称加密算法。标准化跨平台、跨语言兼容Java、Python、C 等都原生支持。安全性原生支持密码加密保护。适用场景现代企业级应用、跨语言 / 跨平台开发、安全要求高的场景替代传统的 PKCS#1 格式。4.4 PKCS#12PFX格式本质PKCS#12 是一站式的容器格式RFC 7292可以将私钥、证书、证书链全部封装在一个文件中并且强制使用密码保护安全性高。底层是 DER 编码的二进制数据没有 PEM 格式的变体只能是二进制。常见扩展名.p12、.pfxPFX 原本是 PKCS#12 的前身现在已成为 PKCS#12 的代名词。核心特点全量存储私钥 证书 证书链一体化存储无需多个文件。强制加密必须设置密码才能生成私钥和证书都被加密保护。兼容性主要用于 Windows 系统和微软产品但现代 Java、Python 也支持。适用场景Windows 服务器IIS的证书配置。客户端证书如浏览器的 HTTPS 客户端证书、邮件客户端的 S/MIME 证书。移动应用Android、iOS和 Java 应用的证书存储。证书的备份和迁移一站式打包方便传输。五、格式转换实用工具OpenSSL在实际工作中经常需要转换格式最常用的工具是OpenSSL以下是几个高频转换命令5.1 证书格式转换# DER → PEM证书 openssl x509 -inform der -in cert.der -out cert.pem # PEM → DER证书 openssl x509 -outform der -in cert.pem -out cert.der # PEM → PKCS#7证书链 openssl crl2pkcs7 -nocrl -certfile cert.pem -certfile ca.pem -out cert.p7b # PKCS#7 → PEM提取证书 openssl pkcs7 -in cert.p7b -print_certs -out cert_chain.pem5.2 密钥 / PKCS#12 格式转换# 传统RSA私钥PKCS#1→ PKCS#8未加密 openssl pkcs8 -topk8 -inform pem -in rsa_private.key -outform pem -nocrypt -out pkcs8_private.key # 传统RSA私钥 → PKCS#8加密需设置密码 openssl pkcs8 -topk8 -inform pem -in rsa_private.key -outform pem -out encrypted_pkcs8.key # PEM私钥证书 → PKCS#12PFX openssl pkcs12 -export -in cert.pem -inkey private.key -out cert.p12 # PKCS#12 → PEM提取私钥和证书 openssl pkcs12 -in cert.p12 -out cert_and_key.pem六、证书用途划分证书的用途由EKU 字段明确限定不同用途的证书无法混用如代码签名证书不能用于 HTTPS。6.1 SSL/TLS 服务器证书Server CertificateEKU 字段serverAuth服务器认证。核心用途用于网站、服务器的 HTTPS 加密验证服务器的身份证明 “这个域名确实是它声称的主体所有”。细分类型按验证等级DV 证书Domain Validated域名验证验证方式仅验证申请者对域名的控制权如发送验证邮件到域名的管理员邮箱。特点签发速度快几分钟、成本低甚至免费如 Lets Encrypt。显示效果浏览器地址栏显示 “锁形图标”无企业信息。OV 证书Organization Validated组织验证验证方式除了域名验证还验证企业的真实身份工商注册信息。特点签发速度数小时到 1 天成本高于 DV。显示效果地址栏显示企业名称如 “示例科技有限公司”。EV 证书Extended Validation增强验证验证方式最严格的验证包括企业身份、法律地位、域名控制权等需人工审核。特点签发速度数天成本最高。显示效果浏览器地址栏显示绿色背景 企业名称如银行、电商网站常用。6.2 SSL/TLS 客户端证书Client CertificateEKU 字段clientAuth客户端认证。核心用途验证客户端的身份如用户、设备实现 “双向认证mTLS”。适用场景银行 / 金融系统的客户端认证如网银 U 盾、企业 VPN。物联网设备与服务器的双向认证。内网系统的员工身份认证。6.3 代码签名证书Code Signing CertificateEKU 字段codeSigning代码签名。核心用途对软件、驱动、脚本、移动应用进行数字签名防止代码被篡改同时证明开发者的身份。细分类型普通软件代码签名证书用于签名桌面软件、手机应用。微软驱动签名证书EV Code Signing用于签名 Windows 内核驱动微软强制要求。脚本签名证书用于签名 PowerShell、VB 脚本防止恶意脚本执行。6.4 电子邮件证书S/MIME CertificateEKU 字段emailProtection邮件保护。核心用途对电子邮件进行加密保护邮件内容和数字签名验证发件人身份防止邮件伪造。适用场景企业邮箱、敏感邮件传输如法务、金融邮件。6.5 时间戳证书Timestamp CertificateEKU 字段timeStamping时间戳。核心用途为数字签名添加可信时间戳证明签名操作发生在某个具体时间点即使证书过期签名依然有效。适用场景代码签名、合同电子签名、知识产权保护证明作品完成时间。6.6 其他专用证书CRL 签名证书cRLSignCA 用于签发 ** 证书吊销列表CRL** 的证书验证 CRL 的真实性。OCSP 响应证书ocspSign用于 OCSP在线证书状态协议响应的签名快速查询证书是否吊销。设备证书IoT 证书针对物联网设备的轻量化证书特点是有效期短、体积小、支持低功耗设备如智能家居、工业传感器。