SSL 证书基本概念扫盲

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    keytool VS openssl

    keytool 和 openssl 是俩个证书管理工具。

    keytool 是 java JDK 自带的证书管理工具,使用 keytool 可以生成密钥,创建证书。只要装了 jdk,并正确设置了环境变量,就可以之间通过命令行执行 keytool 命令来管理证书。

    openssl 则是一个开源的安全套接字层密码库,功能比 keytool 更加丰富。

    X.509 VS PKCS

    PKCS 全称 Public-Key Cryptography Standards ,即公钥标准,PKCS 已经发布了15个标准。

    • PKCS#12 包含了公钥和私钥的二进制格式的证书形式,以 .pfx 作为证书文件后缀。

    X.509 则是一个通用的证书标准,规定了证书应该包含哪些内容,X.509 通常有俩种编码方式,一种是二进制编码,另一种是 Base64 编码。

    • X.509#DER 二进制格式证书,常用后缀 .cer .crt
    • X.509#PEM 文本格式证书,常用后缀 .pem

    证书文件格式

    文件后缀 文件类型 说明
    .DER或.CER 二进制格式 只含有证书信息,不包含私钥。
    *.CRT 二进制格式或文本格式 只含有证书信息,不包含私钥。
    *.PEM 文本格式 一般存放证书或私钥,或同时包含证书和私钥。.PEM文件如果只包含私钥,一般用.KEY文件代替。
    .PFX或.P12 二进制格式 同时包含证书和私钥,且一般有密码保护。

    证书格式之间是可以互相转化的。用到的时候查对应的 openssl 或 keytool 命令就好了。

    您可以使用记事本直接打开证书文件。如果显示的是规则的数字字母(如下所示内容),那么该证书文件是文本格式。

    —–BEGIN CERTIFICATE—–
    MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
    —–END CERTIFICATE—–
    
    • 如果存在 ——BEGIN CERTIFICATE——,则说明这是一个证书文件。
    • 如果存在 —–BEGIN RSA PRIVATE KEY—–,则说明这是一个私钥文件。

    常见Web服务软件

    常见的 Web 服务软件,通常都基于 OpenSSL 和 Java 两种基础密码库。

    • Tomcat、Weblogic、JBoss 等 Web 服务软件,一般使用 Java 提供的密码库。通过 Java Development Kit(JDK)工具包中的 Keytool 工具,生成 Java Keystore(JKS)、keystore 格式的证书文件。

      .keystore.jks 都是 java 用来存放密钥的文件。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。

    • Apache、Nginx 等 Web 服务软件,一般使用 OpenSSL 工具提供的密码库,生成 PEM、KEY、CRT 等格式的证书文件。

    • IBM 的 Web 服务产品,如 Websphere、IBM Http Server(IHS)等,一般使用 IBM 产品自带的 iKeyman 工具,生成 KDB 格式的证书文件。

    • 微软 Windows Server 中的 Internet Information Services(IIS)服务,使用 Windows 自带的证书库生成 PFX 格式的证书文件。

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6