Page tree

Este documento descreve como configurar e-CPF para conexão segura em modo APR.

O Portal Web do SARA foi desenvolvido dentro do Protheus e é emulado para Web pelo Smart Client HTML que roda em cima de um servidor Apache Tomcat.

Para uso de autenticação via E-CPF, o servidor deve estar habilitado para conexão segura SSL e a maquina Cliente deve ter o E-CPF instalado assim como todas as cadeias de certificados do fornecedor para seu E-CPF.


Ferramentas necessárias pré instaladas e configuradas.

Openssl

Protheus 12.1.17 ou superior.

Smartclienthtml 

Servidor disponível para acesso via Web(IP fixo e cadastro no DNS, Domínio)


Divisão das partes.

Irei dividir os papeis em duas partes simples a primeira é o Servidor de Autenticação, a segunda é o Cliente que autentica no Servidor com e-CPF


Passos necessário para a configuração do Servidor. 

  1. Instalar o Openssl
  2. Gerar a solicitação de assinatura de certificado (CSR - Certificate Signing Request)
  3. Comprar um certificado digital 
  4. Transformar o arquivo PFX em PEM e baixar as cadeias de certificados da certificadora
  5. Configurar o Tomcat


1 Instale o Openssl.

Siga a instrução de instalação conforme o fornecedor.


2 Geração do CSR.

Este passo normalmente será realizado pelo analista de TI do Porto e não pelo nosso atendimento interno mas será descrito aqui caso você esteja fazendo consultoria no cliente.

Digite no prompt de comando a instrução para gerar a chave privada, será solicitado uma senha pense em uma que você irá lembrar usarei aqui 1234.

openssl genrsa -des3 2048 > chaveprivada.key

        Será gerado um arquivo contendo a chave privada conforme a imagem, esta chave não pode ser recriada ela é única guarde bem ela.

Digite no prompt de comando a instrução para gerar o CSR, algumas informações serão solicitadas 

openssl req -new -key chaveprivada.key > solicitacao.csr

        Country Name (e letter code): Nome do pais com duas letras aqui usarei o BR referente ao Brasil

        State or Province Name (full name) (Some-State): Nome do estado usarei Santa Catarina

        Locality name (eg, city) : Nome da          cidade usarei Joinville

        Organization Name (eg, company) (Intermet Widgits Pty Ptl): Nome da Empresa usarei TOTVS S/A

        Organization Unit Name (eg, section): Nome da unidade da empresa caso só tenho uma coloque o mesmo da anterior usarei TOVTVS Joinville SC

        Common Name (e.g. server FQDN or YOUR name): O nome comum é o seu nome na WEB seu endereço(Domínio) usarei portalweb.com.br

        Email Adress: email da empresa [email protected]

        A challenge password:  uma senha, este campo é opcional e eu deixarei em branco

       An optional company name: uma nova identificação de nome da empresa, este campo é opcional e eu deixarei em branco

        

       Será gerado o um arquivo que é o CSR solicitação da assinatura 

3 Comprar um certificado digital

Após a geração do CSR você precisa comprar um certificado digital para o domínio descrito no passo acima, entre em contato a sua certificadora de preferencia informado o CSR, algumas certificadora permitirão a inclusão do arquivo ou o conteúdo dele no formulário, após o tramite da compra você receberá o certificado que deverá estar em formato .pfx

       Meu certificado não veio em formato pfx. Veja como converter.


4 Transformar arquivo PFX em PEM

A partir daqui estamos no processo de configuração que não depende mais dos processos de compra, e o cliente irá fornecer este arquivo.

Para configurar o consumo do e-CPF no Tomcat iremos converter o arquivo PFX em PEM, separar o certificado da chave privada, também será necessário baixar a cadeia de certificados que será aceita, na parte 6 deste manual falaremos sobre o E-CPF que será usado no Cliente a cadeia configurada aqui deverá ser a mesma que o cliente irá comprar o e-CPF.


Digite no prompt de comando a instrução para extrair a chave em formato PEM. Será solicitado a chave do certificado que vccê comprou.
        openssl pkcs12 -in PORTAL_WEB.PFX -nocerts -out key.pem

Digite no prompt de comando a instrução para extrair o Cerificado em formato PEM
        openssl pkcs12 -in MULTILOG_SUL_ARMAZENS_GERAIS_LTDA.pfx -clcerts -nokeys -out cert.pem


