tst-labs / esocial

O esocial é o projeto que reune as iniciativas do TST para atender às necessidades do sistema eSocial do Governo Federal.
BSD 3-Clause "New" or "Revised" License
116 stars 70 forks source link

Dúvidas gerais sobre o uso #303

Closed Ramonrune closed 2 years ago

Ramonrune commented 2 years ago

Olá!

Primeiro, gostaria de parabenizar todos os envolvidos pelo projeto! Tenho algumas dúvidas:

1 - O projeto está com o cacerts atualizado para produção restrita? 2 - Qual o processo feito atualmente na atualização do cacerts ? 3 - Estou realizando a seguinte requisição:

{
    "tipoOcorrencia": "INFORMACOES_EMPREGADOR",
    "referencia": "...",
    "operacao": "INCLUSAO",
    "dataOcorrencia": 1522185432489,
    "dadosOcorrencia": {
        "ideEmpregador": {
            "tpInsc": 1,
            "nrInsc": "8 digitos"
        },
        "infoEmpregador": {
            "idePeriodo": {
                "iniValid": "2020-08"
            },
            "infoCadastro": {
                "classTrib": "01",
                "indCoop": 0,
                "indConstr": 0,
                "indDesFolha": 0,
                "indPorte": "S",
                "indOptRegEletron": 0
            }
        }
    }
}

O arquivo properties está nesse formato:

esocialjt.cnpj-empregador=8 digitos
esocialjt.ambiente=PRODUCAO_RESTRITA
esocialjt.arquivoCertificado=/config/esocial.pfx
esocialjt.senhaCertificado=senha
esocialjt.tpInscIdeTransmissor=2
esocialjt.nrInscIdeTransmissor=CPF COMPLETO
esocialjt.proxyServer=
esocialjt.proxyPort=
esocialjt.proxyUser=
esocialjt.proxyPassword=

Porem sempre que realizo a requisição ao serviço, recebo o seguinte erro: Erro na cadeia do certificado digital do signatário ou do solicitante da informação. Alguma ideia do que possa ser ?

ghost commented 2 years ago

Por aqui o cacerts está Ok.

O certificado é do tipo ICP Brasil? Possui algum alias? No caso de certificado usando CPF é preciso ter uma procuração eletrônica da empresa/órgão.

Ramonrune commented 2 years ago

Bom dia @tiagobentotst.

Segue a cadeia do certificado abaixo.

image

O CPF possui procuração eletrônica para acessar o CNPJ da empresa.

ghost commented 2 years ago

O nosso certificado é semelhante. Verifica se possui algum alias para o último certificado.

Ramonrune commented 2 years ago

Consegue notar algo estranho? Executei o seguinte código em Java para obtenção do alias:

File file = new File("D:\\Desktop\\teste.pfx");
InputStream is = new FileInputStream(file);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "";
keystore.load(is, password.toCharArray());

Enumeration<String> enumeration = keystore.aliases();
while (enumeration.hasMoreElements()) {
    String alias = enumeration.nextElement();
    System.out.println("alias name: " + alias);
    Certificate certificate = keystore.getCertificate(alias);
    System.out.println(certificate.toString());

}

Obtive o seguinte retorno:

alias name: nomecliente ofuscado00000000000
[
[
  Version: V3
  Subject: CN=OUTRO NOME:00000000000, OU=Certificado PF A1, OU=Videoconferencia, OU=0000000000, OU=AC INFOCO DIGITAL v5, O=ICP-Brasil, C=BR
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  params: null
  modulus: 
  public exponent: 65537
  Validity: [From: Tue Aug 17 14:07:00 BRT 2021,
               To: Wed Aug 17 14:07:00 BRT 2022]
  Issuer: CN=AC INFOCO DIGITAL v5, OU=AC SOLUTI v5, O=ICP-Brasil, C=BR
  SerialNumber: [    6c1b2108 1741bcba]

Certificate Extensions: 9
[1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: caIssuers
   accessLocation: URIName: http://ccd.acinfocodigital.com.br/lcr/ac-infoco-digital-v5.p7b
]
]

[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
                                        mX..
]
]

[3]: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:false
  PathLen: undefined
]

[4]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://ccd.acinfocodigital.com.br/lcr/ac-infoco-digital-v5.crl]
, DistributionPoint:
     [URIName: http://ccd2.acinfocodigital.com.br/lcr/ac-infoco-digital-v5.crl]
]]

[5]: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: []
[PolicyQualifierInfo: [
  qualifierID: 
  qualifier: 
]]  ]
]

[6]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  clientAuth
  emailProtection
]

[7]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Non_repudiation
  Key_Encipherment
]

[8]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  RFC822Name: 
  Other-Name: Unrecognized ObjectIdentifier: 2.16.76.1.3.1
  Other-Name: Unrecognized ObjectIdentifier: 2.16.76.1.3.6
  Other-Name: Unrecognized ObjectIdentifier: 2.16.76.1.3.5
]

[9]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
                                   ....
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:

]
Ramonrune commented 2 years ago

Em relação ao alias que perguntou, ele pode ocasionar algum problema em relação ao serviço do e-social ?

Ramonrune commented 2 years ago

Problema encontrado. O problema era em ambiente de produção estrita