Ir para o conteúdo

Implantação

A implantação de um peer é o processo de configurar uma máquina com os softwares necessários e realizar seu ingresso na rede blockchain do Cadastro Compartilhado da Receita Federal, sempre com atenção aos requisitos de segurança.

Após a adesão ao b-Cadastros, o participante deverá entrar em contato com o Serpro para iniciar o processo de implantação, informando os parâmetros de sua infraestrutura. Esses parâmetros serão usados para configurar um script de instalação e ingresso, que será enviado de volta por e-mail ao participante. A partir daí, o participante assume o controle do processo de implantação do seu peer.

Os parâmetros que o participante deve fornecer na solicitação de implantação são:

Arquivo do certificado digital

Por definição, o arquivo do certificado digital é o certificado digital em si, geralmente com a extensão .p7b, .pem, .crt ou .cer. Um certificado pode ser adquirido pelo participante junto à Autoridade Certificadora (AC) de sua preferência, desde que atenda aos requisitos técnicos.

Autoridades Certificadoras

Uma lista de Autoridades Certificadoras pode ser consultada no site do Instituto Nacional de Tecnologia da Informação - ITI.

Como as ACs adotam diferentes padrões e formatos de arquivos, o participante pode consultar sua AC para saber qual arquivo enviar para o Serpro ou consultar a seção "Procedimentos para conversão de formatos de certificados e chaves" para realizar as conversões necessárias. Nunca deve ser enviada a chave privada.

Dica

Se o participante adquiriu seu certificado digital do tipo Equipamento A1 Arquivo junto ao Serpro, ele pode enviar diretamente o arquivo terminado em .p7b. Consulte a demonstração de criação de certificado digital do SERPRO, neste site, para conhecer o arquivo .p7b e entender como é gerado.

Faixa de IPs de saída

Todo computador ligado a uma rede possui um endereço nesta rede, chamado de IP. Quando um computador se comunica com outro através da Internet, ele pode aparecer para esse outro computador com um endereço IP diferente daquele que tem em sua própria rede. Isso acontece porque a comunicação via Internet envolve entrepostos que intermedeiam essa troca de informações.

O IP apresentado por um computador a outro na Internet é chamado de IP de saída, porque é o endereço da máquina através da qual a comunicação sai para a Internet. É esse IP que precisa ser fornecido ao SERPRO para configuração dos sistemas de segurança da rede b-Cadastros.

Caso o participante não saiba qual é o IP de saída da máquina que vai receber o b-Cadastros, ele deve requisitar essa informação ao profissional responsável pela configuração de rede de seu órgão ou empresa.

Atenção! O peer nunca deve ser exposto para acesso via Internet.

O acesso ao peer deve ser feito apenas pelas aplicações/sistemas que precisam consultar as bases autorizadas. Tornar o peer acessível pela Internet é um sério risco para a proteção dos dados pessoais nele armazenados. Antes de instalar o peer recomendamos que sejam atendidos todos os requisitos de segurança.

Instalação do peer

Atendidos os pré-requisitos, o participante receberá por e-mail o comando para download do script de instalação do peer.

Como referência, disponibilizamos um vídeo com a execução de todo o processo de instalação em: https://bcad-prod-publico.s3.i02.estaleiro.serpro.gov.br/instalacao_bcadastros.mp4

Atenção!

Caso o peer faça uso de proxy para acesso à Internet, siga as recomendações para peers que fazem uso de proxy HTTP antes de prosseguir com a instalação."

Utilize um multiplexador de terminais

Como o processo de instalação do peer pode demorar várias horas, é fortemente recomendada a utilização de um multiplexador de terminais como tmux ou screen. Isso evita que o processo de instalação seja interrompido indesejadamente, seja por inatividade da sessão SSH do administrador, por problemas de rede ou até mesmo pelo terminal ter sido fechado acidentalmente.

Caso não conheça nenhuma dessas ferramentas, recomendamos que siga um dos vários tutoriais existentes na web, tanto para tmux como para screen , que ensinam o básico necessário para iniciar a instalação do peer com segurança.

Abaixo estão listados os comandos básicos de cada multiplexador, apenas como referência.