Baixe a cadeia de certificados Raiz da certificadora que irá fornecer o certificado do Cliente que será instalado no navegador este arquivo costuma vir com extensão .cer arqui vou assumir que o nome dele é TrustCACerts.cer


5 Configurar o Tomcat

Dentro da instalação do Smart Client Html existe um Tomcat vá até o diretório server\conf e encontre o arquivo server.xml procure pela tag <Connector, haverá um previamente configurado na instalação, você pode modificar esta configuração ou simplesmente criar uma nova utilizando portas diferentes, vamos criar uma nova tag <Connector.

Veja como ficou no exemplo e modifique os campos que estão em vermelho para o nome e local dos arquivos correspondentes no seu ambiente

<Connector
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        port="9443"
        maxThreads="200"
        scheme="https"
        secure="true"
        SSLEnabled="true"
        SSLCertificateFile="C:\Temp\cert.pem"
        SSLCertificateKeyFile="C:\temp\key.pem"
        SSLCACertificateFile="C:\Temp\TrustCACerts.cer"
        SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
        SSLVerifyClient="required" />

.

A propriedade SSLVerifyClient está configurada como required o que significa que sempre será solicitado a autenticação via e-CPF ele pode também também assumir a opção optional caso deseja que a autenticação também possa ser utilizada a partir de usuário e senha e pode assumir none ou simplesmente não inclui-la caso não seja necessário a autenticação via e-CPF, os demais campos são a chave e certificados gerados nos passos anteriores e a porta que será usada para conexão.

 Reinicie o Smart Client Html.


6 Instalar certificado e-CPF no cliente. 

Após a compra do certificado e-CPF pelo cliente instale o certificado na maquina que será usada para acesso, instale as cadeias de certificado Raiz fornecida pela certificadora, fique atendo ao passo 4 pois o certificado e-CPF usado pelo cliente tem que pertencer a certificadora Raiz que foi configurada no passo 4



Conteúdo de exemplo da chave privada em formato PEM.

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,9FF0349B2DEDA3AC

E9DeZSI6OIUN+s6NAokzgPxtgqZJWLMAWdqzWLL7uERVgDSXvuGugYFW11WKCktd
pcyUuhF+KboOkeWbRI4LfhblnChw8YFEAipWmSs/X2i9XKLmR+yaeICjFms5h+In
ER26Qsa6cbHEOeiyvreSI9H7uSbt6tzYVRHkf4Hi01tvB9JEc+cASvcyzQMyzRFy
H8Ukf9BNFVim/aRbb8ymCu3I+mRB+me5Eqw7U1Zbc29SBMeIIsG9OyRHxWBUxQkY
7UXl2RqvFuiNtJk8v/I5Ja19/1N8WEKE3W+Ynbl0Fzm6YIjydQhZPQEW9wS1/7gh
8AFf34okFVzVnLuIrJC970yhMNB3aiYLAKPlWgj+QHRPWgXcYp5jI1c41KOtXOLS
EjU41SUPeowN0KmSoXqyo1M+y0AwMWHkjxeCGuKyIVsro9qq4WpJSNHy65cIoFoR
Ng+D1iBqbFA+lxMKKgOmMMsgnovBEq/zZrNLzeplHUjUbBW626dfgoaumTh0lWkV
Rs2RWQ6m8av/JnU4TBaU1hZ46BoFWSV/Du22TxGQm2cN9aPFcNDu7B7cgQff+DqV
a4vGbyJSA3YA6Vrm4RncCEdrVk3W+puKjk+CGrNPtQLwFu8s62s3SeiWQ39TZLvK
cq/Ocy1fS0/mXvW5jdAHSbalhHUAWferz1BTZPT/GJ/ZHWIqJ6HBSMWIYf8Dunbi
VwoXliTwYu82t7AgML7+vpouC4IwNnJ1z5Grli+Bp9LZipQbN9W/Duhsji8rI4oj
tssl5kZygxhC2bPhdJRXRI1QK+l9c22VSLrQ5OU3VpTYSdlFHIpCoz474i59/fH5
IObzc5EqnfySVzgK7HfshCm69xulr3ed1neZW5hjOOE5vj1yG1hbK9kLksr22baD
jzh0GCgF81CiYrknztmw0BIz8PeS3obysI29pHsWN+o/dvOMp4kzq3f0lC4ClDGI
RuCqPFXScviDPfxAh9k0c4ZU94c+4HIlxt0vFRpufn9RPAWN+f/iil7nIXZHKWsq
zKjomUqV+R6W7bLjbNBYWfsXmjqI4csm6YFmnIrrQDXbocfzi+7NTEJJl0+z6GBS
WqmBdymaW4OUWrcSvWxb2nAdGb/OsEa1qgqYlMnBiLy+pgfr1wfp4VjMKUaEXg7O
aoDuvUi5a6u7/p0lalqrBfLRYmIggdK+DJK6CnfsPXeFRFjHwvLjSF2p54nZ3+Mq
g8L9JhOVvlOhESCF/H47xVF6/fmOIMI114MMRZPJ3xp5kGIPW+dWG7l1qYxqcXAK
1WIrfv341pc7WuagnbGWrkltzb5sZxVmykMj4TJgS6iuGdB+ISPOetmGf3n6vcNH
6hUuvcw0/AxFGCDoqz5CgMXKy+Agp3VLPN3kDJO6nVqQpIkCYgviW5rv2NHYIUCJ
sgWrGOTwcYXLTZQNnPLLz4APZp9IanU4PuUUeW3tNNuAmfzbUcL1zDrbGWANZNVW
0jDVI5kJImkdz2c5tn7dadgZMgvp/F3NMSFFm2Na2s5f0fMuhJHH/LLh0uGX9C0N
Fjjjx/WFfJ3IG0NpGUd8Q+xrg9oEqCksHFIFU1qmHDYQCwq1c7SfWQh/B98gkdBf
-----END RSA PRIVATE KEY-----



