Eksperymentuję z mechanizmem warunkowych uprawnień OSGi. Dokładniej, próbuję użyć org.osgi.service.condpermadmin.BundleSignerCondition, aby ograniczyć, które pakunki mogą zostać uruchomione. Dokumentacja Mam oświadczenie, że aby użyć tego uprawnienia, muszę określić ścieżkę do magazynów kluczy JKS przy użyciu właściwości konfiguracyjnych struktury org.osgi.framework.trust.repositories. Jednak ta sama dokumentacja wspomina, że JKS wymieniony w tej właściwości nie może mieć hasła. Pytanie brzmi: jak stworzyć JKS bez hasła? Narzędzie Keytool odmawia utworzenia JKS z pustym hasłem.Czy jest możliwe utworzenie pliku kluczy JKS bez hasła?
9
A
Odpowiedz
14
Nie można utworzyć magazynu kluczy z pustym hasłem z keytool od pewnego czasu, ale nadal można to zrobić programowo.
Czytaj cert takiego:
private static Certificate readCert(String path) throws IOException, CertificateException {
try (FileInputStream fin = new FileInputStream(path)) {
return CertificateFactory.getInstance("X.509").generateCertificate(fin);
}
}
nie tworzyć magazynu kluczy z pustym hasłem jak ten:
try {
// Reading the cert
Certificate cert = readCert("/tmp/cert.cert");
// Creating an empty JKS keystore
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(null, null);
// Adding the cert to the keystore
keystore.setCertificateEntry("somecert", cert);
// Saving the keystore with a zero length password
FileOutputStream fout = new FileOutputStream("/tmp/keystore");
keystore.store(fout, new char[0]);
} catch (GeneralSecurityException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
uruchom polecenie:
keytool -list -keystore keystore
Będzie poprosić o hasło, ale możesz po prostu nacisnąć klawisz Enter. Otrzymasz następujące ostrzeżenie, ale zawartość magazynu kluczy zostanie wymieniona:
***************** WARNING WARNING WARNING *****************
* The integrity of the information stored in your keystore *
* has NOT been verified! In order to verify its integrity, *
* you must provide your keystore password. *
***************** WARNING WARNING WARNING *****************
To może działać dla Ciebie.