Ação desejada Comando
Iniciar uma sessão com nome "instala_peer" tmux new -s instala_peer
Desanexar de uma sessão Ctrl + b e depois d
Reanexar à sessão "instala_peer" tmux attach -t instala_peer
Listar sessões ativas tmux ls
Sair de uma sessão Anexado à sessão, digite exit

*Referência: Como usar o Tmux + Lista de Comandos

Ação desejada Comando
Iniciar uma sessão com nome "instala_peer" screen -S instala_peer
Desanexar de uma sessão Ctrl + a e depois Ctrl + d
Reanexar à sessão "instala_peer" screen -r instala_peer
Listar sessões ativas screen -ls
Sair de uma sessão Anexado à sessão, digite exit

*Referência: Como Instalar e Usar o Screen Linux

O usuário administrador deve logar no peer e utilizar o comando enviado por e-mail para realizar o download do script de instalação. Após fazer o download, deve-se iniciar uma sessão do seu multiplexador de terminais preferido (tmux ou screen, veja acima) e, de dentro da sessão, executar o script com o comando abaixo:

sudo bash instalacao_bcadastros.sh

Será exibida a seguinte tela:

Tela com o início da instalação do peer b-Cadastros

No início da execução este script irá solicitar os caminhos onde se encontram o certificado digital e a chave privada emitidos para o peer.

Atenção! Os certificados devem estar no formato PEM

Os certificados devem estar no formato PEM. Neste formato, um certificado inicia com a seguinte linha:
-----BEGIN CERTIFICATE-----

Outros formatos comuns, como DER e PKCS7 não são suportados pelo peer. Além disso, a chave privada não deve estar encriptada com senha. Para mais informações sobre conversão de formatos, consulte a seção "Procedimentos para conversão de formatos de certificados e chaves.

Dicas rápidas

Conversão do certificado em formato DER para formato PEM:

 openssl x509 -inform der -in <SERVER>.DER -out <SERVER>.crt

Decriptografar a chave privada, para retirar a senha:

 openssl rsa -in <SERVER-ENC>.key -out <SERVER>.key

Com os arquivos nos formatos corretos, digite os caminhos conforme o seu caso e tecle enter:

Tela com os prompts para os certificados do peer

Em seguida, o script iniciará uma série de tarefas automatizadas, que não requerem intervenção manual do operador. Como pode demorar várias horas para o download e a carga inicial das bases, é importante que a execução do script não seja interrompida. Para isso, utilize sempre um multiplexador de terminais (tmux ou screen). Veja no início desta seção como fazê-lo.

Caso o terminal tenha sido fechado ou a sessão SSH tenha sido interrompida durante a execução do script, reestabeleça a conexão e reanexe à sessão do seu multiplexador de terminais (tmux ou screen) para continuar acompanhando a instalação.

Caso ocorra algum problema e o script seja interrompido, o mesmo poderá ser executado novamente!

No caso de não ser possível dar continuidade à instalação, o problema deve ser informado ao Serpro, enviando a saída de erro da execução do script através de um pedido de suporte.

Ao final da instalação, a tela abaixo será apresentada:

Tela com mensagem de sucesso para a instalação do peer

Validação da instalação do peer

Após a instalação é possível verificar se todos os serviços estão no ar, com o seguinte comando:

sudo docker ps -a

Tela com a lista dos contêineres do docker

A coluna “STATUS” mostra que os serviços estão rodando normalmente (“UP”)

Caso queira verificar logs, basta executar o seguinte comando:

sudo docker logs <nome do contêiner> 

Tela com um exemplo de log de um contêiner

Monitoração básica do peer

O peer pode ter seu status monitorado de forma básica através do endpoint de monitoração:

https://<ip_ou_dns_do_peer>:6984/monitoracao

Esta interface gráfica irá mostrar a saúde do peer, incluindo o status de sincronização de cada base com a rede b-Cadastros.

Atenção

Após a finalização da instalação o peer inicia um processo de sincronização com a rede que pode levar algum tempo, portanto, aguarde até que todas as bases estejam sincronizadas.

Gerenciamento dos serviços do peer

Após a completa instalação do peer, seus serviços podem ser encerrados e iniciados através de dois comandos:

sudo /etc/hyperledger/fabric/peer/stop.sh
sudo /etc/hyperledger/fabric/peer/start.sh

Atenção

