我想使用CSS和Windows为您的Mozilla Firefox证书库添加一个受信任的证书颁发机构。 有人知道怎么做吗?
答案 0 :(得分:0)
以下是使用JSS 4.3.1的方法!
你会在%APPDATA%/ Mozilla / Firefox / Profiles找到你的windows firefox个人资料目录。
确保将所有需要的本机库放在一个唯一的目录中,并在java.library.path中引用此目录,例如:
-Djava.library.path =" C:\ dev的\火狐\ JSS-天然" 以下是示例代码:
File firefoxProfilesDir = new File(appData + "/Mozilla/Firefox/Profiles");
boolean firefoxInstalled = firefoxProfilesDir.exists() && firefoxProfilesDir.isDirectory();
if (!firefoxInstalled) {
LOG.info("Firefox profiles not found, abort");
return;
}
LOG.info("Firefox profiles found");
LOG.info("Browsing for firefox profile");
File[] profilesDir = firefoxProfilesDir.listFiles();
for (File profileDir : profilesDir) {
if (!profileDir.isDirectory()) {
continue;
}
LOG.info("Found firefox profile {}", profileDir.getName());
// Autority
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
Certificate rootCertificate = certificateFactory.generateCertificate(Dispatcher.class
.getResourceAsStream("/certificates/myautoritycert.cer"));
// Load native libs
System.loadLibrary("nspr4");
System.loadLibrary("plc4");
System.loadLibrary("plds4");
System.loadLibrary("nssutil3");
System.loadLibrary("nss3");
System.loadLibrary("smime3");
System.loadLibrary("freebl3");
System.loadLibrary("nssckbi");
System.loadLibrary("nssdbm3");
System.loadLibrary("sqlite3");
System.loadLibrary("ssl3");
// Initialize mozilla crypto
CryptoManager.initialize(profileDir.getAbsolutePath());
CryptoManager manager = CryptoManager.getInstance();
CryptoToken token = manager.getInternalKeyStorageToken();
manager.setThreadToken(token);
// Autority
X509Certificate cert = manager.importCACertPackage(rootCertificate.getEncoded());
InternalCertificate certInternal = manager.importCertToPerm(cert , "somealias");
certInternal.setSSLTrust(InternalCertificate.TRUSTED_CA);
LOG.info("Certificate {} loaded into firefox profile {}", "somealias", profileDir.getName());
break;
}