16.3.3. 使用 certutil 更新证书

certutil 可用于使用证书数据库中的现有密钥对生成证书请求。然后,新证书请求可以通过 CA 的常规配置集页面提交以签发更新的证书。
注意
加密和签名证书在一个步骤中创建。但是,续订过程一次仅更新一个证书。
要更新证书对中的这两个证书,必须逐一续订每个证书。
  1. 获取令牌数据库的密码。
    cat /var/lib/pki/instance_name/conf/password.conf
    
    internal=263163888660
    
  2. 打开证书被续订的实例的证书数据库目录。
    cd /var/lib/pki/instance_name/alias
  3. 列出要续订的证书的密钥和别名。要续订证书,用于生成的密钥对以及提供给新证书的主题名称必须与旧证书中的相同。
    # certutil -K -d .
    
    certutil: Checking token "NSS Certificate DB" in slot "NSS User Private Key and Certificate Services"
    Enter Password or Pin for "NSS Certificate DB":
    < 0> rsa      69481646e38a6154dc105960aa24ccf61309d37d   caSigningCert cert-pki-tomcat CA
  4. 复制 别名 目录作为备份,然后从证书数据库中删除原始证书。例如:
    certutil -D -n "ServerCert cert-example"  -d .
  5. 运行 certutil 命令,并将选项设置为现有证书中的值。
    certutil -d . -R -n "NSS Certificate DB:cert-pki-tomcat CA" -s "cn=CA Authority,o=Example Domain" -a -o example.req2.txt
    生成新证书和密钥对与续订证书之间的区别是 -n 选项的值。要生成全新的请求和密钥对,而 -k 会设置密钥类型,而 -g 则用于设置位长度。对于续订请求,-n 选项使用证书 nickname 来访问存储在安全数据库中的现有密钥对。
    有关参数的详情,请查看 certutil(1) man page。
  6. 提交证书请求,然后检索它并安装它,如 第 5.4 节 “请求和接收证书” 所述。