Conteúdo de exemplo do solicitação de assinatura.

-----BEGIN CERTIFICATE REQUEST-----
MIIC7jCCAdYCAQAwgagxCzAJBgNVBAYTAkJSMRcwFQYDVQQIDA5TYW50YSBDYXRh
cmluYTESMBAGA1UEBwwJSm9pbnZpbGxlMRIwEAYDVQQKDAlUT1RWUyBTL0ExGzAZ
BgNVBAsMElRPVFZTIEpvaW52aWxsZSBTQzEZMBcGA1UEAwwQcG9ydGFsd2ViLmNv
bS5icjEgMB4GCSqGSIb3DQEJARYReXVyaUB0b3R2cy5jb20uYnIwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDjIuIKe97mT6Za57Nkkh6DSYSVwR+g2Qem
kQdHjWG9p57Bi4adJNCwxPeGVpZzOUGHg6KvBJQ0gsNADqVnin8aobgWqJmgbFla
lGlDKoPv9+WVN7ScMw1DL9K2aIIo4ZHsY8lk+SXq4gLlHyxZfukBQb77hh9dadpT
P88HLswpYDbnQ5abazeCtxiF8GrjrbZ91VyyTFcByYQkc7jsTCD/VY8a2rLRUocQ
RiFkJ8ZcV8lcMLHvZ/1Q6WVsEVF0ShMPBsMJzdGv+QjwQlPWT7TD7TzfXwx8OfPs
f6Zzk8tve2nP4aSHDZwnY3nwWtWCBXF4UkH+B7NzxJimidsuYtzjAgMBAAGgADAN
BgkqhkiG9w0BAQsFAAOCAQEAYc5IlgZvP9GHdkSBqrfrGtm7gfL91AnejvAumuGc
MI6p1GktWWKRxsIe3vTH7AjRwAxdfjygz2YTTxfQyechGv3RgsiNk6+0ixxSAxPr
x3WZtSlZnV8SeW1fEcz+K3SyftaLWyD0bwLucKaNcaAhPCJl9qkbF3dNZDeyFzuv
7jtR4alWrcG5nkDJKE6Ir22uw4J0WPJG7aRX1rbJkYHlvA8VhcTczx03TVlqQn3Y
bnqdU7idnRIRtRdnC4DS00gFZEDpClzU/PV42JOXlQNzFR4LcP3SbJCcC8qZIoEY
tjTchNQh4Ctceqwy2vrOPaYDz4cMJ6eKILImbC1QVcTNyA==
-----END CERTIFICATE REQUEST-----


Referencias

https://www.certisign.com.br/duvidas-suporte/certificado-servidor/gerar-csr/apache-openssl#