Os comandos acima realizam a parada e o início, respectivamente, dos contêineres do peer e só devem ser utilizados em casos de manutenção do sistema, para a realização de backup ou na solução de algum problema.

Credenciais de acesso

Ao final da implantação as credenciais de acesso são gravadas no arquivo /etc/hyperledger/fabric/peer/credencial_couchdb do peer, no formato usuário:senha. Essas credenciais devem ser utilizadas para consultas ao CouchDB, conforme documentado na seção Utilização.

Recomendações para peers que fazem uso de proxy HTTP

Caso seja necessária a utilização de um proxy para acesso à Internet, o peer deve ser configurado com as variáveis http_proxy e https_proxy (em minúsculas) de forma global.

Para isso, inclua a definição das variáveis no arquivo /etc/environment e reinicie o sistema operacional.

http_proxy=http://SERVIDOR:PORTA/
https_proxy=http://SERVIDOR:PORTA/

As variáveis de proxy devem estar em letras minúsculas.

Procedimento de Backup do Peer

Atenção!

Os scripts de backup e restore disponibilizados abaixo, servem apenas como referência e não fazem parte do b-Cadastros.

É uma boa prática realizar backups periódicos das seguintes pastas do peer:

  • /etc/hyperledger
  • /var/lib/docker/volumes/peer_couchdata
  • /var/lib/docker/volumes/peer_peerdata
  • /var/opt/bcadastros

Durante o backup, é recomendável parar a execução dos serviços do peer para evitar inconsistências durante o restore.

Para a execução do backup, disponibilizamos um script bash que poderá ser utilizado como referência. Visualize o conteúdo do script para entender seu funcionamento e para adaptá-lo às suas necessidades.

Download do script para backup do peer:

curl -k -s "https://s3.i02.estaleiro.serpro.gov.br/bcad-prod-publico/backup/backup-peer.sh" -o backup-peer.sh

Procedimento de Restore do Peer

Para a restauração do peer, basta recuperar as pastas que foram salvas no backup:

  • /etc/hyperledger
  • /var/lib/docker/volumes/peer_couchdata
  • /var/lib/docker/volumes/peer_peerdata
  • /var/opt/bcadastros

e iniciar os contêineres utilizando o seguinte comando:

sudo /etc/hyperledger/fabric/peer/start.sh

Caso seja necessário reinstalar o peer e recuperar a rede à partir do backup, disponibilizamos um script bash que poderá ser utilizado como referência:

Download do script para restore do peer:

curl -k -s "https://s3.i02.estaleiro.serpro.gov.br/bcad-prod-publico/backup/restore-peer.sh" -o restore-peer.sh

Procedimento de Substituição do Certificado TLS do peer

Os certificados de TLS do tipo A1 da ICP-Brasil geralmente possuem validade de 1 (um) ano. O peer utiliza um certificado desse tipo para a comunicação com a rede b-Cadastros e caso o certificado do peer esteja expirado, essa comunicação não ocorre. Portanto, o procedimento a seguir deve ser utilizado quando um novo certificado for emitido para substituir o certificado TLS que irá expirar.

É requisito que o novo certificado seja emitido com o mesmo CN (common name) do certificado anterior!

Fornecemos um script que automatiza a troca destes certificados. Antes de executá-lo, garanta que os novos arquivos estejam salvos no peer: Certificado, Chave privada e CA, este último apenas caso seja diferente da anterior.

Download do script para troca do certificado do peer:

curl -k -s "https://s3.i02.estaleiro.serpro.gov.br/bcad-prod-publico/tls-certs/troca_tls_cert.sh" -o troca_tls_cert.sh

Execução do script:

sudo bash troca_tls_cert.sh

Este script irá solicitar o caminho do certificado, chave privada e caso necessário a CA do certificado a ser atualizado, fará as verificações necessárias, solicitará ao core da rede blockchain a troca e fará as cópias necessárias no peer do participante, reiniciando os serviços do peer ao final.

Por fim, verifique por erros de TLS no log do peer com o comando a seguir:

sudo docker logs $(sudo docker ps -a | grep "fabric-peer" | awk '{print $1}')

Caso apareçam erros de TLS no log do peer, acione o suporte.

Procedimentos para conversão de formatos de certificados e chaves

