如果我只知道字段的名称,如何从X509Certificate获取值?
例如,"CN“的OID为"2.5.4.3",如果我只知道get only string name,我如何将其转换为OID并从字段中获取值?
如果只有字符串名为OID,如何获取数字OID?
发布于 2015-07-15 15:33:14
public class CustomX509TrustManager implements X509TrustManager{
private X509Certificate[] serverX509CertificateArray;
@Override
public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
//TODO xcs array include: OID,...
this.serverX509CertificateArray = xcs;
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return this.serverX509CertificateArray;
}
}代码部分:
SSLContext sslContext = SSLContext.getInstance("SSLv3");
sslContext.init(null, new TrustManager[] {new CustomX509TrustManager()}, new java.security.SecureRandom());
SSLSocketFactory ssf = sslContext.getSocketFactory();
HttpsURLConnection conn = (HttpsURLConnection) new URL("https://www.facebook.com/").openConnection();
conn.setSSLSocketFactory(ssf);
conn.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String string, SSLSession ssls) {
return true;
}
});
conn.setConnectTimeout(1000);
conn.setReadTimeout(1000 * 2);
conn.connect();
//READ HTML
conn.disconnect();发布于 2021-09-26 06:16:12
X509ObjectIdentifiers.commonName将为您提供CN的OID。
请参阅:http://javadox.com/org.bouncycastle/bcprov-jdk15on/1.51/org/bouncycastle/asn1/x509/X509ObjectIdentifiers.html
这包含了所有X.509定义的OID,对于其他众所周知的ASN1标识符,也有类似的命名类。
https://stackoverflow.com/questions/31423380
复制相似问题