Validação de Cpf Direto da Receita

Olá estou querendo validar o cpf diretamente pelo site da receita federal https://servicos.receita.fazenda.gov.br/Servicos/CPF/ConsultaSituacao/ConsultaPublica.asp

É possível fazer esta validação passando os parâmetros pelo Java.
Pois não sei como fazer isto,se alguém puder me explicar como faço
Se alguém puder me ajudar ficarei muito grato

Tem uma discussão muito interessante aqui: Groups Google - Consulta cpf na receita federal.

pode me ajudar neste erro:

cookieCaptcha=mCM65vkqmC9Xo2b3Z4G+NE3EY5/Bf2GpY0W6waOS4I4=
{Accept-Charset=[ISO-8859-1,utf-8;q=0.7,*;q=0.7], Cookie=[cookieCaptcha=mCM65vkqmC9Xo2b3Z4G+NE3EY5/Bf2GpY0W6waOS4I4=], Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8], Referer=[https://servicos.receita.fazenda.gov.br/Servicos/CPF/ConsultaSituacao/ConsultaPublicaSonoro.asp], User-Agent=[Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0], Accept-Language=[pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3], Accept-Encoding=[gzip, deflate], DNT=[1]}
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl
CONSTRUÍDO COM SUCESSO (tempo total: 2 minutos 50 segundos)

Estou usando o Netbeans para isso e não sei como implemento o Https, esse é o código que consegui achar na net

package web;

import java.awt.BorderLayout;
import java.awt.Image;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Date;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

public class ValidarCpf {
public static void main(String[] args) {
    URL url;
    HttpURLConnection conn;
	try {
		//ativarProxy();
		//url do captcha
		
		url = new URL("http://www.receita.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image&v=" + new Date().getTime());
		conn = (HttpURLConnection) url.openConnection();
		       
        Image image = ImageIO.read(conn.getInputStream());	        

        //Exibir o captcha
        JFrame frame = new JFrame();
        JLabel label = new JLabel(new ImageIcon(image));
        frame.getContentPane().add(label, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
        //entrada do texto do captcha
         
        String idLetras = JOptionPane.showInputDialog("Digite o captcha");
        String headerName;
        String cookie = "";
        frame.dispose();
        
        //capturar o cookie
        for (int i=1; (headerName = conn.getHeaderFieldKey(i))!=null; i++) {
        	if (headerName.equals("Set-Cookie"))                  
        		cookie = conn.getHeaderField(i);          
        }
        
        cookie = cookie.split(";")[0];
        System.out.println(cookie);
        
        //url da consulta
        url = new URL("https://servicos.receita.fazenda.gov.br/Servicos/CPF/ConsultaSituacao/ConsultaPublicaSonoro.asp");
        //url = new URL("http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublicaExibir.asp");
     	        
        conn = (HttpURLConnection) url.openConnection();
        //cria os parametros	        
        String parametros = URLEncoder.encode("txtCPF", "UTF-8") + "=" + URLEncoder.encode("01715789377", "UTF-8");
        parametros += "&" + URLEncoder.encode("idLetra", "UTF-8") + "=" + URLEncoder.encode(idLetras, "UTF-8");            
        //parametros += "&" + URLEncoder.encode("idSom", "UTF-8") + "=";            
        parametros += "&" + URLEncoder.encode("Enviar", "UTF-8") + "=" + URLEncoder.encode("Consultar", "UTF-8");            
        
        conn.setDoOutput(true);
        conn.setDoInput(true);    
        conn.setInstanceFollowRedirects(false);
        conn.setRequestMethod("POST");
        
        //cookie = "cookieCaptcha=NTB/MXdqZAiFZsfiE5ZRQDJ7h564PBjvwIHdN9cbEog=";
        
        //seta as propriedades de request
        conn.setRequestProperty("Host", "www.receita.fazenda.gov.br");
        //conn.setRequestProperty("Cookie", URLEncoder.encode(cookie, "UTF-8"));
        conn.setRequestProperty("Cookie", cookie);
        conn.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0");
        conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        conn.setRequestProperty("DNT", "1");
        conn.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
        conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
        conn.setRequestProperty("Accept-Language", "pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3");
        conn.setRequestProperty("Referer", "https://servicos.receita.fazenda.gov.br/Servicos/CPF/ConsultaSituacao/ConsultaPublicaSonoro.asp");
        
        System.out.println(conn.getRequestProperties());
        DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
        wr.writeBytes(parametros);
        wr.flush();           
        
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String s = "";
        String parametroTotal = "";
        
        while (null != ((s = rd.readLine()))) {  
        	System.out.println("0"+s);
        	if(s.contains("Login")){
        		parametroTotal = s;
        	}
        } 
                               
       for (int i=1; (headerName = conn.getHeaderFieldKey(i))!=null; i++) {
        	System.out.println(headerName + ": " + conn.getHeaderField(i));
        	if(headerName.equals("Set-Cookie"))
        		cookie = conn.getHeaderField(i).split(";")[0] +"; "+ cookie;
       }

       wr.close();
       rd.close();
        
       String login = parametroTotal.split("Login=")[1].split("&")[0];
       String senha = parametroTotal.split("Senha=")[1].split("\"")[0];
       
       System.out.println(login);
       System.out.println(senha);
       
       //começa novo redirecionamento
       ///
       /////
       
       url = new URL("http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublicaExibir.asp");
        //url = new URL("http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublicaExibir.asp");
        conn = (HttpURLConnection) url.openConnection();
     	             	        
        //cria os parametros	        
       parametros = URLEncoder.encode("CPF", "UTF-8") + "=" + URLEncoder.encode("01715789377", "UTF-8");
       parametros += "&" + URLEncoder.encode("Login", "UTF-8") + "=" + URLEncoder.encode(login, "UTF-8");            
       parametros += "&" + URLEncoder.encode("Senha", "UTF-8") + "=" + URLEncoder.encode(senha, "UTF-8");            
       parametros += "&" + URLEncoder.encode("idLetra", "UTF-8") + "=" + URLEncoder.encode(idLetras, "UTF-8");            

       conn.setDoOutput(true);
       conn.setDoInput(true);    
       conn.setInstanceFollowRedirects(false);
       conn.setRequestMethod("GET");
       
       //seta as propriedades de request
       conn.setRequestProperty("Host", "www.receita.fazenda.gov.br");
       //conn.setRequestProperty("Cookie", URLEncoder.encode(cookie, "UTF-8"));
       conn.setRequestProperty("Cookie", cookie);
       conn.setRequestProperty("User-Agent", "Chrome");
       conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
       conn.setRequestProperty("DNT", "1");
       conn.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
       conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
       conn.setRequestProperty("Accept-Language", "pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3");
       conn.setRequestProperty("Referer", "http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublica.asp");
       
       
       System.out.println(conn.getRequestProperties());
       
       OutputStreamWriter wr2 = new OutputStreamWriter(conn.getOutputStream());
       wr2.write(parametros);
       wr2.flush();           
       
       rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
       
       while (null != ((s = rd.readLine()))) {  
    	   System.out.println(s);
       } 
       
     for (int i=1; (headerName = conn.getHeaderFieldKey(i))!=null; i++) {
        	System.out.println(headerName + ": " + conn.getHeaderField(i));   
       }

	} catch (Exception e) {
		e.printStackTrace();
	}  
}
}

O que faço agora @Iohannes

Como assim implementar o HTTPS (Hypertext Transfer Protocol Secure)? Creio, pela exceção que o acesso está exigindo validação por certificado digital. Tu tem um? Dê olhada aqui: HTTPS - Como Funciona?

Não posso usar o da receita mesmo? Pra este caso.

Pois o certificado ele criptografa as requisições feitas

Voce consegue validar sem digitar captcha ?

não tenho que digitar o captcha,pois senão da erro