Para utilização no peer b-Cadastros, é necessário que o certificado de TLS/SSL e sua respectiva chave privada estejam no formato PEM. Ao obter um certificado de uma Autoridade Certificadora da ICP-Brasil o arquivo poderá vir em um formato não aceito pelo peer, como PKCS7 ou DER, portanto será necessário convertê-lo para PEM antes de iniciar o procedimento de instalação. Além disso, é preciso que a chave privada, geralmente com extensão .key, não esteja encriptada com senha.

Para esses procedimentos de conversão pode ser utilizada a ferramenta openssl, disponível em qualquer distribuição Linux, inclusive no próprio peer. Verifique o formato ou a extensão do arquivo do seu certificado e utilize um dos comandos sugeridos nesta seção para realizar as conversões necessárias.

Como descriptografar a chave privada e retirar a senha

No procedimento de solicitação do seu certificado a Autoridade Certificadora pode ter orientado para a criação de uma chave privada criptografada. Isso faz com que seja necessário digitar uma senha sempre que a chave privada for utilizada. Como o peer b-Cadastros não suporta chaves criptografadas, utilize o comando a seguir para obter um arquivo de chave privada sem senha:

openssl rsa -in <chave_privada_com_senha.key> -out <chave_privada_sem_senha.key>

O resultado do comando será a criação do arquivo informado em <chave_privada_sem_senha.key>. Este é o arquivo de chave privada que deverá ser informado no script de instalação do peer.

Como identificar o tipo e o formato do seu certificado

Um certificado no formato PEM é um arquivo do tipo texto, que geralmente possui a extensão .pem, .crt ou .cer, e começa com a linha -----BEGIN CERTIFICATE-----.

Exemplo de um arquivo de certificado digital no formato PEM
cat dfcdsrvv10978.crt
-----BEGIN CERTIFICATE-----
MIIEfzCCA2egAwIBAgIBBDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJCUjEP
MA0GA1UECgwGU0VSUFJPMRcwFQYDVQQLDA5iQ2FkYXN0cm9zLUNJTjEqMCgGA1UE
AwwhVExTIEFDIFJhaXogYkNhZGFzdHJvcyBDSU4gREVTIHYxMB4XDTIzMDUyNDEy
MzU1MVoXDTMzMDUyMTEyMzU1MVowgfcxCzAJBgNVBAYTAkJSMQswCQYDVQQIDAJE
RjERMA8GA1UEBwwIQlJBU0lMSUExDzANBgNVBAoMBlNFUlBSTzEXMBUGA1UECwwO
YkNhZGFzdHJvcyBDSU4xGDAWBgNVBAsMD0Rlc2Vudm9sdmltZW50bzEUMBIGA1UE
CwwLc2VycHJvZHJpdmUxJDAiBgNVBAMMG2RmY2RzcnZ2MTA5Nzguc3J2LmNkLnNl
cnBybzEXMBUGA1UEBRMOMzM2ODMxMTEwMDA0NDExGjAYBgNVBA8MEUdvdmVybm1l
bnQgRW50aXR5MRMwEQYLKwYBBAGCNzwCAQMMAkJSMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEA4Bb+mqK+oO1A0AsFbLq3+rNlZanrpKsFuZziaiBsWMvn
YclJi07jNUabLuL5sEQnJWCPnyOHVzPK4zJgy1zTXq7g+0/sGb/+50tWtCPeoLFZ
USx61QWv4SeYkCA7uxd9VSrrulVVLDo7B1hHByxqpsqZSRyx1OCgboUfHjS1f5sb
tMIdxhL6fQZdXpAy6lFHXVF+09eha6GTTso4YHI6ZvV60ASol2YLTY8+s6DNInra
MxplBXcr7WvO76RNu3f15Gj2o84/Fi6Vsr5GCkU28eIJtmTjtSDUqywA+PIa54ez
qk5xdp2E4ip1h3CG5iZ0YjNByPMeAffoJSN4yuqUjwIDAQABo4GoMIGlMCYGA1Ud
EQQfMB2CG2RmY2RzcnZ2MTA5Nzguc3J2LmNkLnNlcnBybzAMBgNVHRMBAf8EAjAA
MB0GA1UdDgQWBBRpFwOS8vlsQVIOJkW0sHpIQKdZ0jAfBgNVHSMEGDAWgBTKWiTj
ylsMkS8vh/C+rz8pcP10vjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB
BQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4IBAQA7FG5GeWKJxNqlroLm
EGnTbsPwYR+AXEuIn71NMNaCW41rlXDzVV8pX+eCoUyELDWpcsyFGinHseoHoS8N
Sur5huzwmSTA68q8gArWZPh8PDjrhtiBSRG7WegkK5vCfprpcXUsnMKqm7ZJK1kx
4lRCppckqYAqzemttiakXyvKGV6OqweBN570xSS+GEo8PMJJqO0prYU+Bi0xmpg2
39szXmCDV743Mwjrf8DJmvWeCsBi8s+EFLI8xI4TFF0DNOXPRve0VOTmpOOEXcr3
vES1o5oNBgESkcY3Ti9XDFLNmOxUiYQO3JrStcuUkjrsN50mhW+gM03XhLRtTE+9
OFvh
-----END CERTIFICATE-----

