java无法从X509证书的X500主体获取UniqueIdentifier
我想使用Java获取X509证书的唯一标识符
我尝试使用以下代码获取值:-
java.security.cert.X509Certificate certificate=// certificate object
certificate.getSubjectX500Principal().getName();
但我无法单独获取唯一标识符值。这就是我得到的价值:-
2.5.4.45=#0309000000db000000a01a,OU=06
我只想得到“2.5.4.45”的值
我还尝试使用以下代码获取值:-
String dn2 = certificate.getSubjectX500Principal().getName();
LdapName ldapDN;
ldapDN = new LdapName(dn2);
for(Rdn rdn: ldapDN.getRdns()) {
System.out.println(rdn.getType() + " -> " + rdn.getValue());
if(rdn.getType().equalsIgnoreCase("2.5.4.45")){
System.out.println(rdn.getValue());
}
我得到一个对象作为唯一标识符的值。我无法解析该对象,请获取该对象的值
更新:: 我仍然无法找到获取唯一标识符的方法。感谢您的帮助
# 1 楼答案
您需要提供一组已知OID。然后您将获得一个人类可读的DN字符串值。定义OID时,已知OID的值将是可读的。例如:
您可以在此处找到的OID存储库示例:http://oid-info.com/get/2.5.4.45
例如,这:
将被翻译为:
当您为集合提供以下内容时: