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/TLS e a comunicação do RM.exe com o Host através de certificado digital.
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.
É 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:
|
Configuração necessária apenas para aqueles que forem habilitar segurança para os serviços HTTP (WebService e WebAPI). |
Caso a sua Porta já esteja reservada para outra Url, é necessário desfazer este registro. Use o seguinte comando:
Ex.: netsh http delete urlacl url=http://+:<PORTA>/ |
O usuário do IIS e do Host precisa ter acesso ao arquivo de configuração global. |
Passo a Passo:
Exemplos:
A sintaxe para aplicar as alterações deve seguir o modelo abaixo de acordo com as configurações do seu ambiente.
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 |
Para remover as regras aplicadas utilize os comandos com a sintaxe delete conforme exemplos abaixo.
|
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/RM.Host.exe.config)
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.
Para proteger a comunicação entre as camadas Cliente e Servidor é necessário habilitar o parâmetro EnableSecurity nos arquivos de configuração em ambas as camadas Cliente (somente até a versão 12.1.33) e Servidor. Para mais informações acesse o TDN EnableSecurity.
A partir da versão 12.1.34, NÃO é mais necessário inserir a tag EnableSecurity nos arquivos de configuração da camada cliente do sistema. Como por exemplo os arquivos RM.exe.config (RM.exe), Web.config(Portais), RM.Lib.Gerador.Execute.exe.config e ETC. |
CERTIFICATESTORELOCATION:
Local do Store onde está armazenado o certificado.
Exemplo: <add key="CERTIFICATESTORELOCATION" value="LocalMachine" />
Maiores detalhes podem ser obtidos diretamente na documentação da Microsoft disponível no link:https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.storelocation?view=netframework-4.7.2
CERTIFICATESTORENAME:
Store onde está armazenado o certificado.
Exemplo: <add key="CERTIFICATESTORENAME" value="My" />
Maiores detalhes podem ser obtidos diretamente na documentação da Microsoft disponível no link:https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.storename?redirectedfrom=MSDN&view=netframework-4.7.2
CERTIFICATEFINDTYPE:
Campo do certificado que será utilizado para realizar a pesquisa.
Exemplo: <add key="CERTIFICATEFINDTYPE" value="FindBySubjectName" />
Maiores detalhes podem ser obtidos diretamente na documentação da Microsoft disponível no link: https://docs.microsoft.com/pt-br/dotnet/api/system.security.cryptography.x509certificates.x509findtype?view=netframework-4.7.2
CERTIFICATEFINDVALUE:
Campo do certificado que será utilizado para realizar a pesquisa.
Exemplo: <add key="CERTIFICATEFINDVALUE" value="TOTVS" />
É necessário informar o nome do certificado do lado client, (RM.exe.Config) na propriedade "CERTIFICATEFINDVALUE" |
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.
|
|