Já certificados no formato DER são do tipo binário e não podem ser visualizados em um editor de textos. Geralmente possuem as extensões .der ou .cer e não são suportados pelo peer.

Por fim, arquivos do tipo PKCS7 possuem extensão .p7b, podem estar no formato PEM ou DER e geralmente guardam uma cadeia completa de certificados, ou seja, contém não só o certificado final, mas também o certificado do emissor deste e até o certificado da AC raiz, tudo em um mesmo arquivo. Esse tipo também não é suportado pelo peer.

Para identificar qual é o tipo e o formato do seu certificado, além de observar a extensão do arquivo, utilize o comando file. Dependendo do resultado, siga um dos procedimentos sugeridos para realizar as conversões necessárias para que o certificado esteja no formato suportado pelo b-Cadastros.

file <arquivo_do_certificado>

Resultado do comando file para certificados de diferentes tipos e formatos

file certificado.der
certificado.der: Certificate, Version=3, Serial=00d7d7b39b8ef8b881, not-valid-before=2021-04-29 16:09:02 GMT, not-valid-after=2032-07-01 12:00:02 GMT

Este certificado também poderia ter a extensão .cer, mas não é compatível com o peer b-Cadastros. Clique aqui para saber como converter um certificado DER para PEM.

file certificado.p7b
certificado.p7b: data

Este certificado não é compatível com o peer do b-Cadastros. Clique aqui para saber como converter um certificado PKCS7 DER para PKCS7 PEM. Depois veja como extrair os certificados do arquivo .p7b e então como identificar qual é o do seu peer.

file certificado.p7b
certificado.p7b: ASCII text

Embora esteja em formato PEM, o peer não suporta arquivos do tipo PKCS7, pois ele contém vários certificados. Clique aqui para saber como extrair os certificados de um PKCS7 e depois veja aqui como identificar o conteúdo de cada arquivo.

file certificado.pem
certificado.pem: PEM certificate

Este certificado é compatível com o peer b-Cadastros e também poderia ter a extensão .crt ou .cer. Clique aqui para saber como visualizar o conteúdo do certificado ou identificar para quem ele foi emitido.

Como converter um certificado DER para PEM

Para converter um arquivo com extensão .der para PEM, utilize o seguinte comando:

openssl x509 -inform der -in <certificado.der> -out <certificado.pem>

Com o certificado convertido para PEM, utilize os comandos de visualização de certificados PEM para confirmar que está tratando com o arquivo correto.

Como converter um arquivo do tipo PKCS7 do formato DER para PEM

Caso seja um arquivo .p7b no formato DER, utilize o comando abaixo para convertê-lo para PEM:

openssl pkcs7 -inform DER -in <certificado.p7b> -out <certificado-pem.p7b>

Com o arquivo convertido para PEM, veja a seguir como extrair os certificados do .p7b.

Como extrair os certificados de um arquivo tipo PKCS7

Um arquivo no formato PKCS7, ou seja, com a extensão .p7b, pode guardar não apenas o certificado digital emitido, como também os demais certificados que compõem toda a cadeia de emissão. Dessa forma, para utilizar esse certificado no peer será necessário separar o certificado digital do peer dos demais que compõem a cadeia. Nos comandos a seguir substitua certificado.p7b pelo caminho do seu arquivo PKCS7.

Para extrair de um .p7b em formato PEM os certificados individuais, utilize o comando abaixo:

