2012-07-18 39 views
4

我已配置NSS 3.12.4以使用SunPKCS11提供程序在FIPS模式下使用我的java程序,並且一切正常。現在我按照https://blogs.oracle.com/meena/entry/what_s_new_in_nss1中提到的步驟來使NSS作爲共享數據庫工作。NSS共享數據庫不能與SunPKCS11一起使用

當我在共享db模式下配置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) 

任何人都試過NSS共享數據庫與Java或任何方式來解決這個問題?

+0

你有沒有解決過這個問題? – chotchki 2013-05-13 13:58:09

+0

不,我仍在使用非共享模式。 – 2013-09-24 12:04:29

+0

@chotchki,這個終於在4年後工作:) – 2017-03-28 03:13:50

回答

1

爲了讓這個工作適合我,我已經採取了兩個額外的步驟。

  1. 使用touch創建一個空的secmod.db - Java代碼只是檢查它是否存在,它實際上並不使用它。
  2. 啓動Java進程的出口NSS_DEFAULT_DB_TYPE = SQL「

有了這兩個變化我現在已經使用NSS加載它的密鑰的服務器端程序之前設置默認的數據庫類型。

+0

這工程!我已經寫了一個示例java程序,它可以在fips模式下使用nss shared db。請參閱https://github.com/atulsm/Test_Projects/blob/master/src/TestKeyStoreSharedDbFIPS.java – 2017-03-27 10:55:53