将新客户端证书添加到NSS db

时间:2016-06-21 23:15:14

标签: ssl ssl-certificate mozilla nss

我正在使用CentOS,我有NSS 3.19.1

我正在尝试将带有rsa私钥的客户端证书添加到NSS数据库。

我在/etc/pki/nssdb内工作,它有内容:

cert8.db
cert9.db
key3.db
key4.db
pkcs11.txt
secmod.db

我知道cert8key3secmod是数据库的旧格式。

但无论我运行什么命令,我都会得到:

SEC_ERROR_BAD_DATABASE

SEC_ERROR_LEGACY_DATABASE

我以为我有cert9,key4和pkcs11文件的更新数据库。

任何人都可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

  1. 如果secmod.db没有包含模块,则SEC_ERROR_LEGACY_DATABASE也会出现。这非常棘手,因为错误消息与真正的原因无关。我认为这是一个错误。
  2. 因此,首先将模块添加到secmod.db

    modutil -add "some name" -libfile some_so_file_to_load -dbdir "/the/dir/where/the/secmod/is/located/" -secmod secmod.db
    

    -dbdir接受一个目录作为正确值。不要深入到文件本身。

    1. 如果此操作也失败,请检查您对secmod.db文件的权限。在我的情况下,它失败,因为我没有写入权限。将作为root 运行chown可能会解决问题。
    2. 所以,试试这个:

      sudo -s
      chown your_user_name /the/secmod/dir/secmod.db
      
      1. 然后,尝试添加模块并运行modutil -list以检查是否已添加。

      2. 最后,将证书添加到其中。它会工作。 db文件的扩展名无关。