openssl pkcs7 -in <certificado.p7b> -print_certs | tr -s '\n' | grep -v 'subject\|issuer' | csplit -szf certificado- -b '%02d.pem' - '/-----END CERTIFICATE-----/1' '{*}'

Como resultado serão gerados arquivos com nomes certificado-XX.pem, onde "XX" representa o número do certificado na ordem em que aparece dentro do arquivo .p7b. Por fim, utilize os comandos de visualização de um certificado digital PEM para saber qual deles é o certificado do peer.

Como visualizar um certificado digital PEM

Para visualizar o conteúdo em forma legível de um certificado digital que já está no formato PEM, utilize o comando abaixo:

openssl x509 -noout -text <certificado.pem>
Exemplo de um certificado digital em forma legível com o openssl
openssl x509 -noout -text dfcdsrvv8725.pem
Certificate:
Data:
    Version: 3 (0x2)
    Serial Number:
        c4:99:9c:fc:f6:08:30:50:d5:10:85:fa
    Signature Algorithm: sha512WithRSAEncryption
    Issuer:
        countryName               = BR
        organizationName          = ICP-Brasil
        organizationalUnitName    = Autoridade Certificadora Raiz Brasileira v10 SSL HML
        commonName                = Autoridade Certificadora do SERPRO SSLv3 - Hom
    Validity
        Not Before: May 15 14:03:25 2023 GMT
        Not After : May 14 14:03:25 2024 GMT
    Subject:
        countryName               = BR
        stateOrProvinceName       = DF
        localityName              = BRASILIA
        organizationName          = SERPRO
        organizationalUnitName    = presencial
        organizationalUnitName    = Equipamento A1
        organizationalUnitName    = ARSERPRO
        organizationalUnitName    = Autoridade Certificadora do SERPRO SSLv3 - Hom
        serialNumber              = 33683111000107
        commonName                = dfcdsrvv8725.srv.cd.serpro
        businessCategory          = Business Entity
        jurisdictionCountryName   = BR
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
            Public-Key: (2048 bit)
            Modulus:
                00:ac:86:53:24:15:51:fd:9f:1f:d3:c8:4f:d8:52:
                30:b5:3a:02:45:ad:91:92:82:da:2e:d6:03:35:18:
                23:5c:e1:6e:a4:23:e2:21:04:48:ef:5b:f7:27:c7:
                54:f4:17:4c:54:18:c2:a9:39:77:eb:29:93:ee:26:
                7c:6c:74:e3:95:1b:4c:f2:3f:04:3c:b1:99:a5:ae:
                e7:e9:e5:6e:34:f0:ab:18:9d:c1:22:4b:66:d4:c5:
                f6:5a:60:73:61:51:12:12:45:e4:57:13:e9:47:cb:
                4f:9e:e9:0a:c0:96:65:61:6f:db:c7:a4:56:da:1a:
                5b:dc:51:76:4c:05:8b:38:a6:2a:65:5e:e7:02:c9:
                84:fb:0d:52:3b:fd:d8:87:6b:26:14:bb:cc:4d:46:
                61:e6:ca:43:c5:72:7f:31:38:3c:5a:07:4b:60:00:
                92:b2:29:3f:c7:18:89:46:10:1d:b3:12:58:90:26:
                5e:ab:61:4b:69:d3:12:7f:97:6e:c9:a7:44:a8:7a:
                49:40:d6:c5:a3:28:9d:70:c0:9f:f7:85:27:35:a0:
                c5:3d:8d:80:9b:1c:f5:cd:77:d8:64:0d:20:88:bd:
                db:31:d5:2d:12:bc:57:74:cd:ed:cf:05:ed:6f:50:
                7d:d4:ef:7a:92:cb:9c:2a:2d:3f:ac:f6:76:d7:ee:
                eb:11
            Exponent: 65537 (0x10001)
    X509v3 extensions:
        X509v3 Authority Key Identifier:
            25:4E:84:82:D4:9A:68:18:04:68:8B:6D:0E:FF:B3:89:D1:D1:65:AD
        X509v3 CRL Distribution Points:
            Full Name:
              URI:http://repositoriohom.serpro.gov.br/lcr/acserprosslh3.crl
        Authority Information Access:
            CA Issuers - URI:http://repositoriohom.serpro.gov.br/cadeias/serprosslh3.p7b
            OCSP - URI:http://ocsp-hom.serpro.gov.br/acserprosslh3
        X509v3 Subject Alternative Name:
            DNS:dfcdsrvv8725.srv.cd.serpro
        X509v3 Key Usage: critical
            Digital Signature, Key Encipherment
        X509v3 Extended Key Usage:
            TLS Web Server Authentication, TLS Web Client Authentication
        X509v3 Certificate Policies:
            Policy: 2.23.140.1.2.2
            Policy: 2.16.76.1.2.1.105
              CPS: http://repositoriohom.serpro.gov.br/docs/dpcserprossl.pdf
