EJBCA Web Service

import java.net.MalformedURLException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.xml.namespace.QName;

import org.ejbca.core.protocol.ws.client.gen.EjbcaWS;
import org.ejbca.core.protocol.ws.client.gen.EjbcaWSService;

public class Program {

public static void main(String[] args) {
EjbcaWS ejbcaws = null;  // A single instance is enough
//CryptoProviderTools.installBCProvider();
// TODO Auto-generated method stub
        System.setProperty ("javax.net.ssl.trustStore", "c:\\temp\\truststore.jks");
        System.setProperty ("javax.net.ssl.trustStorePassword", "changeit");
        System.setProperty ("javax.net.ssl.keyStore", "c:\\temp\\superadmin.p12");
        System.setProperty ("javax.net.ssl.keyStorePassword", "ejbca");    
           

        QName qname = new QName ("http://ws.protocol.core.ejbca.org/", "EjbcaWSService");
        EjbcaWSService service;
try {
//disableSslVerification();
javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
new javax.net.ssl.HostnameVerifier(){

   public boolean verify(String hostname,
           javax.net.ssl.SSLSession sslSession) {
       if (hostname.equals("linux")) {
           return true;
       }
       return false;
   }
});
service = new EjbcaWSService (new URL ("https://linux:8443/ejbca/ejbcaws/ejbcaws?wsdl"), qname);
ejbcaws = service.getEjbcaWSPort ();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("성공");
        System.exit(0);
}
/*private static void disableSslVerification() {
   try
   {
       // Create a trust manager that does not validate certificate chains
       TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {
           public java.security.cert.X509Certificate[] getAcceptedIssuers() {
               return null;
           }
           public void checkClientTrusted(X509Certificate[] certs, String authType) {
           }
           public void checkServerTrusted(X509Certificate[] certs, String authType) {
           }
       }
       };

       // Install the all-trusting trust manager
       SSLContext sc = SSLContext.getInstance("SSL");
       sc.init(null, trustAllCerts, new java.security.SecureRandom());
       HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

       // Create all-trusting host name verifier
       HostnameVerifier allHostsValid = new HostnameVerifier() {
           public boolean verify(String hostname, SSLSession session) {
               return true;
           }
       };

       // Install the all-trusting host verifier
       HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
   } catch (NoSuchAlgorithmException e) {
       e.printStackTrace();
   } catch (KeyManagementException e) {
       e.printStackTrace();
   }
}*/
}
//http://stackoverflow.com/questions/19540289/how-to-fix-the-java-security-cert-certificateexception-no-subject-alternative

댓글

이 블로그의 인기 게시물

Oracle NLS_DATE_FORMAT 변경

Stop console process using Ctrl+C.

Alternative to IValueConvert, QuickConverter