Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将NSS与Jetty一起使用?_Jetty_Nss - Fatal编程技术网

如何将NSS与Jetty一起使用?

如何将NSS与Jetty一起使用?,jetty,nss,Jetty,Nss,我正在尝试设置Jetty以使用NSS作为其加密引擎。我已经到了服务器启动的地步,但是任何试图连接的客户端似乎都挂在浏览器上 下面的安装过程/代码如下(32位Windows1.6JVM) NSS数据库创建 将NSS加载到Java中 String config=“name=NSS\n”; config+=“nssLibraryDirectory=C:\\nss\\lib\n”; config+=“nssSecmodDirectory=C:\\nssdb\n”; config+=“nssDbMode=

我正在尝试设置Jetty以使用NSS作为其加密引擎。我已经到了服务器启动的地步,但是任何试图连接的客户端似乎都挂在浏览器上

下面的安装过程/代码如下(32位Windows1.6JVM)

NSS数据库创建 将NSS加载到Java中
String config=“name=NSS\n”;
config+=“nssLibraryDirectory=C:\\nss\\lib\n”;
config+=“nssSecmodDirectory=C:\\nssdb\n”;
config+=“nssDbMode=readWrite\n”;
配置+=“nssModule=fips”;
InputStream=新的ByteArrayInputStream(config.getBytes(“UTF-8”);
Provider nss=new sun.security.pkcs11.SunPKCS11(流);
安全。添加提供程序(nss);
int sunJssePosition=-1;
int currentIndex=0;
对于(提供程序:Security.getProviders()){
if(“SunJSSE.equals(provider.getName())){
sunJssePosition=currentIndex+1;
打破
}
currentIndex++;
}
安全移除提供程序(“SunJSSE”);
Provider sunJsse=new com.sun.net.ssl.internal.ssl.Provider(nss);
if(sunJssePosition==-1){
Security.addProvider(sunJsse);
}否则{
Security.insertProviderAt(sunJsse、sunJssePosition);
}
NSS自签名证书生成 码头启动
KeyStore ks=KeyStore.getInstance(“PKCS11”);
ks.load(空,“超级机密”);
//开始设置防波堤
服务器=新服务器();
SslContextFactory SslContextFactory=新的SslContextFactory();
//sslContextFactory.setkeystreprovider(“SunPKCS11 NSS”);
sslContextFactory.setKeyStore(ks);
//setKeyStorePassword(新字符串(“超级机密”);
SslSelectChannelConnector sslConnector=新的SslSelectChannelConnector(sslContextFactory);
sslConnector.setPort(443);
server.addConnector(sslConnector);
WebAppContext=新的WebAppContext();
//诸如此类,设置码头
setHandler(上下文);
server.start();
join();
有什么想法吗



编辑:这看起来非常奇怪,但我可以使用Internet Explorer访问服务器。Firefox似乎是一个有问题的人。

我已经解决了这个问题。事实证明,Java6SSL实现中存在严重的错误。解决方案是什么?切换到Java7

modutil.exe -create -dbdir C:\nssdb
modutil.exe -create -fips true -dbdir C:\nssdb
modutil.exe -create -changepw "NSS FIPS 140-2 Certificate DB" -dbdir C:\nssdb
C:\nss\bin\certutil.exe -S -n 127.0.0.1 -x -t "u,u,u" -s "CN=127.0.0.1, OU=Foo, O=Bar, L=City, ST=NY, C=US" -m 25001 -d C:\nssdb