Signature Algorithm: sha512WithRSAEncryption
Signature Value:
    52:2c:6f:29:52:f9:d1:35:11:4d:7a:8b:ac:0b:53:71:28:3f:
    14:0f:af:c5:44:8d:e7:67:0d:43:24:b7:f5:1a:bb:4a:1b:d6:
    19:73:15:f8:ed:e2:8d:55:4e:db:20:a4:55:d0:9a:d1:18:79:
    77:cc:8b:29:ad:56:88:66:3f:8b:8b:7b:c2:cc:10:3f:63:1e:
    70:2d:68:b0:3f:4c:a0:b0:09:be:5a:92:a0:9c:0d:8b:e3:f4:
    1b:85:0a:97:ee:df:3d:49:d0:c4:ca:33:cf:50:e8:9a:35:5f:
    b0:c0:2c:9d:cf:40:07:c1:13:a0:2b:ed:02:22:f7:ca:60:ef:
    84:06:83:65:cf:ec:17:e5:a2:6e:66:b8:af:9c:8e:15:b3:55:
    a5:7f:f0:01:11:1d:13:0a:8f:8e:f8:6d:69:ea:df:2e:32:76:
    fa:bb:50:f4:fc:af:53:e1:3e:83:ac:df:b0:26:45:ce:83:ce:
    95:6a:0e:16:8b:48:bf:e9:15:f2:db:06:b3:25:14:9f:4f:0d:
    7b:79:39:01:a4:de:6e:e7:a2:89:56:47:53:9a:bb:fb:75:47:
    e1:f4:f7:6b:18:37:59:ff:db:24:c5:4f:79:ec:3b:e5:65:6e:
    67:4c:0e:ef:89:5b:f9:3a:fc:95:b5:20:80:4b:c6:54:7d:7d:
    34:dc:e8:ff:73:9a:34:c9:0d:48:8f:cb:00:0b:ce:4d:4f:ad:
    34:1f:ac:0e:2d:5c:3d:98:0c:6e:cb:61:84:39:b4:d9:2c:80:
    4d:2c:a1:ce:a2:14:2a:dc:1a:9a:71:27:9d:52:91:1d:cb:39:
    15:6c:4d:d0:51:9e:87:8b:ba:34:31:20:6a:6b:aa:10:6b:fb:
    7d:df:bb:ac:2a:f9:f0:2c:47:7d:7c:ee:34:42:de:f2:c3:54:
    26:3d:f9:59:f3:55:c7:6e:b7:c1:0d:a3:20:b2:7e:c6:91:91:
    ae:08:ef:b4:f7:24:cd:9b:34:30:19:3e:ea:59:cb:a5:5e:05:
    f8:8b:78:6e:fe:52:3e:ec:21:42:84:9b:58:b3:4a:84:ff:69:
    53:ef:ba:4f:4c:96:bc:a7:81:5a:f4:43:d1:f8:be:9d:43:51:
    19:1a:5a:37:9b:1e:30:21:80:c5:ea:a3:eb:ee:dc:e5:07:91:
    7c:13:a7:d7:a6:30:00:82:c3:d2:3e:d1:31:8a:0b:55:e6:47:
    bd:0b:a1:74:b9:85:71:55:72:db:cd:2a:20:20:f0:07:43:ca:
    5d:cf:b3:70:dc:51:ec:01:bd:4d:9c:65:74:51:18:b1:62:35:
    42:14:f2:2f:d7:ca:32:4a:68:98:ce:d9:eb:b5:82:82:dd:19:
    0e:21:69:dc:97:81:01:22

Caso queira obter rapidamente apenas o CN (Common Name), ou seja, para quem aquele certificado foi emitido, utilize o comando:

