Expresso:  Utilização do certificado digital na identificação do usuário.

      Preparando o ambiente no servidor:

       Os itens 1 até 4 configuram o aplicativo para possibilitar o uso do certificado digital.
       Se o expresso já estiver configurado para tal, passar para o item seguinte(5).

      1 - Acessar o módulo de “setup” do expresso( http://correiolivre.serpro/setup).

      2 – Acessar o bloco de administração do arquivo header.(parte inferior da tela)

      3 – Na seção relativa ao ExpressoLivre, marque para usar https e usar certificado digital.

      4 – Clicar no botão “escrever configurações”.

      5 – O apache deve estar configurado para utilizar https:

             Verifique no arquivo de configuração do ssl o parametro “SSLVerifyClient”
	que deve ser utilizado com um valor igual a  “none”, como mostrado abaixo:

               SSLVerifyClient none

      6 – Verificar se o usuario www-data é o proprietário das pastas  temp e crls, localizadas em
             /var/www/expresso/seguranca . O chmod das  pastas deve ser 755.

             Executar os comandos abaixo, se necessário, para adequar as pastas a estas recomendações.

              chown www-data:www-data /var/www/expresso/seguranca/temp   
              chown -R www-data:www-data /var/www/expresso/seguranca/crls
              chmod 755 /var/www/expresso/seguranca/temp                 
              chmod 755 /var/www/expresso/seguranca/crls        

       7 – Editar a crontab do usuario www-data(usuario do apache), adicionando a linha
               abaixo( uma única linha):	

             15 * * * * wget http://ccd.serpro.gov.br/lcr/serproacfv1.crl -O /var/www/expresso/seguranca/crls/serproacfv1.crl

 
      8 – Obter uma primeira versão da lista de certificados revogados, executando os comandos            
            abaixo:

            sudo su - www-data
            wget http://ccd.serpro.gov.br/lcr/serproacfv1.crl -O /var/www/expresso/seguranca/crls/serproacfv1.crl

       9 – O arquivo “Verifica_Certificado_conf.php” contém o apontamento para elementos
              necessários ao processamento dos certificados digitais.

            Editar o arquivo “/var/www/expresso/seguranca/classes/Verifica_Certificado_conf.php”,
            alterando a linha:

	$GLOBALS['CAs']  =         '/var/www/expresso/seguranca/cas/xxxx.xxx';

            Copiar para a pasta  '/var/www/expresso/seguranca/cas' o arquivo contendo a cadeia dos 
	certificados das autoridades certificadoras( o mesmo arquivo utilizado pelo apache) .
            Substituir o xxxx.xxx pelo nome do arquivo copiado.

Breve descrição dos componentes da solução certificado digital no lado do servidor

          A  - vercert.php
                           
                           Localização:   /var/www/expresso/seguranca 

                           Função:         Invocado pela applet java.
                                                 Recebe o certificado digital passado pela applet java.
                                                 Valida o cetificado e retorna um código de status, CPF e senha
                                                 criptografada buscada no rhds.
                                                 Esta senha foi criptografada usando a chave pública do dono do 
                                                 certificado.

         B  - funcoes_auxiliares.php
                           
                           Localização:   /var/www/expresso/seguranca/classes
 
                           Função:         Armazena várias  funções comuns a todos os módulos..
.              

          C  - CertificadoB.php
                           
                           Localização:   /var/www/expresso/seguranca/classes 

                           Função:         Invocado pelo módulo vercert.php.
                                                 Recebe o certificado digital.
                                                 Retorna um array com os dados do certificado.

          D  - Verifica_Certificado.php
                           
                           Localização:   /var/www/expresso/seguranca/classes 

                           Função:         Invocado pelo módulo vercert.php.
                                                 Recebe o certificado digital.
                                                 Retorna true se o certificado for válido, caso contrário retorna false.

          E  - Verifica_Certificado_conf.php
                           
                           Localização:   /var/www/expresso/seguranca/classes 

                           Função:         Invocado pelos módulos  /var/www/expresso/seguranca/classes.
                                                 Contém configuração da localização de arquivos necessários as
                                                 funções de verificação do certificado digital

          F  - criptar_verificar.php
                           
                           Localização:   /var/www/expresso/seguranca/classes 

                           Função:         Contém as funções para criptografar mensagens e verificar a
                                                 assinatura digital de mensagens.