针对由 CA 进行签名的证书生成新的专用密钥和 CSR

本文指导如何从已签名CA证书出发,生成新的专用密钥和CSR。涉及 openssl 命令行操作,包括创建专用CA、CSR签名及导入服务器。适合初学者理解PKI流程和专用CA的使用。

针对由 CA 进行签名的证书生成新的专用密钥和 CSR

对于由认证中心 (CA) 进行签名的证书,服务器随附了专用密钥以及已签名的证书。您可以针对由 CA 进行签名的证书生成新的专用密钥和证书签名请求 (CSR)。您可能想针对由 CA 进行签名的证书生成新的专用密钥和 CSR,例如,在尚未建立公用密钥基础结构 (PKI) 时,情况就是如此。

关于此任务

您可以将此 CSR 发送给外部 CA 以进行签名,也可以创建专用 CA 并使用专用 CA 对 CSR 进行签名。您可以在任何计算机上创建专用 CA,前提是其操作系统支持 openSSL。

使用外部 CA 的优点是,在缺省情况下,已知公用 CA 的根证书将导入到流行的 Web 浏览器中。使用专用 CA 的优点是不依赖于外部实体提供证书,并且没有成本。

过程

  1. 通过打开命令行控制台并输入下列命令,生成新的专用密钥和证书签名请求 (CSR):
    openssl genrsa -out key_name.key key_strength -sha256
    注: 添加 -des3 选项可以生成受密码保护的密钥,例如:
    openssl genrsa -des3 -out key_name.key key_strength -sha256
    openssl req -new -key key_name.key -out csr_name.csr
    其中:

    csr_name

    是要创建的 CSR 文件的名称。

    key_name

    是新密钥的名称。

    key_strength

    是密钥的强度,以位数计。

    sha256

    是签名散列算法。

    例如:

    openssl genrsa -out privateKey.key 2048 -sha256
    
    openssl req -new -key privateKey.key -out csr.csr
    这将创建证书请求。此 CSR 用作已签名证书的临时占位符,直到您在服务器设置面板中将该证书导入到密钥库为止。现在,该证书必须由 CA 进行签名,才能完成为服务器生成已签名证书的过程。您可以将此 CSR 发送给外部 CA 进行签名,也可以创建专用 CA。
  2. 可选: 创建专用 CA 并对 CSR 进行签名。如果您打算创建并使用专用 CA,而不使用外部 CA,请完成以下过程。
    1. 通过运行下列命令,创建 CA 专用密钥和 CSR:
      mkdir ca
      
      openssl req -new -newkey rsa:key_strength -nodes -out path_to_csr.csr -keyout path_to_keyfile.key -sha256
      其中:

      key_strength

      是密钥的强度,以位数计。

      path_to_csr

      是 CSR 的路径。

      path_to_keyfile

      是 CA 密钥文件的路径。

      示例:
      openssl req -new -newkey rsa:2048 -nodes -out ca/ca.csr -keyout ca/ca.key -sha256
    2. 对 CA CSR 进行签名,以便为新的专用 CA 构建证书:
      openssl x509 -signkey path_to_keyfile.key -days 
      number_of_days -req -in path_to_csr.csr -out path_to_ca_cert.arm -sha256
      其中:

      path_to_keyfile

      是 CA 密钥文件的路径。

      number_of_days

      是此证书的有效天数。

      path_to_ca_cert

      是 CA 证书文件的路径。

      示例:
      openssl x509 -signkey ca/ca.key -days 7300 -req -in ca/ca.csr -out ca/ca.arm -sha256

    3. 对此 CSR 进行签名。 仅当使用专用 CA 时,才需要对 CSR 进行签名。

      注: 如果使用外部 CA,那么必须将此 CSR 发送给 CA 管理员以进行签名。

      运行以下命令,以便对此 CSR 进行签名:
      openssl x509 -req -days 7300 -in path_to_csr -CA ca/ca.arm -CAkey path_to_keyfile -out cert.arm -set_serial 01 -sha256
      其中:

      path_to_csr

      是您创建的证书签名请求文件的路径。

      path_to_keyfile

      是您创建的 CA 密钥文件的路径。

      cert.arm

      是生成的服务器证书。

      ca.arm

      是必须用于对此 CSR 进行签名的 CA 证书。

      例如:
      openssl x509 -req -days 7300 -in csr.csr -CA ca/ca.arm -CAkey ca/ca.key -out cert.arm -set_serial 01 -sha256
    新创建的文件 ca.arm 包含专用 CA 的根证书。现在,可以在服务器设置面板中导入证书 cert.arm 和专用密钥 privateKey.key。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值