Importering af certifkat og læsening
Hej,Jeg har indsæt et certifikat vha:
keytool -import -trustcacerts -alias name -file certifikat.crt -keystore KeyStore.kst.
Og dette er gået helt vildt - der stod at den var importeret tilsidst.
Nu prøver jeg så at tilgå den fra noget java-kode med:
try {
KeyStore keyStore = null;
String strCertPath = "c:"+File.separatorChar;
SSLContext sslContext = SSLContext.getInstance("SSLv3");
TrustManagerFactory trustMgtFactory = TrustManagerFactory.getInstance("SunX509");
CertificateFactory cert = CertificateFactory.getInstance("X.509");
String certs[] = {"KeyStore.kst"}; //Names pf files
FileInputStream lo_fileinputstream = null;
for(int i = 0;i < certs.length; i++)
{
String strCert = strCertPath + File.separatorChar + certs[i];
lo_fileinputstream = new FileInputStream(strCert);
X509Certificate servercacert;
servercacert = (X509Certificate)cert.generateCertificate(lo_fileinputstream);
lo_fileinputstream.close();
String s1 = servercacert.getSerialNumber().toString();
if(keyStore == null)
{
keyStore = KeyStore.getInstance("JKS");
keyStore.load(null, null);
}
keyStore.setCertificateEntry(s1, servercacert);
}
trustMgtFactory.init(keyStore);
sslContext.init(null, trustMgtFactory.getTrustManagers(), null);
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
catch (CertificateException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (KeyStoreException e)
{
e.printStackTrace();
}
catch (KeyManagementException e)
{
e.printStackTrace();
}
Dette giver giver følende exception:
java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:109)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:271)
at Webservice.main(Webservice.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
at sun.security.util.DerInputStream.getLength(DerInputStream.java:530)
at sun.security.util.DerValue.init(DerValue.java:346)
at sun.security.util.DerValue.<init>(DerValue.java:302)
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104)
... 7 more
Er der nogle der kan hjælpe mig med at få den hentet rigtig ud?
