美文网首页
iOS安全相关 - HTTPS证书基础概念

iOS安全相关 - HTTPS证书基础概念

作者: brownfeng | 来源:发表于2017-01-16 19:17 被阅读109次

iOS开发中,有许多概念例如证书标准,证书编码格式,证书文件扩展名等等

证书的标注

X.509是一种常用的证书标准!HTTPS也使用的这个标准

PEM/DER两种证书编码格式

X.509这种证书标准中有两类常用的证书的编码格式-- PEM和DER.

  • PEM: Private Enhanced Mail,用文本文件可以打开查看的,以"-----BEGIN..."开头, "-----END..."结尾.内容是base64编码.常用后缀.pem
  • DER: Distinguished Encoding Rules,用文本文件打开是二进制数据,不可读.常用后缀.cer, .crt

查看PEM格式证书的信息:
openssl x509 -in certificate.pem -text -noout.Apache和unix服务器偏向于使用这种编码格式.

查看DER格式证书的信息:
openssl x509 -in certificate.der -inform der -text -noout.
Java和Windows服务器偏向于使用这种编码格式.

证书的文件扩展名

这是比较误导人的地方,虽然我们已经知道有PEM和DER这两种编码格式,但文件扩展名并不一定就叫"PEM"或者"DER",常见的扩展名除了PEM和DER还有以下这些,它们除了编码格式可能不同之外,内容也有差别,但大多数都能相互转换编码格式.

  • CRT - CRT应该是certificate的三个字母,其实还是证书的意思,常见于*NIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,相信你已经知道怎么辨别.
  • CER - 还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.
  • KEY - 通常用来存放一个公钥或者私钥,并非X.509证书,编码同样的,可能是PEM,也可能是DER.
  • CSR - Certificate Signing Request,即证书签名请求,这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的信息),在生成这个申请的时候,同时也会生成一个私钥,私钥要自己保管好.做过iOS APP的朋友都应该知道是怎么向苹果申请开发者证书的吧.
  • PFX/P12 - predecessor of PKCS#12. 对*nix服务器来说,一般CRT和KEY是分开存放在不同文件中,但是Windows的IIS中会将他们存储在同一个PFX文件中

查看KEY的办法:openssl rsa -in mykey.key -text -noout

如果是DER格式的话,同理应该这样了:openssl rsa -in mykey.key -text -noout -inform der

查看CSR的办法:openssl req -noout -text -in my.csr (如果是DER格式的话照旧加上-inform der,这里不写了)

证书编码的转换

PEM --> DER

openssl x509 -in cert.crt -outform der -out cert.der

DER --> PEM

openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

参考: http://www.jianshu.com/p/2dad7c95b6af

在Security编程中,有几种典型的密码交换信息文件格式:
DER-encoded certificate: .cer, .crt
PEM-encoded message: .pem
PKCS#12 Personal Information Exchange: .pfx, .p12
PKCS#10 Certification Request: .p10 .csr
PKCS#7 cert request response: .p7r
PKCS#7 binary message: .p7b .p7c .spc
cer/.crt 是用于存放证书,它是2进制形式存放
pem 跟crt/cer的区别是它以Ascii来表示
pfx/p12 用于存放个人证书/私钥,他通常包含保护密码,2进制方式

相关文章

  • iOS安全相关 - HTTPS证书基础概念

    iOS开发中,有许多概念例如证书标准,证书编码格式,证书文件扩展名等等 证书的标注 X.509是一种常用的证书标准...

  • tomcat/apache+https单&双向认证

    基础概念介绍:秘钥/证书/https握手/CA相关概念crt证书: 只含有公钥p12证书: 是包含证书(含公钥...

  • 【iOS开发】Https 原理与验证过程

    一、参考文章HTTPS 基础OpenSSL 与 SSL 数字证书概念贴iOS 中对 HTTPS 证书链的验证二、学...

  • HTTPS证书相关概念

    X.509 密码学里公钥证书的格式标准。SSL/TLS中的证书格式即采用X.509。是ITU-T标准化部门基于他们...

  • 【HTTP】Https 原理与验证过程

    Https 原理与验证过程 一、参考文章 HTTPS 基础OpenSSL 与 SSL 数字证书概念贴 iOS 中对...

  • iOS HTTPS 证书相关配置

    配置证书 1 申请SSL证书 先去网站上下载证书,如下图所示 如果服务端给的是crt后缀的证书,因为iOS客户端用...

  • Java入门系列09 -- 多线程,I/O

    进程,线程,多线程的相关概念这里就不做阐述,可参考 iOS底层系列22 -- 多线程基础概念[https://ww...

  • day45 Https的实现

    rewrite中的flaghttps安全证书Https单台实现Https集群实现Https练习https优化相关的...

  • iOS证书相关概念介绍

    到这个月,参加工作正好一年,期间忙于各种需求,虽说业务熟悉了,但是技术方面还是有待提高,尤其对证书那一块不太熟悉,...

  • iOS证书相关概念梳理

    非对称加密 RSA算法原理(一)RSA算法原理(二) 摘要算法 另一个神奇的算法就是摘要算法。摘要算法是指,可以将...

网友评论

      本文标题:iOS安全相关 - HTTPS证书基础概念

      本文链接:https://www.haomeiwen.com/subject/tzusbttx.html