Szukam klasy narzędzie, które może generować losowe ciągi certyfikatów do celów testowych. Masz pomysł, jeśli taki już został wdrożony?Generowanie losowych certyfikatów
Odpowiedz
Wbudowany bibliotek Java X500 są nastawione bardziej na użyciu certyfikatów niż generowania i parsowania certyfikaty. Możesz znaleźć sposób na zrobienie tego, co chcesz, ale prawie na pewno będzie brudny i zabezpieczony API (sun.security.*
).
Proponuję dołączyć bibliotekę Zamku nadmuchiwanego (licencja Apache). Ma klasę o nazwie X509V3CertificateGenerator
, której można użyć do ustawienia pól certyfikatu (wystawcy, tematu, daty wygaśnięcia itp.).
Powinieneś być w stanie uzyskać ciąg PEM z niego przy użyciu klasy PEMWriter
.
Aby dodać do rozwiązania podanego przez martijno,
Zamiast pisać własne treści podpisującego, JCAContentSigner mogą być stosowane w celu uniknięcia mapowania do AlgorithmIdentifier (tj OID).
JcaContentSignerBuilder przyjmuje nazwy algorytmów zgodnie z definicją here.
X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder(issuer, serialNumber, startDate, expiryDate, subject, SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded()));
JcaContentSignerBuilder builder = new JcaContentSignerBuilder("SHA256withRSA");
ContentSigner signer = builder.build(keyPair.getPrivate());
byte[] certBytes = certBuilder.build(signer).getEncoded();
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)certificateFactory.generateCertificate(new ByteArrayInputStream(certBytes));
Czy mam rację, jeśli to nie jest samopodpisany certyfikat i po prostu zastępuję klucz prywatny kluczem prywatnym urzędu certyfikacji? – maxbit89
- 1. Generowanie liczb losowych CUDA
- 2. Generowanie losowych zdań w JavaScript
- 3. Generowanie liczb losowych w Swift
- 4. Generowanie liczb losowych bez powtórzeń
- 5. Generowanie bardzo dużych liczb losowych java
- 6. Generowanie liczb losowych w aplikacjach MVC
- 7. Różne generowanie liczb losowych między OS
- 8. Generowanie losowych punktów na powierzchni cylindra
- 9. Generowanie liczb losowych między wieloma waha
- 10. Generowanie "In-Range" liczb losowych w C
- 11. Generowanie liczb losowych z wyjątkiem pewnych wartości
- 12. Generowanie liczb losowych bez użycia operacji bitowych
- 13. android - generowanie liczb losowych bez powtarzania
- 14. Generowanie losowych bajtów w Swift 3.0
- 15. Generowanie lognormalnych liczb losowych w MATLAB?
- 16. Generowanie losowych miniatur za pomocą PHP + FFMPEG
- 17. Generowanie losowych ciągów na podstawie Regex?
- 18. generowanie liczb losowych bez kolejnych powtórzeń
- 19. Generowanie stochastycznych losowych odbiega od obiektu gęstości R
- 20. Równoległe generowanie liczb losowych za pomocą Akka Futures
- 21. Generowanie losowych liczb całkowitych w zakresie o rozkładzie prawdopodobieństwa
- 22. Generowanie liczb losowych z ważonymi prawdopodobieństwami w pythonie
- 23. Generowanie skorelowanych liczb losowych z dwumianowych rozkładów w R
- 24. Generowanie liczb losowych w każdym rzędzie w Oracle Query
- 25. Generowanie map losowych w Pythonie z hałasem Perlin
- 26. Odpowiedzialność za automatyczne generowanie losowych haseł dla użytkowników
- 27. Generowanie unikatowych liczb losowych w Postgresql o ustalonej długości
- 28. Siew Wiele liczb losowych Generatory
- 29. Uzyskaj listę certyfikatów ze sklepu certyfikatów w języku C#
- 30. Klucze certyfikatów - konwersja
Należy zauważyć, że 'X509V3CertificateGenerator' został przestarzały (przynajmniej w Bouncy Castle 1.47). Sugerują użycie 'X509v3CertificateBuilder' (nie w' bcprov', ale w słoiku 'bcpkix'). – martijno
Teraz jest w słoiku 'bcmail'nym – KeksArmee
@KeksArmee: nadal jest w' bcpkix'. – jackyalcine