PEM和DER编码 常见x.509v3证书通过两种格式编码:PEM或者DER,并且通常会被授予.CRT或者.CER的文件扩展名。这些文件扩展名本身并不会让你知道它们的格式,因为它们是互换使用的,但其内容可以给你一些提示。PEM文件是Base-64 ASCII编码,前缀为“—- BEGIN CERTIFICATE —-”,后缀为“—- END CERTIFICATE —-”。DER文件是二进制编码,不是人类可读的。
当从Windows导出证书时,你可以选择三种格式:DER、PEM和P12,但是具体使用哪种并不清楚。 很多网络设备需要证书和密钥以PE……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
PEM和DER编码
常见x.509v3证书通过两种格式编码:PEM或者DER,并且通常会被授予.CRT或者.CER的文件扩展名。这些文件扩展名本身并不会让你知道它们的格式,因为它们是互换使用的,但其内容可以给你一些提示。PEM文件是Base-64 ASCII编码,前缀为“---- BEGIN CERTIFICATE ----”,后缀为“---- END CERTIFICATE ----”。DER文件是二进制编码,不是人类可读的。
当从Windows导出证书时,你可以选择三种格式:DER、PEM和P12,但是具体使用哪种并不清楚。
很多网络设备需要证书和密钥以PEM格式导入,但Windows MMC证书管理单元只允许私钥以P12格式导出。这仅仅是成功的一半,因为你还需要提取签名的主体的公钥。
从PEX文件以PEM格式提取公钥
导出的主体公钥清楚地显示了发出该公钥的服务器的名称,以及签名该公钥的根级CA的名称。你必须检查你是否在操作正确的证书(例如由商业CA而不是内部域CA签名的证书)。
为了逆转这个过程,并将私钥,公钥和CA证书结合成单个文件,你需要使用以下命令:
C:cert>openssl pkcs12 -export -out NewPfx.pfx -inkey justPrivateKey.key -in justPublicKey.crt -certfile CACert.crt
加载“屏幕”到随机状态—完成
输入导出密码: <设置新密码>
验证导出密码: <重复新密码>
PEM和DER之间的转换
另一种常见的要求是转换PEM编码的文件为DER编码:
C:cert>openssl x509 -outform der -in justPublicKey.pem -out justPublicKey.der
然后,将其转换回来:
C:cert>openssl x509 -inform der -in justPublicKey.der -out justPublicKey.pem
值得注意的是,这个过程通常会去除纯文本扩展属性,只在“---- BEGIN CERTIFICATE ----”和“---- END CERTIFICATE ----”缓冲区之间剩下原始证书。
解决证书管理问题
不可避免的是,你将遇到某些东西无法正常运行的情况。如果遇到这种情况,第一个步骤是使用OpenSSL的本地工具来检查你的密钥和证书的格式是否正确。
检查私钥文件:
C:cert>openssl rsa -in justPrivateKey.key –check
检查CSR:
上面的例子清楚地显示了整个证书主体。这里的两个密钥组件是“O=”(Organization企业)和“CN=”(Canonical Name,规范名称)。企业字段中必须与你的注册机构名称完全相同。例如,如果你公司注册名称是“Foo Company Plc(UK)”,如果你提交“Foo Company UK”将会被拒绝。此外,证书中指定的域名必须是由你或授权第三方注册的。
验证证书(PEM或者DER格式):
C:cert>openssl x509 -in CACert.crt -text –noout
在下面的实例中,笔者分析了VeriSign CA公钥,可以从中收集很多有效信息:
? 证书有效日期。所有证书在其需要重新签名前都有一个有效性窗口。Web服务器证书的有效期一般为不超过三年,而CA证书往往是10年或以上。一个没有经验的网络管理员可能会通过有效期为一年的证书来创建域根级CA。在这种情况下,CA根证书很快会过期并失效,即使签名的证书的有效期更长。
? 密钥强度。RSA密钥有给定的强度:使用的位数越多,就越难以猜测。很多公共CA现在只签署2048位密钥,但是,1024甚至512位密钥用于内部应用程序的情况也不少见。
? 密钥用途。除非你是做一些模糊的事情,否则至少这应该包括传输层安全Web服务器身份验证和TLS Web客户端身份验证。
? 证书吊销列表(CRL)和在线证书状态协议(OCSP)分发点。一些客户端会对证书进行更多的实时检查,以确保它们没有通过使用静态CRL或者动态OSCP协议被吊销。公共CA对这些服务提供公开访问,但私有CA可能没有对这些服务正确地配置或者不允许远程客户端访问。
? 主体备用名称。正如前面所讨论的,SAN允许证书拥有几种不同的身份证书。所有配置的SAN也许可以解释为什么主体名称明显不同时,证书也可以通过验证。
作者
翻译
相关推荐
-
生死狙击:阻止恶意SSL通信六要点
SSL的使用每年都在稳定增长。将来会有越来越多的互联网通信都会被加密。不幸的是,不仅注重安全的公司和用户在利用加密,黑客们也在使用加密来隐藏其恶意企图。虽然有很多防火墙和威胁预防方案能够解密SSL通信,却不能跟上不断演变的解密需求……
-
七步解决关键SSL安全问题及漏洞
近年来,安全套接字层(SSL)技术已经有所改进,但同时也出现新的漏洞。那么如何解决关键SSL安全问题及漏洞呢?总共分七步……
-
感谢Let’s Encrypt吧,WordPress现向托管网站免费提供SSL
WordPress现在为其托管网站提供免费SSL证书,这可为广大客户提供更好的安全性。WordPress此前仅支持对子域的加密,但现在WordPress宣布,所有通过WordPress.com托管的自定义域都可自动获得免费HTTPS。
-
不合格域名会导致中间人攻击吗?
ICANN发布安全公告强调,SSL证书对于不合格扩展的内部域名的重要性。什么是一个不合格扩展的域名呢?为什么ICANN认为SSL证书可以防御这个风险呢?