阅读502 返回首页    go 英雄联盟


生成证书__证书管理_用户指南_负载均衡-阿里云

概述

上传证书前,您需要生成相应的证书,包括服务器证书、CA证书、客户端证书。

  • 服务器证书:用于用户浏览器检查服务器发送的证书是否是由自己信赖的中心签发的,服务器证书可以到阿里云云盾证书服务购买,也可以到其他服务商处购买。服务器证书需要上传到负载均衡的证书管理系统。

  • 客户端证书:用于证明客户端用户的身份,使得客户端用户在与服务器端通信时可以证明其真实身份。

  • CA 证书:服务器要求用户浏览器发送客户端证书,收到后服务器用 CA 证书验证客户端证书,如果没有通过验证,拒绝连接。开启双向认证功能后,CA 证书和服务器证书都需要上传到负载均衡的证书管理系统。

操作步骤

  1. 生成服务器证书。您可以从云盾 证书服务 购买并生成服务器证书,也可以到其他服务商处购买。

  2. 使用 openssl 生成自签 CA 证书。

    1. 在 /root 目录下新建 ca 文件夹,在 ca 文件夹下创建 4 个子文件夹:

      1. $ sudo mkdir ca
      2. $ cd ca
      3. $ sudo mkdir newcerts private conf server
      • newcerts 目录将用于存放 CA 签署过的数字证书(证书备份目录);
      • private 目录用于存放 CA 的私钥;
      • conf 目录用于存放一些简化参数用的配置文件;
      • server 目录存放服务器证书文件。
    2. 在 conf 目录下新建 openssl.conf 文件,并将其内容编辑如下:

      conf文件编辑

    3. 运行以下命令生成私钥 key 文件:

      1. $ cd /root/ca
      2. $ sudo openssl genrsa -out private/ca.key
      3. 输出
      4. Generating RSA private key, 512 bit long modulus
      5. ..++++++++++++
      6. .++++++++++++
      7. e is 65537 (0x10001)

      private 目录下有 ca.key 文件生成。openssl 默认生成 512 位的。一般是用 2048 位的。

    4. 运行以下命令,并按命令后的示例提供需要输入的信息,然后回车,生成证书请求 csr 文件。

      1. $ sudo openssl req -new -key private/ca.key -out private/ca.csr

      信息提供示例:csr信息提供示例

      提示输入 Common Name 时,如果没有域名,输入 xxx.xxx.cn。

      private 目录下有 ca.csr 文件生成。

    5. 运行以下命令生成凭证 crt 文件:

      1. $ sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt

      控制台输出如下示例。private 目录下有 ca.crt 文件生成。

      crt控制台输出

    6. 运行以下命令为 key 设置起始序列号。可以是任意四个字符。

      1. $ sudo echo FACE > serial
    7. 运行以下命令创建 CA 键库:

      1. $ sudo touch index.txt
    8. 运行以下命令为移除”用户证书” 创建一个证书撤销列表。

      1. $ sudo openssl ca -gencrl -out /root/ca/private/ca.crl -crldays 7 -config "/root/ca/conf/openssl.conf"

      输出为:

      1. Using configuration from /root/ca/conf/openssl.conf

      private 目录下有 ca.crl 文件生成。

  3. 生成客户端证书。

    1. 运行以下命令创建存放 key 的目录 users:
      1. $ sudo mkdir users
    2. 运行以下命令为用户创建一个 key:

      1. $ sudo openssl genrsa -des3 -out /root/ca/users/client.key 1024

      要求输入 pass phrase,这个是当前 key 的口令,以防止本密钥泄漏后被人盗用。两次输入同一个密码,users 目录下有 client.key 文件生成。

    3. 运行以下命令为 key 创建一个证书签名请求 csr 文件:

      1. $ sudo openssl req -new -key /root/ca/users/client.key -out /root/ca/users/client.csr

      提示输入 pass phrase,即 client.key 的口令。将上一步保存的 pass phrase 输入后并回车。按照以下示例输入要求提供的信息。A challenge password 是客户端证书口令(请注意将它和 client.key 的口令区分开,这边设置密码为 test),可以与服务器端证书或者根证书口令一致。

      csr 提示输入示例2

      users 目录下有 client.csr 文件生成。

    4. 运行以下命令使用您私有的 CA key 为刚才的 key 签名:

      $ sudo openssl ca -in /root/ca/users/client.csr -cert /root/ca/private/ca.crt -keyfile /root/ca/private/ca.key -out /root/ca/users/client.crt -config "/root/ca/conf/openssl.conf"

      控制台输出为:使用私有 CA key 签署 key

      两次确认提示都输入 “y”,users 目录下有 client.crt 文件生成。

    5. 运行以下命令将证书转换为大多数浏览器都能识别的 PKCS12 文件:

      $ sudo openssl pkcs12 -export -clcerts -in /root/ca/users/client.crt -inkey /root/ca/users/client.key -out /root/ca/users/client.p12

      获得如下提示时,输入 client.key 的 pass phrase。

      PKCS12_1

      获得如下提示时,输入 Export Password,这个是客户端证书的保护密码(其作用类似于 步骤 3.iii 保存的口令),在客户端安装证书的时候需要输入这个密码。

      PKCS12_2

      users 目录下有 client.p12 文件生成。

最后更新:2016-12-20 13:19:10

  上一篇:go 配置转发策略__实例管理_用户指南_负载均衡-阿里云
  下一篇:go 转换证书格式__证书管理_用户指南_负载均衡-阿里云