Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice:


      

Índice
exclude.*ndice:

Objetivo:


      Este documento tem como objetivo auxiliar o usuário na configuração do ambiente RM, para que a comunicação com os serviços HTTP seja protegida com SSL e a comunicação do RM.exe com o Host através de certificado digital.

Instalação do Certificado no Servidor:


      Um certificado digital pode ser adquirido através de uma autoridade certificadora (AC), são facilmente encontradas na web, mas também é possível gerar certificados digitais auto assinados.

      Existem várias maneiras de se gerar um certificado digital auto assinado. Abaixo alguns links para ajuda e, em anexo, um certificado auto assinado que pode ser utilizado para cifrar a comunicação, lembrando que o recomendado é que seja adquirido um através de uma AC.

Aviso
iconfalse
titleImportante:

É recomendável que a AC escolhida para gerar o certificado já esteja no diretório de autoridades confiáveis raiz, do gerenciamento de certificados do computador, pois desta forma não será necessário importar a AC em todas as máquinas clientes.

       Salve o certificado no servidor e instale-o conforme imagens abaixo:

Informações
iconfalse
Deck of Cards
id.


Processo de Instalação:

Card
label1º Passo:

Card
label2º Passo:

 

Card
label3º Passo:

 

Card
label4º Passo:
 
Card
label5º Passo:
 
Card
label6º Passo:

 Abra o gerenciamento de certificados do computador (certlm.msc) como administrador e dê permissão para o usuário do Host nas chaves privadas do certificado:

Card
label7º Passo:

 Abra o certificado e copie a impressão digital (thumbprint no inglês) e armazene:

Em seguida, gere um GUID através do site https://www.guidgenerator.com/online-guid-generator.aspx e também armazene para ser utiliza-lo nos próximos passos.

Registrando o Certificado na Porta Utilizada Pelos Serviços HTTP do HOST:


Aviso
iconfalse
titleObservação (1):

Configuração necessária apenas para aqueles que forem habilitar segurança para os serviços HTTP.

Aviso
iconfalse
titleObservação (2):

Caso a sua Porta já esteja reservada para outra Url, é necessário desfazer este registro. Use o seguinte comando:

  • netsh http delete urlacl url=<URL>
     Passo

Ex.: netsh http delete urlacl url=http://+:<PORTA>/

 

Passo a Passo:

  • Utilizando o thumbprint copiado e o GUID, registre o certificado nas portas HTTP utilizadas pelo HOST. Por padrão o RM utiliza as portas 8050 para TCP e 8051 para HTTP, mas isso pode ser configurado.
  • Abra o prompt de comando do Windows como administrador.
  • Segue abaixo os comandos para registrar o certificado nas portas, e os dois exemplos reais.

     Exemplos:    

Informações
titleModelos para aplicar as alterações

A sintaxe para aplicar as alterações deve seguir o modelo abaixo de acordo com as configurações do seu ambiente.

  • netsh http add sslcert ipport=0.0.0.0:<PORTA> certhash=<THUMBPRINT> appid=<GUID>
  • netsh http add urlacl url=https://+:<PORTA>/ user="<DOMINIO>\<USUARIO>"

Maiores detalhes podem ser obtidos diretamente na documentação da Microsoft disponível no link https://msdn.microsoft.com/en-us/library/windows/desktop/cc307236(v=vs.85).aspx

  • netsh http add sslcert ipport=0.0.0.0:8051 certhash=b4def01ef76a1ff154faef805e6eafce3d411459 appid={df85028c-5054-44f8-9d01-5a07ddc0f7c0}
  • netsh http add urlacl url=https://+:8051/ user="NT AUTHORITY\NETWORKSERVICE"

Image Modified

Informações
titleRemovendo as alterações

Para remover as regras aplicadas utilize os comandos com a sintaxe delete conforme exemplos abaixo.

  • netsh http delete urlacl url=https://+:<PORTA>/
  • netsh http delete sslcert ipport=0.0.0.0:<PORTA>

 

Configurando o RM:


      Para proteger apenas os serviços HTTP, ou seja, os Web Services e serviços REST expostos pelo HOST, basta habilitar o parâmetro abaixo no arquivo de configuração do HOST (RM.Host.Service.exe.config)

  • <add key="EnableWSSecurity" value="true" />

      Para proteger a comunicação entre o RM.exe e o HOST será necessário habilitar o parâmetro abaixo nos arquivos de configuração do RM.exe (RM.exe.config) e do HOST (RM.Host.Service.exe.config)

  • <add key="EnableSecurity" value="true" />

      Os parâmetros abaixo, do arquivo de configuração do HOST (RM.Host.Service.exe.config), devem ser ajustados de acordo com o a instalação do certificado para que o mesmo seja encontrado pelo RM.

 

    CERTIFICATESTORELOCATION:

      Local do Store onde está armazenado o certificado.

  • Valores possíveis: CurrentUser, LocalMachine
  • Valor padrão: LocalMachine

      Exemplo: <add key="CERTIFICATESTORELOCATION" value="LocalMachine" />

 

    CERTIFICATESTORENAME:

      Store onde está armazenado o certificado.

  • Valores possíveis: AddressBook, AuthRoot, CertificateAuthority, Disallowed, My,    Root, TrustedPeople, TrustedPublisher
  • Valor padrão: My

       Exemplo: <add key="CERTIFICATESTORENAME" value="My" />

 

    CERTIFICATEFINDTYPE:

      Campo do certificado que será utilizado para realizar a pesquisa.

  • Valores possíveis: FindByThumbprint, FindBySubjectName, FindBySubjectDistinguishedName, FindByIssuerName, FindByIssuerDistinguishedName, FindBySerialNumber, FindByTimeValid, FindByTimeNotYetValid, FindByTimeExpired, FindByTemplateName, FindByTemplateName, FindByApplicationPolicy, FindByCertificatePolicy, FindByExtension, FindByKeyUsage, FindBySubjectKeyIdentifier
  • Valor padrão: FindBySubjectName

       Exemplo: <add key="CERTIFICATEFINDTYPE" value="FindBySubjectName " />

 

    CERTIFICATEFINDVALUE:

      Campo do certificado que será utilizado para realizar a pesquisa.

  • Valores possíveis: Qualquer texto sem caractteres especiais
  • Valor padrão: TOTVS

       Exemplo: <add key="CERTIFICATEFINDVALUE" value="TOTVS " />

Validando as Configurações:


Após subir o serviço de Host do RM pode-se verificar se existe uma resposta para o wsdl de algum serviço disponível e assim validamos a toda a configuração realizada.

Como exemplo, acessamos a URL https://localhost:8051/wsdataserver/MEX?wsdl e obtemos sucesso na resposta conforme abaixo.

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.01.XX

Informações
iconfalse

Processo: Habilitar SSL no Host

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data: 16/08/2016

Informações
iconfalse

Autores:

Daniel Santos Campos

Douglas Maxwell de Oliveira

Fábio Augusto Amaral Melo Nunes

Karina Dos Santos Costa

Stella Gleyse Macedo Vilaca

Wesley Avelino De Carvalho

Informações
iconfalse

Download do arquivo: Certificado auto assinado