Java 帮助快速启动NSS
我开始进入NSS,我设法建立了它。结果被放置在名为Java 帮助快速启动NSS,java,security,mozilla,nss,Java,Security,Mozilla,Nss,我开始进入NSS,我设法建立了它。结果被放置在名为dist的文件夹中,并且有多个子文件夹,其中包含多个exe的DLL等 dist /WINNT6.0_DBG.OBJ /bin /include /lib 我正在尝试,但我不确定什么是nssLibraryDirectory和nssSecmodDirectory 对于nssLibraryDirectory我是否应该将dist中的所有内容复制到一个文件中,并从nssL
dist
的文件夹中,并且有多个子文件夹,其中包含多个exe的DLL等
dist
/WINNT6.0_DBG.OBJ
/bin
/include
/lib
我正在尝试,但我不确定什么是nssLibraryDirectory
和nssSecmodDirectory
对于nssLibraryDirectory
我是否应该将dist
中的所有内容复制到一个文件中,并从nssLibraryDirectory
中引用它?那NSSSECMODD目录呢?我不确定应该如何配置以开始使用sun的pkcs11
例如,这个琐碎的问题:
String configName = "nss.cfg";
Provider p = new sun.security.pkcs11.SunPKCS11(configName );
其中nss.cfg是:
name = NSS
nssLibraryDirectory = E:\NSS\nss-3.12.4-with-nspr-4.8\mozilla\dist\WINNT6.0_DBG.OBJ\lib
nssDbMode = noDb
破例
原因:java.io.IOException:异常
找不到指定的模块。
在
sun.security.pkcs11.Secmod.nssloaddlibrary(本机)
(方法)
nssLibraryDirectory应仅包含lib子目录。
它还必须出现在PATH中——要么修改环境变量,要么在JVM参数中指定它。我努力尝试的一些注意事项。。。。我认为它会帮助任何想使用NSS的人 我倾向于在Java代码中构造一个
字符串
,以了解错误发生在哪一行。我必须说它更好,因为Eclipse可以消除所有字符串构造错误。然后注意要填写的值
我使用以下代码:
String config = "xxxxxxx" +
"xxxxxxx" +
"xxxxxxx" +
"\n";
provider = new SunPKCS11(new ByteArrayInputStream(config.getBytes()));
Security.insertProviderAt(provider, 1);
提供程序配置的所有标志:
(来源:,
看起来像openjdk 8sun.security.pkcs11.Config.java
)
nssArgs=
示例:(用空格分隔)
Java代码中转义的一些示例:
String config = "name=\"NSS Module\"\n" +
"......" +
"\n";
如果带空格,则必须用“
引用<代码>'无法使用。每个“
都必须使用\
进行转义
现在,一些真实的例子
要通过NSS使用Firefox安全模块:
String config = "name=\"NSS Module\"\n"
+ "attributes=compatibility\n"
+ "showInfo=true\n"
+ "allowSingleThreadedModules=true\n"
+ "nssLibraryDirectory=" + NSS_JSS_Utils.NSS_LIB_DIR + "\n"
+ "nssUseSecmod=true\n"
+ "nssSecmodDirectory=" + NSS_JSS_Utils.getFireFoxProfilePath();
使用libsoftokn3.so
(我不知道它是用来做什么的,但我看到有人在nssArgs
中这样使用它):
NSS_JSS_Utils.NSS_LIB_DIR
返回所有NSS库LIB所在的目录。有时默认情况下会安装它们(例如,在my RedHat 7.2中),但有时必须手动安装
NSS\u JSS\u Utils.getFireFoxProfilePath()
返回您的FireFox配置文件的位置。如果您使用NSS/NSPR附带的modutil
,您可以看到您安装的安全模块存储在此文件夹中的secmod.db
中。如果找不到它们,您可能使用了错误的文件
有关如何填充这些值的详细信息:
为什么标题为“jss”和内容为“NSS”?您是否尝试过“make dist”或其等效版本?您是否在Oracle网站上查看过此页面?@Jonathan:Network Security Services for Java(我构建了dist。现在我不知道如何配置pkcs11。如果我放置
E:\NSS\NSS-3.12.4-with-nspr-4.8\mozilla\dist\WINNT6.0_DBG.OBJ
I getnss3.dll文件未找到
exception。如果我放置E:\NSS\NSS-3.12.4-with-with-nspr-4.8\mozilla\dist\WINNT6.0_DBG.OBJ\code>I getsun.security.second.slool(本机方法)
异常
String config = "name=\"NSS Module\"\n" +
"......" +
"\n";
String config = "name=\"NSS Module\"\n"
+ "attributes=compatibility\n"
+ "showInfo=true\n"
+ "allowSingleThreadedModules=true\n"
+ "nssLibraryDirectory=" + NSS_JSS_Utils.NSS_LIB_DIR + "\n"
+ "nssUseSecmod=true\n"
+ "nssSecmodDirectory=" + NSS_JSS_Utils.getFireFoxProfilePath();
String config = "library=" + NSS_JSS_Utils.NSS_LIB_DIR + "/libsoftokn3.so" + "\n"
+ "name=\"Soft Token\"\n";
+ "slot=2\n"
+ "attributes=compatibility\n"
+ "allowSingleThreadedModules=true\n"
+ "showInfo=true\n"
+ "nssArgs=\"configdir='" + NSS_JSS_Utils.getFireFoxProfilePath() + "' "
+ "certPrefix='' "
+ "keyPrefix='' "
+ "secmod='secmod.db' "
+ "flags='readOnly'\""
+ "\n";