NSS Shared DB无法与SunPKCS11一起使用

时间:2012-07-18 10:08:20

标签: java cryptography jce nss pkcs#11

我已经在FIPS模式下使用SunPKCS11提供程序将NSS 3.12.4配置为使用我的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共享数据库或以任何方式解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

为了让这对我有用,我又采取了两个步骤。

  1. 使用touch创建一个空的secmod.db - Java代码只是检查它是否存在,它实际上并没有使用它。
  2. 在启动Java进程之前设置默认数据库类型'export NSS_DEFAULT_DB_TYPE = sql'
  3. 通过这两项更改,我现在有一个服务器端进程,使用NSS加载它的密钥。