openssl x509 -noout -subject -nameopt multiline -in <certificado.pem> | grep commonName

Caso o resultado do comando acima seja o DNS do seu peer, certamente esse é o certificado que deve ser indicado no script de instalação.

Monitoração do peer

Atenção!

Este script de deploy de um ambiente de monitoração é apenas uma referência e não faz parte do produto b-Cadastros

É uma boa prática e recomendamos que o peer seja monitorado.

Caso o participante já possua um ambiente de monitoração próprio, ele poderá ser utilizado. Além das métricas do host, como utilização de cpu, memória, disco, etc, pode-se monitorar métricas do peer, que são expostas por um endpoint da própria solução:

http://<ip-do-peer>:9443/metrics 

Caso o cliente não possua uma solução própria de monitoração, disponibilizamos um script que pode ser utilizado como referência para fazer o deploy de um ambiente de monitoração no próprio peer.

Atenção! Os requisitos de segurança não contemplam a instalação destas ferramentas de monitoração

Para uso deste script de monitoração também devem ser permitidas conexões de saída a partir do peer para os seguintes endereços:

  • gcr.io:443
  • console.cloud.google.com:443
  • storage.googleapis.com:443

Essa liberação permite o download da ferramenta cAdvisor, necessária para a monitoração dos contêineres da solução.

Este ambiente é composto de contêineres para disponibilização e coleta de métricas, assim como um painel de acompanhamento contendo:

  • Métricas do host (node_exporter)
  • Probes de conectividade com os orderers (blackbox_exporter)
  • Métricas dos contêineres (cadvisor)
  • Métricas do serviço do peer (endpoint do peer operations)
  • Agregador de métricas (prometheus server)
  • Dashboard (grafana)

Para realizar o deploy, deve-se fazer o download do script:

wget https://bcad-prod-publico.s3.i02.estaleiro.serpro.gov.br/monitoracao/deploy_monitoracao.sh 

em seguida, executá-lo:

bash deploy_monitoracao.sh 

Após o deploy, o dashboard estará disponível em:

http://<ip-do-peer\>:3000/d/bcadastros/dashboard

user: admin
password: bcadmon

Este dashboard é composto de vários painéis onde é possível acompanhar:

  • Orderers (tcp_connect): realiza teste de conectividade com os orderers que estão hospedados no Serpro. Caso não exista conectividade com um ou mais orderers, este painel se torna vermelho. O cliente deve verificar se possui conectividade para a Internet (avaliar rede, firewall, proxy..), caso não encontre nenhum problema em sua infraestrutura, entrar em contato com o Serpro.

  • peer: verifica se o contêiner do peer está em execução. Caso este painel fique em vermelho e com o texto "offline", deve-se tentar reiniciar o peer com os seguintes comandos: (após o reinício, aguardar alguns minutos e verificar novamente o painel)

/etc/hyperledger/fabric/peer/stop.sh
/etc/hyperledger/fabric/peer/start.sh
  • couchdb: verifica se o contêiner do couchdb está sendo executado, caso este painel fique em vermelho e com o texto "offline", deve-se tentar reiniciar o peer com os seguintes comandos: (após o reinício, aguardar alguns minutos e verificar novamente o painel)
/etc/hyperledger/fabric/peer/stop.sh
/etc/hyperledger/fabric/peer/start.sh
  • nginx: verifica se o contêiner do nginx está sendo executado, caso este painel fique em vermelho e com o texto "offline", deve-se tentar reiniciar o peer com os seguintes comandos: (após o reinício, aguardar alguns minutos e verificar novamente o painel)
/etc/hyperledger/fabric/peer/stop.sh
/etc/hyperledger/fabric/peer/start.sh
  • Sincronização dos blocos: este painel mostra, para cada canal/base contratada, se o ledger foi atualizado nas últimas horas. Caso algum canal fique em vermelho e com o texto "não sincronizado", deve-se verificar se o painel de conectividade com os orderers está verde e em caso positivo, coletar logs e enviar para o Serpro para avaliação.

    Para a coleta de logs, executar o seguinte comando para gerar o arquivo /tmp/peer.log:

sudo docker logs $(sudo docker ps -aq --filter expose=7051) 2>&1 | sudo tee /tmp/peer.log