Błąd HttpClient 403 podczas używania prawidłowego certyfikatu klienta

Próbuję zautomatyzować niektóre zadania na stronie internetowej przy użyciu Java. Mam prawidłowego klienta dla tej strony (działa, gdy loguję się przy użyciu firefox), ale wciąż próbuję zalogować się przy użyciu klienta http, otrzymując błąd 403. Zauważ, że chcę, aby mój sklep zaufania ufał wszystkim (wiem, że nie jest bezpieczny, ale w tym momencie nie martwię się o to).

Oto mój kod:

    KeyStore keystore = getKeyStore();//Implemented somewhere else and working ok
    String password = "changeme";

    SSLContext context = SSLContext.getInstance("SSL");
    KeyManagerFactory kmfactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    kmfactory.init(keystore, password.toCharArray());
    context.init(kmfactory.getKeyManagers(), new TrustManager[] { new X509TrustManager() {
        @Override
        public void checkClientTrusted(java.security.cert.X509Certificate[] arg0, String arg1)
                throws CertificateException {
        }
        @Override
        public void checkServerTrusted(java.security.cert.X509Certificate[] arg0, String arg1)
                throws CertificateException {
        }

        @Override
        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
        }
    } }, new SecureRandom());
    SSLSocketFactory sf = new SSLSocketFactory(context);

    Scheme httpsScheme = new Scheme("https", 443, sf);
    SchemeRegistry schemeRegistry = new SchemeRegistry();
    schemeRegistry.register(httpsScheme);
    ClientConnectionManager cm = new SingleClientConnManager(schemeRegistry);
    HttpClient client = new DefaultHttpClient(cm);

    HttpGet get = new HttpGet("https://theurl.com");
    HttpResponse response = client.execute(get);
    System.out.println(EntityUtils.toString(response.getEntity(), "UTF-8"));

Ostatnia instrukcja wypisuje błąd 403. Czego mi tu brakuje?

questionAnswers(2)

yourAnswerToTheQuestion