4

我已将 NSS 3.12.4 配置为在 FIPS 模式下使用 SunPKCS11 提供程序与我的 java 程序一起使用,并且一切正常。现在我按照https://blogs.oracle.com/meena/entry/what_s_new_in_nss1中提到的步骤使 NSS 作为共享数据库工作。

当我在共享数据库模式下配置 NSS 时,secmod.db 文件按预期被 pkcs11.txt 替换。但是现在 SunPKCS11 无法初始化,因为在初始化期间似乎检查了 secmod.db。我还尝试使用 sql: 为 configDir 加上前缀,但这也不起作用。

我收到以下异常。

Caused by: java.io.FileNotFoundException: /etc/nss/secmod.db
    at sun.security.pkcs11.Secmod.initialize(Secmod.java:181)
    at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:179)

任何人都尝试过使用 java 或任何方式解决此问题的 NSS 共享数据库?

4

1 回答 1

1

为了让它为我工作,我采取了两个额外的步骤。

  1. 使用 touch 创建一个空的 secmod.db - Java 代码只是检查它是否存在,实际上并没有使用它。
  2. 在启动 Java 进程 'export NSS_DEFAULT_DB_TYPE=sql' 之前设置默认数据库类型

通过这两项更改,我现在有了一个使用 NSS 加载其密钥的服务器端进程。

于 2014-01-08T21:05:58.630 回答