ssl - 将新的客户端证书添加到 NSS 数据库

标签 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. 如果 secmod.db 没有包含任何模块,SEC_ERROR_LEGACY_DATABASE 也会发生。这非常棘手,因为错误消息与此无关与真正的原因。我认为这是一个错误。

因此,首先将模块添加到secmod.db

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

-dbdir 接受一个 directory 作为适当的值。不要深入到文件本身。

  1. 如果这也失败,请检查您对文件 secmod.db 的许可。就我而言,它失败了,因为我没有写权限。以 root 身份运行 chown 可能会修复它。

那么,试试这个:

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

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

关于ssl - 将新的客户端证书添加到 NSS 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37956072/

相关文章:

openssl - 如何让浏览器信任本地主机 SSL 证书?

firefox - 用于用测试数据填充大型 html 表单的浏览器插件

javascript - 为什么更改 Canvas 大小会重置其参数?

forms - 发送 FROM 到银行时的 ssl_error_rx_record_too_long

Wamp 上的 SSL 连接错误

ruby-on-rails - 在 Rails 中通过 SSL 在 Internet Explorer 中下载文件

java - 启用 CA 认证握手到 java 客户端

java - Glassfish v3 "unable to find valid certification path to requested target"

java - 无法在JAVA中生成RSAPublicKey

javascript - 浏览器 JavaScript 创建自定义事件