Измените кодировку полей CErtificate с printableString на UTF8String Java-код - PullRequest
0 голосов
/ 01 марта 2019

Я создаю сертификат в Java, используя библиотеку надувных замков.Все поля в моем сгенерированном сертификате закодированы в PrintableString.Но есть много символов, не поддерживаемых этим типом кодировки.Итак, я хочу изменить тип кодировки на UTF8String Я говорю, что мы должны изменить атрибут directoryString по умолчанию.Но я не нашел код Java, который может это сделать.Кто может мне помочь?Вот что я получаю при выполнении команды: openssl asn1parse -in test.cer

Просмотреть изображение здесь это код, где я генерирую сертификат, используя библиотеки bouncycustle и sun.security: String certificate = ca.getCert(); byte[] cert_bytes = certificate.getBytes(); cf = CertificateFactory.getInstance("X509"); X509Certificate cr = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(cert_bytes)); cr.getKeyUsage(); X509CertInfo info = new X509CertInfo(); Date from = new Date(System.currentTimeMillis()); Calendar cal = Calendar.getInstance(); cal.add(Calendar.YEAR, 5); Date to = cal.getTime(); CertificateValidity interval = new CertificateValidity(from, to); BigInteger sn = new BigInteger(64, new SecureRandom()); org.bouncycastle.asn1.x500.X500Name x500Name = req.getSubject(); X500Name x500name_subject = new X500Name(getX500Field(COMMON_NAME, x500Name), getX500Field(COUNTRY, x500Name), getX500Field(LOCALE, x500Name), getX500Field(ORGANIZATION, x500Name), getX500Field(ORGANIZATION_UNIT, x500Name), getX500Field(STATE, x500Name)); X500Principal principal = cr.getSubjectX500Principal(); X500Name x500namecert = new X500Name(principal.getName()); X500Name x500name_issuer = new X500Name(x500namecert.getCommonName(), x500namecert.getCountry(), x500namecert.getOrganization(), x500namecert.getOrganizationalUnit());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...