2. BERBasic Encoding Rules(BER)是DER的一个子集 。
3. CERCER是另一种编码标准 , 用来编码ASN.1结构
4. PEMDER是个二进制文件 , 为了方便传输 , 可以将DER转换为PEM(Privacy enhanced Electronic mail)格式 。PEM是Base64编码方式 , 以:-----BEGIN CERTIFICATE----- 开头 , -----END CERTIFICATE----- 结尾 。
5. 编码转换PEM转为DER
openssl x509 -in cert.pem -out cert.der -outform DERDER转为PEM
openssl x509 -incert.der -inform DER -out cert.pem -outform PEM16. 其它的证书格式7.6.1 PKCS#12(后缀.pkcs12 .pfx .p12)非对称加密的一种格式 , 微软推出 。PKCS#12把证书和密钥对打包成一个文件 , 还可以再对文件进行加密保护 。通过OpenSSL pkcs12子命令将密钥对(privkey.pem)、服务器实体证书(cert.pem)、中间证书(chain.pem)转换成一个文件:
openssl pkcs12 -export -out cert.pfx-inkey privkey.pem -in cert.pem -certfile chain.pem生成 cert.pfx时会提示进行口令保护 。可以再使用命令从pfx中再导出密钥对和证书:
# 导出密钥对openssl pkcs12 -in cert.pfx -nodes -nocerts -out new_privkey.pem# 导出服务器实体证书openssl pkcs12 -in cert.pfx -nodes -clcerts -out new_cert.pem# 导出中间证书openssl pkcs12 -in cert.pfx -nodes -cacerts -out new_chain.pem7.6.2 PKCS#7主要用来进行数字签名和数据加密 , 文件后缀一般是.p7b或.p7c , 使用OpenSSL crl2pkcs7进行操作 。
# 生成 cert.p7bopenssl crl2pkcs7 -nocrl -certfile cert.pem -certfile chain.pem -out cert.p7b# 导出完整证书链文件 , 服务器实体证书在文件顶部 , 中间证书在文件底部openssl pkcs7 -print_certs -in cert.p7b -out fullchain.cer7.6.3 BKSBouncyCastleProvider , 它使用的也是TripleDES来保护密钥库中的Key , 它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误) , BKS能够跟JKS互操作 。由于Android/ target=_blank class=infotextkey>安卓无法直接支持jks的证书库 , 在安卓下一般需要使用BKS类型证书 。
7. CSR管理7.7.1 查看CSR前面使用OpenSSL命令生成了CSR文件 , 下面使用命令查看CSR文件内容:
openssl req -in mykey_csr.pem -noout -text

文章插图
其中:
- Subject Public Key Info : 生成的公钥 , 包含了e和n等RSA信息
- Signature Algorithm 表示签名算法和签名值 。
openssl req -in myreq.pem -noout -verify -key mykey_csr.pem八、导入根证书更新根证书库 , 一般原因:- 有新成立了一个CA机构 , 要导入到根证书库中
- 自签名了一个证书 , 要导入根证书库
- 系统根证书库太旧
Linux下 命令行update-ca-certificates可以用来同步证书 。
windows下可以双击.cer文件弹出安装证书界面 。
【服务器开发程序员必须搞清HTTPS通讯之证书】
推荐阅读
- 详解Java面向对象开发,给你不一样的体验
- 你在开发API时是如何设计签名验证的?
- 味道|曾开发可以舔的电视:日本研究人员推出增强咸味的筷子
- 程序员效率神器:shell命令蜕变,用颜色划出重点
- 十年架构师吐血整合Java开发必备宝典,凭借这份宝典定级腾讯T3-4
- 你如何理解敏捷开发?
- 服务器系统哪家强 Ubuntu Server与CentOS
- 微信小程序开发,多端框架全面测评
- 今日给大家推荐一个java开发神器-EasyCode
- linux服务器内存异常,究竟在哪消耗了2.5G?
